summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-06-17 12:30:15 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-06-17 12:30:15 +0000
commit77e941269fcddc8f5af6e553592fc3ef0132727c (patch)
tree1b63492b9cc64286263f7b75110dac607145b40b /win32
parentf7afa61a0a8bc08908155eab51921afa25cba606 (diff)
* win32/win32.c (rb_w32_opendir): need to set errno. [ruby-talk:73761]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'win32')
-rw-r--r--win32/win32.c5
1 files changed, 4 insertions, 1 deletions
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;
}