diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2009-06-27 21:00:39 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2009-06-27 21:00:39 +0800 |
commit | 0d7d66039b614b642c775432fd64aa8c11f9a64d (patch) | |
tree | 2b6b9b1e63aa6ffc0c65f3a359c7e22672b223e3 /src/expand.c | |
parent | [REDIR] Fix incorrect savefd conversions (diff) | |
download | dash-0d7d66039b614b642c775432fd64aa8c11f9a64d.tar.gz dash-0d7d66039b614b642c775432fd64aa8c11f9a64d.zip |
[EXPAND] Fix quoted pattern patch breakage
The change [EXPAND] Do not quote back slashes in parameter expansions outside quotes broke quote removal after parameter expansion. This is because its effecte extended beyond that of quoted patterns. This patch fixes this by limiting the change to just quoted patterns. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'src/expand.c')
-rw-r--r-- | src/expand.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/expand.c b/src/expand.c index e4c4c8b..7995d40 100644 --- a/src/expand.c +++ b/src/expand.c @@ -869,7 +869,9 @@ memtodest(const char *p, size_t len, const char *syntax, int quotes) { int c = (signed char)*p++; if (c) { if ((quotes & QUOTES_ESC) && - (syntax[c] == CCTL || syntax[c] == CDBACK)) + ((syntax[c] == CCTL) || + (((quotes & EXP_FULL) || syntax != BASESYNTAX) && + syntax[c] == CBACK))) USTPUTC(CTLESC, q); } else if (!(quotes & QUOTES_KEEPNUL)) continue; |