From: Chet Ramey Date: Thu, 1 Aug 2024 15:33:15 +0000 (-0400) Subject: Bash-5.2 patch 28: fix terminal pgrp handling in DEBUG trap X-Git-Tag: bash-5.3~11 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=7440bd8ba5a6e542cc59754a15871c5a42cdeae9;p=thirdparty%2Fbash.git Bash-5.2 patch 28: fix terminal pgrp handling in DEBUG trap --- diff --git a/patchlevel.h b/patchlevel.h index b534802b..7abb1edb 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -25,6 +25,6 @@ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ -#define PATCHLEVEL 27 +#define PATCHLEVEL 28 #endif /* _PATCHLEVEL_H_ */ diff --git a/trap.c b/trap.c index e56f6cc3..465c3360 100644 --- a/trap.c +++ b/trap.c @@ -1216,7 +1216,9 @@ run_debug_trap () close_pgrp_pipe (); restore_pgrp_pipe (save_pipe); # endif - if (pipeline_pgrp > 0 && ((subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0)) + /* If the trap command gave the terminal to another process group, + restore it. XXX - check running_in_background? */ + if (job_control && pipeline_pgrp > 0 && ((subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0)) give_terminal_to (pipeline_pgrp, 1); notify_and_cleanup ();