4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-22 00:38:06 +08:00

* dir.cc (rmdir): Report ENOENT when file doesn't exist rather than ENOTDIR.

This commit is contained in:
Christopher Faylor 2001-08-28 20:38:07 +00:00
parent 34971f0f8c
commit ffe94510f5
3 changed files with 27 additions and 9 deletions

View 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> Mon Aug 27 11:58:19 2001 Christopher Faylor <cgf@cygnus.com>
* select.cc (cygwin_select): Ensure that arguments are zeroed on * select.cc (cygwin_select): Ensure that arguments are zeroed on

View File

@ -352,9 +352,15 @@ rmdir (const char *dir)
goto done; goto done;
} }
/* Does the file exist? */
if (real_dir.file_attributes () == (DWORD) -1)
{
set_errno (ENOENT);
goto done;
}
/* Is `dir' a directory? */ /* Is `dir' a directory? */
if (real_dir.file_attributes () == (DWORD) -1 || if (!(real_dir.file_attributes () & FILE_ATTRIBUTE_DIRECTORY))
!(real_dir.file_attributes () & FILE_ATTRIBUTE_DIRECTORY))
{ {
set_errno (ENOTDIR); set_errno (ENOTDIR);
goto done; goto done;

View 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. */ /* Degenerate case. No fds to wait for. Just wait. */
if (sel.start.next == NULL) 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"); select_printf ("signal received");
set_sig_errno (EINTR); set_sig_errno (EINTR);
@ -480,9 +481,12 @@ static int
poll_pipe (select_record *me, fd_set *readfds, fd_set *writefds, poll_pipe (select_record *me, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds) fd_set *exceptfds)
{ {
return peek_pipe (me, 0) ? int doit = me->read_ready || me->write_ready || me->except_ready;
set_bits (me, readfds, writefds, exceptfds) :
0; if (!doit)
peek_pipe (me, 0);
return doit ? set_bits (me, readfds, writefds, exceptfds) : 0;
} }
MAKEready(pipe) MAKEready(pipe)
@ -1188,9 +1192,12 @@ static int
poll_socket (select_record *me, fd_set *readfds, fd_set *writefds, poll_socket (select_record *me, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds) fd_set *exceptfds)
{ {
return peek_socket (me, 0) ? int doit = me->read_ready || me->write_ready || me->except_ready;
set_bits (me, readfds, writefds, exceptfds) :
0; if (!doit)
peek_socket (me, 0);
return doit ? set_bits (me, readfds, writefds, exceptfds) : 0;
} }
MAKEready (socket) MAKEready (socket)