Hi, At Sun, 1 Dec 2002 08:40:45 +0900, Robert McGovern wrote: > Under Cygwin with a version of 1.73 I checked out a couple of weeks > ago, if I do "FileTest.exists?("")" in irb I get false. However using > the native windows version (Windows Installer v1.73-7), in irb the > return is true. > > I assume this is a bug, but I just want to be sure :) It would be a bug, and ENOENT rather than EBADF should be returned for invalid path, I guess.
Index: win32.c =================================================================== RCS file: /cvs/ruby/src/ruby/win32/win32.c,v retrieving revision 1.73 diff -u -2 -p -r1.73 win32.c --- win32.c 12 Oct 2002 14:47:07 -0000 1.73 +++ win32.c 1 Dec 2002 05:31:13 -0000 @@ -2540,11 +2540,10 @@ rb_w32_stat(const char *path, struct sta } *s = '\0'; - len = strlen(buf1); - p = CharPrev(buf1, buf1 + len); - if( '\"' == *(--s) ) - { - errno = EBADF; + len = s - buf1; + if (!len || '\"' == *(--s)) { + errno = ENOENT; return -1; } + p = CharPrev(buf1, buf1 + len); if (isUNCRoot(buf1)) {
-- Nobu Nakada