mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-05-20 06:56:05 +02:00
this prevent process-based features from working in their arguments
This commit is contained in:
parent
a9feb3b28a
commit
841e60c340
|
@ -1,3 +1,9 @@
|
|||
2012-12-21 Peter Stephenson <pws@csr.com>
|
||||
|
||||
* 30930: Src/parse.c, Test/D03procsubst.ztst: anonymous
|
||||
functions shouldn't be marked as simple; this prevented process
|
||||
based features from working in their arguments.
|
||||
|
||||
2012-12-20 Peter Stephenson <p.w.stephenson@ntlworld.com>
|
||||
|
||||
* unposted: Config/version.mk: zsh 5.0.1.
|
||||
|
@ -401,5 +407,5 @@
|
|||
|
||||
*****************************************************
|
||||
* This is used by the shell to define $ZSH_PATCHLEVEL
|
||||
* $Revision: 1.5776 $
|
||||
* $Revision: 1.5777 $
|
||||
*****************************************************
|
||||
|
|
|
@ -846,7 +846,7 @@ par_cmd(int *complex)
|
|||
break;
|
||||
case FUNC:
|
||||
cmdpush(CS_FUNCDEF);
|
||||
par_funcdef();
|
||||
par_funcdef(complex);
|
||||
cmdpop();
|
||||
break;
|
||||
case DINBRACK:
|
||||
|
@ -1420,7 +1420,7 @@ par_subsh(int *complex)
|
|||
|
||||
/**/
|
||||
static void
|
||||
par_funcdef(void)
|
||||
par_funcdef(int *complex)
|
||||
{
|
||||
int oecused = ecused, num = 0, onp, p, c = 0;
|
||||
int so, oecssub = ecssub;
|
||||
|
@ -1471,6 +1471,7 @@ par_funcdef(void)
|
|||
if (num == 0) {
|
||||
/* Anonymous function, possibly with arguments */
|
||||
incmdpos = 0;
|
||||
*complex = 1;
|
||||
}
|
||||
zshlex();
|
||||
} else if (unset(SHORTLOOPS)) {
|
||||
|
@ -1735,6 +1736,7 @@ par_simple(int *complex, int nr)
|
|||
if (argc == 0) {
|
||||
/* Anonymous function, possibly with arguments */
|
||||
incmdpos = 0;
|
||||
*complex = 1;
|
||||
}
|
||||
zshlex();
|
||||
} else {
|
||||
|
|
|
@ -88,3 +88,22 @@
|
|||
print something=${:-=(echo 'C,D),(F,G)'}
|
||||
1: Graceful handling of bad substitution in enclosed context
|
||||
?(eval):1: unterminated `=(...)'
|
||||
|
||||
() {
|
||||
print -n "first: "
|
||||
cat $1
|
||||
print -n "second: "
|
||||
cat $2
|
||||
} =(echo This becomes argument one) =(echo and this argument two)
|
||||
function {
|
||||
print -n "third: "
|
||||
cat $1
|
||||
print -n "fourth: "
|
||||
cat $2
|
||||
} =(echo This becomes argument three) =(echo and this argument four)
|
||||
0:Process environment of anonymous functions
|
||||
>first: This becomes argument one
|
||||
>second: and this argument two
|
||||
>third: This becomes argument three
|
||||
>fourth: and this argument four
|
||||
|
||||
|
|
Loading…
Reference in New Issue