# from Eric Wilhelm on Monday 16 April 2007 11:10 pm:
># from Ken Williams on Monday 16 April 2007 08:06 pm:
>>Yup, that's right. Unfortunately this patch won't deal with the
>>~user/blah/blah case, though.
>
>Actually, I think it does.
Oh, *now* I get it. Sorry to be dense. I had never used that
shell-expansion behavior before. That certainly throws a wrench in the
works. A strace on perl -e 'glob("~foo")' shows that /etc/passwd is
being consulted. Neat :-/
Also note that it seems to not do that on windows, though it will give
you ~/ if $ENV{HOME} is set.
So, do we protect the spaces, juggle backslashes (on windows) and use
glob() or try to do things ourselves? We're certainly at risk of
surprising someone if we throw the whole thing into glob() since the
reason we're doing this is that the bash shell doesn't expand
*anything* mid-word (such as --foo=* or --foo=[a-z].)
Maybe we do "s/(~\w*(?:/|$))//" and then "glob($1) . $_" ? Does that
cover everything? (Well, everything except the backslash duality issue
on windows.) If people want "~my user name is cool/" to work, I don't
think I can bring myself to think about it.
--Eric
--
The first rule about Debian is you don't talk about Debian
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------