aboutsummaryrefslogtreecommitdiffstats
path: root/win32
diff options
context:
space:
mode:
Diffstat (limited to 'win32')
-rw-r--r--win32/dir.h15
-rw-r--r--win32/win32.c11
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);