Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH (redux): POSIX `for' syntax
- X-seq: zsh-workers 15027
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx (Zsh hackers list)
- Subject: PATCH (redux): POSIX `for' syntax
- Date: Thu, 21 Jun 2001 10:34:39 +0000
- In-reply-to: <Tc0a88d0154470c687b@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <Tc0a88d0154470c687b@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
On Jun 21, 10:52am, Peter Stephenson wrote:
} Subject: Re: PATCH: 4.1: multi-parameter for loop
}
} > I guess, Bart suggestion (use foreach) is better. And more Perlish :-)
}
} I'm not so convinced, since `for' and `foreach' currently do the same
} thing, and I don't really like dividing the syntax to make people use the
} non-standard variant just for one use. foreach is automatically handled at
} the moment, as well as for, by the way.
Hrm. The patch I just sent makes
for x
(a b c)
behave as `for x (a b c)' used to, but
foreach x
(a b c)
is taken as a short-loop to run the command "a b c" in a subshell once for
each positional parameter. I think they should both behave that way; so
the change to parse.c has to be fractionally more complicated.
This goes on top of the last one.
--- zsh-forge/current/Src/parse.c Thu Jun 21 03:06:36 2001
+++ zsh-4.0/Src/parse.c Thu Jun 21 03:31:04 2001
@@ -903,13 +903,15 @@
yylex();
type = WC_FOR_COND;
} else {
+ int posix_in;
infor = 0;
if (tok != STRING || !isident(tokstr))
YYERRORV(oecused);
ecstr(tokstr);
incmdpos = 1;
yylex();
- while (isnewlin && !csh)
+ posix_in = isnewlin;
+ while (isnewlin)
yylex();
if (tok == STRING && !strcmp(tokstr, "in")) {
int np, n;
@@ -922,7 +924,7 @@
YYERRORV(oecused);
ecbuf[np] = n;
type = (sel ? WC_SELECT_LIST : WC_FOR_LIST);
- } else if (tok == INPAR) {
+ } else if (!posix_in && tok == INPAR) {
int np, n;
incmdpos = 0;
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
Messages sorted by:
Reverse Date,
Date,
Thread,
Author