# 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 ---------------------------------------------------