This is the mail archive of the
cygwin-patches@sourceware.cygnus.com
mailing list for the Cygwin project.
Re: rmdir says it isn't a directory about a read only directory.
- To: cygwin-patches at sourceware dot cygnus dot com
- Subject: Re: rmdir says it isn't a directory about a read only directory.
- From: Chris Faylor <cgf at cygnus dot com>
- Date: Thu, 25 May 2000 13:31:09 -0400
- References: <s1sog5vw1l3.fsf@jaist.ac.jp> <392D003F.81A81CA8@vinschen.de>
Is there any reason why we can't use the 'fileattr' element of the
path_conv class rather than calling GetFileAttributes again?
(see below)
cgf
On Thu, May 25, 2000 at 12:28:15PM +0200, Corinna Vinschen wrote:
>Kazuhiro Fujieda wrote:
>>
>> rmdir() sets ENOTDIR to the errno about a read only directory
>> like the following.
>>
>> $ mkdir aaa
>> $ chmod -w aaa
>> $ rmdir aaa
>> rmdir: aaa: Not a directory
>>
>> The following patch can fix this problem.
>>
>> 2000-05-25 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
>>
>> * dir.cc (rmdir): Correct the manner in checking the target directory.
Thu May 25 13:29:23 2000 Christopher Faylor <cgf@cygnus.com>
* dir.cc (rmdir): Use file attributes that have already been discovered
by path_conv.
Index: dir.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/dir.cc,v
retrieving revision 1.5
diff -u -p -r1.5 dir.cc
--- dir.cc 2000/05/25 10:27:36 1.5
+++ dir.cc 2000/05/25 17:29:22
@@ -341,8 +341,7 @@ rmdir (const char *dir)
/* Under Windows 9X or on a samba share, ERROR_ACCESS_DENIED is
returned if you try to remove a file. On 9X the same error is
returned if you try to remove a non-empty directory. */
- int attr = GetFileAttributes (real_dir.get_win32());
- if (attr != -1 && !(attr & FILE_ATTRIBUTE_DIRECTORY))
+ if (real_dir.fileattr != (DWORD) -1 && !(real_dir.fileattr & FILE_ATTRIBUTE_DIRECTORY))
set_errno (ENOTDIR);
else if (os_being_run != winNT)
set_errno (ENOTEMPTY);