From c5e59b8a6156cf84d576f77849adcfcc2cd04f99 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Tue, 27 Feb 2007 16:05:49 +0000 Subject: [PATCH] (svn r8919) -Regression (UTF8) (try #2): Win9x is very picky about trailing slashes in paths, so C:\\* will not work (but C:\Windows\\* does; go figure). Thanks glx for pointing it out and for the initial fix. --- src/win32.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/win32.cpp b/src/win32.cpp index dceda5e86c..b59621aa6b 100644 --- a/src/win32.cpp +++ b/src/win32.cpp @@ -665,8 +665,11 @@ DIR *opendir(const wchar_t *path) d = dir_calloc(); if (d != NULL) { wchar_t search_path[MAX_PATH]; - /* build search path for FindFirstFile */ - _snwprintf(search_path, lengthof(search_path), L"%s\\*", path); + bool slash = path[wcslen(path) - 1] == L'\\'; + + /* build search path for FindFirstFile, try not to append additional slashes + * as it throws Win9x off its groove for root directories */ + _snwprintf(search_path, lengthof(search_path), L"%s%s*", path, slash ? L"" : L"\\"); *lastof(search_path) = '\0'; d->hFind = FindFirstFileW(search_path, &d->fd);