aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--win32/win32.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e1fe214c4f..df650a6075 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jun 17 21:28:27 2003 Ariff Abdullah <skywizard@time.net.my>
+
+ * win32/win32.c (rb_w32_opendir): need to set errno. [ruby-talk:73761]
+
Mon Jun 16 19:01:25 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
* eval.c: remove rb_cBlock.
diff --git a/win32/win32.c b/win32/win32.c
index 7fa962f15b..d819dba2ee 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -1333,7 +1333,9 @@ rb_w32_opendir(const char *filename)
// check to see if we've got a directory
//
- if ((rb_w32_stat(filename, &sbuf) < 0 || (
+ if (rb_w32_stat(filename, &sbuf) < 0)
+ return NULL;
+ if (((
#ifdef __BORLANDC__
(unsigned short)(sbuf.st_mode)
#else
@@ -1342,6 +1344,7 @@ rb_w32_opendir(const char *filename)
& _S_IFDIR) == 0) &&
(!ISALPHA(filename[0]) || filename[1] != ':' || filename[2] != '\0' ||
((1 << (filename[0] & 0x5f) - 'A') & GetLogicalDrives()) == 0)) {
+ errno = ENOTDIR;
return NULL;
}