From e2d855f3644064cd4e17b84d08f03a5740b5bae5 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 9 Apr 2010 15:40:13 +0000 Subject: 27865: fix problem with glob_subst in parameter subsitution --- ChangeLog | 7 ++++++- Src/subst.c | 2 +- Test/D04parameter.ztst | 10 ++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ff123b5d4..fb30dfd98 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2010-04-09 Peter Stephenson + * 27865: Src/subst.c, Test/D04parameter.ztst: text in parameter + substitution that came from the command line rather than the + parameter was a candidate for GLOB_SUBST even if it was quoted + if the overall expression was not quoted. + * Ben: 27589: Completion/Zsh/Context/_redirect: attempt to use arguments better. @@ -12988,5 +12993,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.4949 $ +* $Revision: 1.4950 $ ***************************************************** diff --git a/Src/subst.c b/Src/subst.c index 52288b741..6da9bfed8 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -2417,7 +2417,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub) multsub(&val, spbreak && !aspar, (aspar ? NULL : &aval), &isarr, NULL); opts[SHWORDSPLIT] = ws; copied = 1; - spbreak = 0; + spbreak = globsubst = 0; } break; case ':': diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst index d43e60efa..1035fd49b 100644 --- a/Test/D04parameter.ztst +++ b/Test/D04parameter.ztst @@ -221,6 +221,16 @@ >\\foo matched by \\*\\ >a\\b not matched by \\*\\ + ( + setopt globsubst + foo="boring*" + print ${foo+$foo} + print ${foo+"$foo"} + ) +0:globsubst together with nested quoted expansion +>boringfile +>boring* + print -l "${$(print one word)}" "${=$(print two words)}" 0:splitting of $(...) inside ${...} >one word -- cgit 1.4.1