summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Etc/BUGS6
-rw-r--r--Src/exec.c4
3 files changed, 8 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 8ff17f179..b30b646c1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2022-04-28 Bart Schaefer <schaefer@Macadamia>
+
+ * 50126: Etc/BUGS, Src/exec.c: Fix multios in current-shell "exec"
+
2022-04-26 dana <dana@dana.is>
* unposted: Completion/Unix/Command/_getopt: Fix util-linux
diff --git a/Etc/BUGS b/Etc/BUGS
index 3121fc9fa..b511ec6d6 100644
--- a/Etc/BUGS
+++ b/Etc/BUGS
@@ -46,12 +46,6 @@ interactive and the subshell is the foreground job. The USEZLE option is
always turned off in subshells, for reasons lost to history. There is a
related, probably obsolete, vared special case for $TERM set to "emacs".
------------------------------------------------------------------------
-users/26150: MULTIOS does not work with "exec":
-
-exec 3>/tmp/test1 3>/tmp/test2
-
-causes a script to hang.
-------------------------------------------------------------------------
47561: [PATCH v4] vcs_info: choose backend by basedir
------------------------------------------------------------------------
39319: () { exit } =(:) doesn't clean up the tempfile
diff --git a/Src/exec.c b/Src/exec.c
index 47753da48..c31089bb5 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -3898,6 +3898,10 @@ execcmd_exec(Estate state, Execcmd_params eparams,
for (i = 0; i < 10; i++)
if (save[i] != -2)
zclose(save[i]);
+ /*
+ * We're done with this job, no need to wait for it.
+ */
+ jobtab[thisjob].stat |= STAT_DONE;
goto done;
}
if (isset(XTRACE)) {