]> sourceware.org Git - newlib-cygwin.git/commitdiff
* dir.cc (rmdir): Report ENOENT when file doesn't exist rather than ENOTDIR.
authorChristopher Faylor <me@cgf.cx>
Tue, 28 Aug 2001 20:38:07 +0000 (20:38 +0000)
committerChristopher Faylor <me@cgf.cx>
Tue, 28 Aug 2001 20:38:07 +0000 (20:38 +0000)
winsup/cygwin/ChangeLog
winsup/cygwin/dir.cc
winsup/cygwin/select.cc

index 25752aaa54f6ee20603064e0bf745330f59cedc2..793476af9bc7aa2888dd47b2261e02de1b1c5411 100644 (file)
@@ -1,3 +1,8 @@
+Tue Aug 28 16:37:17 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dir.cc (rmdir): Report ENOENT when file doesn't exist rather than
+       ENOTDIR.
+
 Mon Aug 27 11:58:19 2001  Christopher Faylor <cgf@cygnus.com>
 
        * select.cc (cygwin_select): Ensure that arguments are zeroed on
index e9628b377a4b512c8693a8ead32134048ed8c8d9..83e38deb5fb8c852858ac43ea351028f0951b37e 100644 (file)
@@ -352,9 +352,15 @@ rmdir (const char *dir)
       goto done;
     }
 
+  /* Does the file exist? */
+  if (real_dir.file_attributes () == (DWORD) -1)
+    {
+      set_errno (ENOENT);
+      goto done;
+    }
+
   /* Is `dir' a directory? */
-  if (real_dir.file_attributes () == (DWORD) -1 ||
-      !(real_dir.file_attributes () & FILE_ATTRIBUTE_DIRECTORY))
+  if  (!(real_dir.file_attributes () & FILE_ATTRIBUTE_DIRECTORY))
     {
       set_errno (ENOTDIR);
       goto done;
index 42762baa5ebac128ce46896dfc1e6b9345251964..6914cd236e35843e3024fa242c3fca377a538a13 100644 (file)
@@ -168,7 +168,8 @@ cygwin_select (int maxfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
   /* Degenerate case.  No fds to wait for.  Just wait. */
   if (sel.start.next == NULL)
     {
-      if (WaitForSingleObject (signal_arrived, ms) == WAIT_OBJECT_0)
+      if (readfds != dummy_readfds && writefds != dummy_writefds && exceptfds != dummy_exceptfds &&
+      WaitForSingleObject (signal_arrived, ms) == WAIT_OBJECT_0)
        {
          select_printf ("signal received");
          set_sig_errno (EINTR);
@@ -480,9 +481,12 @@ static int
 poll_pipe (select_record *me, fd_set *readfds, fd_set *writefds,
           fd_set *exceptfds)
 {
-  return peek_pipe (me, 0) ?
-        set_bits (me, readfds, writefds, exceptfds) :
-        0;
+  int doit = me->read_ready || me->write_ready || me->except_ready;
+
+  if (!doit)
+    peek_pipe (me, 0);
+
+  return doit ? set_bits (me, readfds, writefds, exceptfds) : 0;
 }
 
 MAKEready(pipe)
@@ -1188,9 +1192,12 @@ static int
 poll_socket (select_record *me, fd_set *readfds, fd_set *writefds,
           fd_set *exceptfds)
 {
-  return peek_socket (me, 0) ?
-        set_bits (me, readfds, writefds, exceptfds) :
-        0;
+  int doit = me->read_ready || me->write_ready || me->except_ready;
+
+  if (!doit)
+    peek_socket (me, 0);
+
+  return doit ? set_bits (me, readfds, writefds, exceptfds) : 0;
 }
 
 MAKEready (socket)
This page took 0.036464 seconds and 5 git commands to generate.