diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2007-09-24 16:22:25 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2007-09-24 16:22:25 +0800 |
commit | dd721f71292be8ae2ef0ac1d2d8910b1541dcf88 (patch) | |
tree | 17c4fecd06f5e6e90308537d7d05a7703504d3b4 /src | |
parent | [EXPAND] Do not quote back slashes in parameter expansions outside quotes (diff) | |
download | dash-dd721f71292be8ae2ef0ac1d2d8910b1541dcf88.tar.gz dash-dd721f71292be8ae2ef0ac1d2d8910b1541dcf88.zip |
[EXPAND] Perform tilde expansion in all parameter expansion words
Previously tilde expansion was not carried out for =?#% expansion words. This is contrary to the POSIX specification. Test case: a=~root:~root echo ${a#~root} Old result: /root:/root New result: :/root
Diffstat (limited to 'src')
-rw-r--r-- | src/expand.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/expand.c b/src/expand.c index 3956112..1443c14 100644 --- a/src/expand.c +++ b/src/expand.c @@ -683,7 +683,8 @@ subevalvar(char *p, char *str, int strloc, int subtype, int startloc, int varfla char *(*scan)(char *, char *, char *, char *, int , int); herefd = -1; - argstr(p, subtype != VSASSIGN && subtype != VSQUESTION ? EXP_CASE : 0); + argstr(p, EXP_TILDE | (subtype != VSASSIGN && subtype != VSQUESTION ? + EXP_CASE : 0)); STPUTC('\0', expdest); herefd = saveherefd; argbackq = saveargbackq; |