about summary refs log tree commit diff
path: root/Src/parse.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2003-02-17 11:41:58 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2003-02-17 11:41:58 +0000
commit40c29457f285deaba4959dd23d5f2dd859ddb956 (patch)
treeeef78ccf4dd50dd9ef37a4a8764e01ebfd9733ce /Src/parse.c
parenta71bf4a283a5a9ba58ac0057b689c4cee5c9e354 (diff)
downloadzsh-40c29457f285deaba4959dd23d5f2dd859ddb956.tar.gz
zsh-40c29457f285deaba4959dd23d5f2dd859ddb956.tar.xz
zsh-40c29457f285deaba4959dd23d5f2dd859ddb956.zip
18251: Fix select and make it respect EOF
Diffstat (limited to 'Src/parse.c')
-rw-r--r--Src/parse.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/Src/parse.c b/Src/parse.c
index a6c4cd10b..d7aaa9f63 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -923,18 +923,19 @@ par_for(int *complex)
 	yylex();
 	type = WC_FOR_COND;
     } else {
-	int np, n, posix_in, ona = noaliases, onc = nocorrect;
+	int np = 0, n, posix_in, ona = noaliases, onc = nocorrect;
 	infor = 0;
 	if (tok != STRING || !isident(tokstr))
 	    YYERRORV(oecused);
-	np = ecadd(0);
+	if (!sel)
+	    np = ecadd(0);
 	n = 0;
 	incmdpos = 1;
 	noaliases = nocorrect = 1;
 	for (;;) {
 	    n++;
 	    ecstr(tokstr);
-	    yylex();	
+	    yylex();
 	    if (tok != STRING || !strcmp(tokstr, "in") || sel)
 		break;
 	    if (!isident(tokstr) || errflag)
@@ -946,7 +947,8 @@ par_for(int *complex)
 	}
 	noaliases = ona;
 	nocorrect = onc;
-	ecbuf[np] = n;
+	if (!sel)
+	    ecbuf[np] = n;
 	posix_in = isnewlin;
 	while (isnewlin)
 	    yylex();