From 8a1f8296535c89b333360eac4dccb940d2aaaf9e Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Mon, 14 Oct 2024 15:39:50 +0900 Subject: [PATCH] Call _command_offset from bash-completion framework only if available --- tools/cli/bash.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/cli/bash.go b/tools/cli/bash.go index c438ff783..dd46c535d 100644 --- a/tools/cli/bash.go +++ b/tools/cli/bash.go @@ -35,9 +35,11 @@ func bash_output_serializer(completions []*Completions, shell_state map[string]s f := func(format string, args ...any) { fmt.Fprintf(&output, format+"\n", args...) } n := completions[0].Delegate.NumToRemove if n > 0 { - f("compopt +o nospace") - f("COMP_WORDS[%d]=%s", n, utils.QuoteStringForSH(completions[0].Delegate.Command)) - f("_command_offset %d", n) + f("if builtin declare -F _command_offset >/dev/null; then") + f(" compopt +o nospace") + f(" COMP_WORDS[%d]=%s", n, utils.QuoteStringForSH(completions[0].Delegate.Command)) + f(" _command_offset %d", n) + f("fi") } else { for _, mg := range completions[0].Groups { mg.remove_common_prefix()