diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 596b05ab3..505a6b700 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,15 @@ +2006-01-31 Corinna Vinschen + + * path.cc (cwdstuff::set): When SetCurrentDirectory returns + ERROR_INVALID_FUNCTION, bend it over to ERROR_FILE_NOT_FOUND. Add + comment to explain why. + +2006-01-31 Corinna Vinschen + + * dir.cc (readdir_worker): Add comment about writing old 32 bit d_ino. + * include/cygwin/version.h: Bump API minor number to 152. + (CYGWIN_VERSION_CHECK_FOR_NEEDS_D_INO): Remove. + 2006-01-30 Corinna Vinschen * fhandler_disk_file.cc (fhandler_disk_file::rewinddir): Simplify diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index a141c06fd..73ea90831 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -3975,6 +3975,10 @@ cwdstuff::set (const char *win32_cwd, const char *posix_cwd, bool doit) cwd_lock.acquire (); if (doit && !SetCurrentDirectory (win32_cwd)) { + /* When calling SetCurrentDirectory for a non-existant dir on a + Win9x share, it returns ERROR_INVALID_FUNCTION. */ + if (GetLastError () == ERROR_INVALID_FUNCTION) + SetLastError (ERROR_FILE_NOT_FOUND); __seterrno (); goto out; }