diff options
Diffstat (limited to 'win32')
-rw-r--r-- | win32/dir.h | 15 | ||||
-rw-r--r-- | win32/win32.c | 11 |
2 files changed, 9 insertions, 17 deletions
diff --git a/win32/dir.h b/win32/dir.h index 12a0e92b36..0e1bff0846 100644 --- a/win32/dir.h +++ b/win32/dir.h @@ -29,18 +29,17 @@ typedef struct { DIR* rb_w32_opendir(const char*); DIR* rb_w32_uopendir(const char*); -struct direct* rb_w32_readdir(DIR *); -struct direct* rb_w32_readdir_with_enc(DIR *, rb_encoding *); +struct direct* rb_w32_readdir(DIR *, rb_encoding *); long rb_w32_telldir(DIR *); void rb_w32_seekdir(DIR *, long); void rb_w32_rewinddir(DIR *); void rb_w32_closedir(DIR *); -#define opendir rb_w32_opendir -#define readdir rb_w32_readdir -#define telldir rb_w32_telldir -#define seekdir rb_w32_seekdir -#define rewinddir rb_w32_rewinddir -#define closedir rb_w32_closedir +#define opendir(s) rb_w32_opendir((s)) +#define readdir(d) rb_w32_readdir((d), 0) +#define telldir(d) rb_w32_telldir((d)) +#define seekdir(d, l) rb_w32_seekdir((d), (l)) +#define rewinddir(d) rb_w32_rewinddir((d)) +#define closedir(d) rb_w32_closedir((d)) #endif /* RUBY_WIN32_DIR_H */ diff --git a/win32/win32.c b/win32/win32.c index d68a295f91..3b827662a7 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -2025,16 +2025,9 @@ readdir_internal(DIR *dirp, BOOL (*conv)(const WCHAR *, struct direct *, rb_enco /* License: Ruby's */ struct direct * -rb_w32_readdir(DIR *dirp) +rb_w32_readdir(DIR *dirp, rb_encoding *enc) { - return readdir_internal(dirp, win32_direct_conv, NULL); -} - -/* License: Ruby's */ -struct direct * -rb_w32_readdir_with_enc(DIR *dirp, rb_encoding *enc) -{ - if (enc == rb_ascii8bit_encoding()) + if (!enc || enc == rb_ascii8bit_encoding()) return readdir_internal(dirp, win32_direct_conv, NULL); else return readdir_internal(dirp, ruby_direct_conv, enc); |