From eb3b6397b1b5d1b0a2cd66a9afe0520f480c0a87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Thu, 18 Feb 2021 17:26:03 +0200 Subject: [PATCH] Bash completion variable leak fixes (#1352) Fixes bash variables leaking into the parent shell without `local` --- bash_completions.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bash_completions.go b/bash_completions.go index 71061479..b47f898a 100644 --- a/bash_completions.go +++ b/bash_completions.go @@ -384,7 +384,7 @@ func writePostscript(buf io.StringWriter, name string) { name = strings.Replace(name, ":", "__", -1) WriteStringAndCheck(buf, fmt.Sprintf("__start_%s()\n", name)) WriteStringAndCheck(buf, fmt.Sprintf(`{ - local cur prev words cword + local cur prev words cword split declare -A flaghash 2>/dev/null || : declare -A aliashash 2>/dev/null || : if declare -F _init_completion >/dev/null 2>&1; then @@ -400,11 +400,13 @@ func writePostscript(buf io.StringWriter, name string) { local flags_with_completion=() local flags_completion=() local commands=("%[1]s") + local command_aliases=() local must_have_one_flag=() local must_have_one_noun=() local has_completion_function local last_command local nouns=() + local noun_aliases=() __%[1]s_handle_word }