diff options
Diffstat (limited to 'uisimulator/win32/dir-win32.c')
-rw-r--r-- | uisimulator/win32/dir-win32.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/uisimulator/win32/dir-win32.c b/uisimulator/win32/dir-win32.c index 3a30d57ae1..3c31c89100 100644 --- a/uisimulator/win32/dir-win32.c +++ b/uisimulator/win32/dir-win32.c | |||
@@ -18,6 +18,7 @@ | |||
18 | ****************************************************************************/ | 18 | ****************************************************************************/ |
19 | 19 | ||
20 | #include <io.h> | 20 | #include <io.h> |
21 | #include <windows.h> | ||
21 | #include <malloc.h> | 22 | #include <malloc.h> |
22 | #include "dir-win32.h" | 23 | #include "dir-win32.h" |
23 | #include "dir.h" | 24 | #include "dir.h" |
@@ -33,11 +34,31 @@ DIR *opendir ( | |||
33 | { | 34 | { |
34 | DIR *p = (DIR*)malloc(sizeof(DIR)); | 35 | DIR *p = (DIR*)malloc(sizeof(DIR)); |
35 | struct _finddata_t fd; | 36 | struct _finddata_t fd; |
36 | if ((p->handle = _findfirst (dirname, &fd)) == -1) | 37 | unsigned int i; |
38 | char *s = (char*)malloc(strlen(dirname) + 5); | ||
39 | wsprintf (s, "%s", dirname); | ||
40 | |||
41 | for (i = 0; i < strlen(s); i++) | ||
42 | if (s[i] == '/') | ||
43 | s[i] = '\\'; | ||
44 | |||
45 | if (s[i - 1] != '\\') | ||
46 | { | ||
47 | s[i] = '\\'; | ||
48 | s[++i] = '\0'; | ||
49 | } | ||
50 | |||
51 | OutputDebugString (s); | ||
52 | |||
53 | wsprintf (s, "%s*.*", s); | ||
54 | |||
55 | if ((p->handle = _findfirst (s, &fd)) == -1) | ||
37 | { | 56 | { |
57 | free (s); | ||
38 | free (p); | 58 | free (p); |
39 | return 0; | 59 | return 0; |
40 | } | 60 | } |
61 | free (s); | ||
41 | return p; | 62 | return p; |
42 | } | 63 | } |
43 | 64 | ||