diff options
Diffstat (limited to 'uisimulator/win32/file-win32.c')
-rw-r--r-- | uisimulator/win32/file-win32.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/uisimulator/win32/file-win32.c b/uisimulator/win32/file-win32.c index 478df372d5..57431e92a2 100644 --- a/uisimulator/win32/file-win32.c +++ b/uisimulator/win32/file-win32.c | |||
@@ -17,7 +17,8 @@ | |||
17 | * | 17 | * |
18 | ****************************************************************************/ | 18 | ****************************************************************************/ |
19 | 19 | ||
20 | #include <windows.h> | 20 | #include <io.h> |
21 | #include <malloc.h> | ||
21 | #include "file-win32.h" | 22 | #include "file-win32.h" |
22 | #include "file.h" | 23 | #include "file.h" |
23 | 24 | ||
@@ -30,11 +31,36 @@ DIR *opendir ( | |||
30 | char *dirname // directory name | 31 | char *dirname // directory name |
31 | ) | 32 | ) |
32 | { | 33 | { |
33 | DIR *p = (DIR*)malloc(sizeof(DIR)); | 34 | DIR *p = (DIR*)malloc(sizeof(DIR)); |
34 | if (_findfirst (dirname, &p) == -1) | 35 | struct _finddata_t fd; |
36 | if ((p->handle = _findfirst (dirname, &fd)) == -1) | ||
35 | { | 37 | { |
36 | free (p); | 38 | free (p); |
37 | return NULL; | 39 | return NULL; |
38 | } | 40 | } |
39 | return p; | 41 | return p; |
42 | } | ||
43 | |||
44 | // closedir | ||
45 | // close directory | ||
46 | int closedir ( | ||
47 | DIR *dir // previously opened dir search | ||
48 | ) | ||
49 | { | ||
50 | free(dir); | ||
51 | return 0; | ||
52 | } | ||
53 | |||
54 | // read dir | ||
55 | // read next entry in directory | ||
56 | dirent *readdir ( | ||
57 | DIR *dir | ||
58 | ) | ||
59 | { | ||
60 | struct _finddata_t fd; | ||
61 | if (_findnext (dir->handle, &fd) == -1) | ||
62 | return NULL; | ||
63 | memcpy (dir->fd.d_name, fd.name, 256); | ||
64 | dir->fd.d_reclen = sizeof (dirent); | ||
65 | return &dir->fd; | ||
40 | } \ No newline at end of file | 66 | } \ No newline at end of file |