From 4610c0a902fae5f5d5cbc0dd164f9e3c3c9edbf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gy=C3=B6rgy=20=27Nog=27=20Jeney?= Date: Fri, 27 Sep 2002 22:03:44 +0000 Subject: [PATCH] Check for an empty string in DOSFS_FindNextEx to avoid an unnecessary failure. --- files/dos_fs.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/files/dos_fs.c b/files/dos_fs.c index 12bb4cb6f6a..d1c8b54bb31 100644 --- a/files/dos_fs.c +++ b/files/dos_fs.c @@ -197,6 +197,8 @@ BOOL DOSFS_ToDosFCBFormat( LPCWSTR name, LPWSTR buffer ) LPCWSTR p = name; int i; + TRACE("(%s, %p)\n", debugstr_w(name), buffer); + /* Check for "." and ".." */ if (*p == '.') { @@ -342,6 +344,8 @@ static int DOSFS_MatchLong( LPCWSTR mask, LPCWSTR name, int case_sensitive ) LPCWSTR next_to_retry = NULL; static const WCHAR asterisk_dot_asterisk[] = {'*','.','*',0}; + TRACE("(%s, %s, %x)\n", debugstr_w(mask), debugstr_w(name), case_sensitive); + if (!strcmpW( mask, asterisk_dot_asterisk )) return 1; while (*name && *mask) { @@ -605,6 +609,9 @@ static BOOL DOSFS_ReadDir( DOS_DIR *dir, LPCWSTR *long_name, *short_name = NULL; dir->used += (strlenW(sn) + 1) * sizeof(WCHAR); + TRACE("Read: long_name: %s, short_name: %s\n", + debugstr_w(*long_name), debugstr_w(*short_name)); + return TRUE; } @@ -1736,7 +1743,7 @@ static int DOSFS_FindNextEx( FIND_FIRST_INFO *info, WIN32_FIND_DATAW *entry ) /* Check the long mask */ - if (info->long_mask) + if (info->long_mask && *info->long_mask) { if (!DOSFS_MatchLong( info->long_mask, long_name, flags & DRIVE_CASE_SENSITIVE )) continue; @@ -1824,6 +1831,10 @@ int DOSFS_FindNext( const char *path, const char *short_mask, UNICODE_STRING short_maskW, long_maskW; WIN32_FIND_DATAW entryW; + TRACE("(%s, %s, %s, %x, %x, %x, %p)\n", debugstr_a(path), + debugstr_a(short_mask), debugstr_a(long_mask), drive, attr, skip, + entry); + _EnterWin16Lock(); RtlCreateUnicodeStringFromAsciiz(&short_maskW, short_mask);