I'm sending this bug (opendir()) to [EMAIL PROTECTED] mailing list.

Regards,
Alexei Lioubimov


----- Original Message -----
From: "Larry Jones" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, January 03, 2002 10:59 PM
Subject: Re: BUG in "cvs co -r" (CVS 1.11.0)?


> Greg A. Woods writes:
> >
> > So, therefore the first and most important question to ask Alexei is
> > whether or not there was some other filesystem object called "Attic"
> > before the manual mkdir of the new empty Attic directory.  Only if not
> > then could there may be a bug in the OS.
>
> He strongly implied there was not -- particularly since he was able to
> create the Attic directory by hand, which he would not have been able to
> do if there were some other object with that name.
>
> > existence_error() is defined with this rather ugly but no doubt more
> > portable mess:
> [...]
> > (why can't POSIX-compatible systems stick to the basics in basic
> > situations like this?!?!?!??!  having to go to such lengths for the sake
> > of POSIX portability is stupid)
>
> I think the mess is due to systems that try to be Unix-like without
> actually conforming to POSIX.  As far as I can see, ENOTEXIST, EOS2ERR,
> and EVMSERR (which are the cause of the mess) are definitely not part of
> POSIX.  (I can guess where EOS2ERR and EVMSERR came from, does anyone
> know where ENOTEXIST came from?)
>
> > On most systems opendir() calls open(2), which says:
> >
> >      [ENOTDIR]     A component of the path prefix is not a directory.
> >
> > suggesting again that the thing called "Attic" was not a directory in
> > Alexei's repository (until after it was manually made to be one).
>
> POSIX (or at least SUS2, which is all I have on-line access to) is
> unfortunately a bit fuzzy in this area.  opendir() says:
>
>     [ENOENT]    A component of dirname does not name an existing
>                 directory or dirname is an empty string.
>
>     [ENOTDIR]   A component of dirname is not a directory.
>
> which seems to leave it ambiguous as to which is returned for a non-
> existent directory.  Of course, we all know that ENOENT is the right
> choice.
>
> > If not then Alexei's operating system does have a serious bug or is at
> > least not very POSIX compatible.
>
> I've taken a quick look at the cygwin source (which is what Alexei is
> using) and it appears that opendir() has a pechant for returning ENOTDIR
> for nearly all errors whereas ENOENT would probably be a better choice
> in most cases.
>
> -Larry Jones
>
> I'm so disappointed. -- Calvin
>


_______________________________________________
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs

Reply via email to