bash-completion: localize words and cword variables
authorSibo Dong <dongsibo@users.noreply.github.com>
Sat, 3 Apr 2021 03:33:59 +0000 (23:33 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 15 May 2021 18:16:50 +0000 (20:16 +0200)
commit1e198d76171b49a77f11b04fa482aa121e84d033
tree751b19974a5ac293c342b2476d01e350349b6f81
parent2e2459e873d44480569bb8302e0a2a8758514968
bash-completion: localize words and cword variables

The words and cword variables are not localized in all Bash completion
scripts that call _init_completion.

cur, prev, words, and cword (and split if using the -s flag) are all
variables that should be localized in Bash completion scripts before
calling _init_completion (even if they don't otherwise appear in the
calling script). This is done for cur and prev, but not for words and
cword. Letting words and cword remain unlocalized may clobber variables
the user is using for other purposes, which is bad.

This issue can be resolved by declaring words and cword as local
variables.

Resolves #19188.

(cherry picked from commit f34173a048061b3f7e551e9a7c04f00e5a106fac)
(cherry picked from commit 90aee910f6e6d54e78651ee8a9d95823b88b527d)
(cherry picked from commit d62208c253daa55128adfa4f43886298bea28b01)
shell-completion/bash/machinectl
shell-completion/bash/networkctl
shell-completion/bash/systemd-analyze
shell-completion/bash/systemd-cat
shell-completion/bash/systemd-cgls
shell-completion/bash/systemd-cgtop
shell-completion/bash/systemd-delta
shell-completion/bash/systemd-detect-virt
shell-completion/bash/systemd-id128
shell-completion/bash/systemd-nspawn
shell-completion/bash/systemd-path