From 9395d5e43f9a0891dedaa7c7ff2a4f25be2290cf Mon Sep 17 00:00:00 2001 From: Megan Rogge Date: Mon, 8 Aug 2022 10:54:56 -0700 Subject: [PATCH] handle debug traps with `[[` specially (#157544) * fix #154189 * add comment --- .../terminal/browser/media/shellIntegration-bash.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh b/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh index 0d9d6734655..658e729043f 100755 --- a/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh +++ b/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh @@ -125,7 +125,14 @@ if [[ -n "${bash_preexec_imported:-}" ]]; then precmd_functions+=(__vsc_prompt_cmd) preexec_functions+=(__vsc_preexec_only) else - __vsc_dbg_trap="$(trap -p DEBUG | cut -d' ' -f3 | tr -d \')" + __vsc_dbg_trap="$(trap -p DEBUG)" + if [[ "$__vsc_db_trap" =~ .*\[\[.* ]]; then + #HACK - is there a better way to do this? + __vsc_dbg_trap=${__vsc_dbg_trap#'trap -- '*} + __vsc_dbg_trap=${__vsc_dbg_trap%'DEBUG'} + else + __vsc_dbg_trap="$(trap -p DEBUG | cut -d' ' -f3 | tr -d \')" + fi if [[ -z "$__vsc_dbg_trap" ]]; then __vsc_preexec_only() { if [ "$__vsc_in_command_execution" = "0" ]; then