stat() and tilde prefix (was bad bash tab completion)

Thomas Wolff
Thu Feb 7 16:10:00 GMT 2013

Am 07.02.2013 16:30, schrieb Eric Blake:
> ...
> ...
> the fact that cygwin's handling of .. is not POSIX-compliant.  I think a
> better fix would be to change file_exists() itself instead of adding a
> misnamed wrapper function; then bashline.c wouldn't even need patching.
>   The string 'tilde' need not even be in the patch; what you are really
> after is a function that says that if '..' is found within a string
> being probed for existence, then add an additional check to see if the
> prefix of that string exists as a directory.
> But I don't mind experimenting with the idea - it remains to be seen
> whether people will complain that bash is noticeably slower because it
> takes time to double-check instead of rely on cygwin's non-POSIX
> shortcut.  And the slowdown would only be on paths containing a '..'; I
> would NOT be checking for symlinks (even though symlinks containing ..
> are also being interpreted in a non-POSIX manner, it is much more
> expensive to second-guess if you have to check every name for being a
> symlink than it is to just check for literal ..).
Do I interpret correctly that you talk about bash filename completion here?
Referring to,
I'd like to point out that while this ".." thing is a cygwin bug, or 
known downside as Corinna says,
the same issue occurs on Linux precisely with filename completion which 
isn't consistent there either.
So it would be "over-fixing" to handle that specifically in bash.

On the other hand, considering again this "downside":
If the core cygwin filesystem function would follow this approach,
simply checking for an occurrence of ".." first before resolving the 
wouldn't that be an acceptable fix without inappropriate penalty?


Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list