[pacman-dev] [PATCH] bash-completion: support file redirection completions

Eli Schwartz eschwartz at archlinux.org
Fri Mar 8 04:22:49 UTC 2019


The current completions don't properly handle redirection operators, and
attempt to complete command completions rather than completing filenames
to redirect to.

bash-completion provides both _get_comp_words_by_ref and a higher-level
wrapper _init_completion, but the latter provides handling of redirection
operators, so switch to using that.

Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
---
 scripts/completion/bash_completion.in | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/scripts/completion/bash_completion.in b/scripts/completion/bash_completion.in
index c3249cd0..a1ab9fec 100644
--- a/scripts/completion/bash_completion.in
+++ b/scripts/completion/bash_completion.in
@@ -41,9 +41,9 @@ _pacman_keyids() {
 }
 
 _pacman_key() {
-  local o cur opts prev wantfiles
-  COMPREPLY=()
-  _get_comp_words_by_ref cur prev
+  local o opts wantfiles
+  local cur prev words cword
+  _init_completion || return
   opts=('add config delete edit-key export finger gpgdir
          help import import-trustdb init keyserver list-keys list-sigs
          lsign-key nocolor populate recv-keys refresh-keys updatedb
@@ -72,9 +72,9 @@ _pacman_key() {
 
 _makepkg() {
   compopt +o default
-  local cur opts prev
-  COMPREPLY=()
-  _get_comp_words_by_ref cur prev
+  local opts
+  local cur prev words cword
+  _init_completion || return
   if [[ $prev = @(-p|--config) ]]; then
     compopt -o default
   elif [[ ! $prev =~ ^-(-(config|help|key|version)$|\w*[Vh]) ]]; then
@@ -105,9 +105,9 @@ _pacman_repo_list() {
 
 _pacman() {
   compopt -o default
-  local common core cur database files prev query remove sync upgrade o
-  COMPREPLY=()
-  _get_comp_words_by_ref cur prev
+  local common core database files query remove sync upgrade o
+  local cur prev words cword
+  _init_completion || return
   database=('asdeps asexplicit')
   files=('list machinereadable owns search refresh regex' 'l o s x y')
   query=('changelog check deps explicit file foreign groups info list native owns
-- 
2.21.0


More information about the pacman-dev mailing list