summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <p.w.stephenson@ntlworld.com>2017-09-04 21:36:46 +0100
committerPeter Stephenson <p.w.stephenson@ntlworld.com>2017-09-04 21:36:46 +0100
commit5a8155f7b7ab8f3cab1f95d4dba5ed49de0ab77c (patch)
tree93e954a473fa844062b61909c6f33d9406db231d
parent1e536747aee3d39d7e960add67f19fcf6e9ee284 (diff)
downloadzsh-5a8155f7b7ab8f3cab1f95d4dba5ed49de0ab77c.tar.gz
zsh-5a8155f7b7ab8f3cab1f95d4dba5ed49de0ab77c.zip
41633: Fix problem backgrounding function definitions.
Owing to being marked as simple sublists the instruction to background was ignored. This applied to anonymous functions.
-rw-r--r--ChangeLog6
-rw-r--r--Src/parse.c7
2 files changed, 12 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 9ccfc461b..e51e5c47d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-09-04 Peter Stephenson <p.w.stephenson@ntlworld.com>
+
+ * 41633: Src/parse.c: make sure function definitions including
+ anonymous functions put into the background are run in the
+ background.
+
2017-09-04 Daniel Shahaf <d.s@daniel.shahaf.name>
* 41621: Completion/Unix/Command/_mkdir: Honour the 'command'
diff --git a/Src/parse.c b/Src/parse.c
index 27052527d..6e0856bbc 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -808,8 +808,13 @@ par_sublist(int *cmplx)
WC_SUBLIST_END),
f, (e - 1 - p), c);
cmdpop();
- } else
+ } else {
+ if (tok == AMPER || tok == AMPERBANG) {
+ c = 1;
+ *cmplx |= c;
+ }
set_sublist_code(p, WC_SUBLIST_END, f, (e - 1 - p), c);
+ }
return 1;
} else {
ecused--;