about summary refs log tree commit diff
path: root/Src/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/parse.c')
-rw-r--r--Src/parse.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Src/parse.c b/Src/parse.c
index 5b8f0af48..e4d038b6e 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -1465,7 +1465,10 @@ par_funcdef(void)
 	    ecssub = oecssub;
 	    YYERRORV(oecused);
 	}
-	incmdpos = 0;
+	if (num == 0) {
+	    /* Anonymous function, possibly with arguments */
+	    incmdpos = 0;
+	}
 	zshlex();
     } else if (unset(SHORTLOOPS)) {
 	lineno += oldlineno;
@@ -1721,7 +1724,10 @@ par_simple(int *complex, int nr)
 		    ecssub = oecssub;
 		    YYERROR(oecused);
 		}
-		incmdpos = 0;
+		if (argc == 0) {
+		    /* Anonymous function, possibly with arguments */
+		    incmdpos = 0;
+		}
 		zshlex();
 	    } else {
 		int ll, sl, c = 0;