This is the mail archive of the
mailing list for the Cygwin project.
Re: ls and wildcards
On Tue, Jul 14, 2009 at 05:36:43PM +0200, Corinna Vinschen wrote:
>On Jul 14 15:30, Eric Blake wrote:
>> Karl M <karlm30 <at> hotmail.com> writes:
>> > I just noticed while looking around after updating dash that "ls /bin/*sh"
>> does not find bash and dash, but
>> > it does on my Fedora core 6 machine at work. I see the issue in both 1.5 and
>> 1.7, attached is an example in
>> > cygwin 1.7.
>> The issue is not ls, but glob() and fnmatch(), which do not have the same .exe
>> magic as other functions. In short, fnmatch is merely comparing the pattern
>> against the values returned by readdir(). Either we could teach readdir() to
>> omit .exe (similar to how open() and stat() recognize 'ash' as a synonym
>> for 'ash.exe'), or teach the pattern matchers to to ignore the .exe returned by
>> readdir() (but still allow searches like *.exe to work). I'm sure that
>Hmm, both ideas sound nice. Probably not for Cygwin 1.7.1, but it's
>something we could explore in a later release. Both together might be
I don't like the idea of having readdir lie about what's actually in the
directory that sounds like it will complicate things.
Having Cygwin's glob function assume that ".exe" matches EOL seems like
it makes more sense. I realize that will mean modifying similar functions
in bash and elsewhere.
Btw, some versions of cmd.exe don't work well with executables which lack
extensions. I just ran into this problem recently. I don't remember
exactly where, probably it was with NT 4.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple