This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Directory existence prevents .exe execution


I still don't get why you want the Cygwin version of ici to work like
the native Windows version.  You have a Unix port - that's what the
Cygwin version should use as a model.  The whole point of Cygwin is to
get Unixy behavior...



On 4/18/08, Corinna Vinschen <corinna-cygwin@cygwin.com> wrote:
> On Apr 18 13:02, Luke Kendall wrote:
> > Corinna Vinschen wrote:
> >> On Apr 16 16:42, Luke Kendall wrote:
> >>
> >>> Suppose that when it does a stat() on "fred", before it decides that
> >>> it's found the right file to exec, it should check that "fred" isn't a
> >>>
> >>
> >> A stat() call can't know for what purpose it has been called.  Calling
> >> stat on "foo", it will return the information for "foo" first, if it
> >> exists.  Only if it not exists it tries "foo.exe" or "foo.lnk".
> >>
> > Sure, that makes sense.  The stat() call can't know, but the exec()
> > certainly does know that it's trying to execute.  So I meant that exec()
> > could call stat(), and if the file exists but is a directory, reject it as
> > a possible thing to execute, and continue with what I assume is the
> > existing Windows-specific logic to look for foo.exe or foo.lnk.
> >
> > What do you think, does the idea make sense?
>
> Not to me, no.  Having three files "foo", "foo.exe" and "foo.lnk" in the
> same directory is something you should avoid like hell.  The fact that
> Windows allows that it just a result of its stubborn suffix-ism.  All of
> these files would be called "foo" in a POSIX system and you would have a
> name collision.  Sure, you could change exec() to search for a .exe
> explicitly, but what's the gain, except for a border case like yours,
> which could easily rectified by changing the sources.  You would still
> have problems with stat() and other system calls.  I can't see anything
> good to hide a problem in one call, exec(), while the problem persists
> (and must persist) in other system calls.
>
>
> Corinna
>
> --
> Corinna Vinschen                  Please, send mails regarding Cygwin to
> Cygwin Project Co-Leader          cygwin AT cygwin DOT com
> Red Hat
>
> --
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> Problem reports:       http://cygwin.com/problems.html
> Documentation:         http://cygwin.com/docs.html
> FAQ:                   http://cygwin.com/faq/
>
>

-- 
Sent from Gmail for mobile | mobile.google.com

Mark J. Reed <markjreed@gmail.com>

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]