about summary refs log tree commit homepage
path: root/contrib/completion/lei-completion.bash
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/completion/lei-completion.bash')
-rw-r--r--contrib/completion/lei-completion.bash15
1 files changed, 9 insertions, 6 deletions
diff --git a/contrib/completion/lei-completion.bash b/contrib/completion/lei-completion.bash
index 5c137e68..b86afa2c 100644
--- a/contrib/completion/lei-completion.bash
+++ b/contrib/completion/lei-completion.bash
@@ -1,16 +1,19 @@
-# Copyright (C) 2020-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 
 # preliminary bash completion support for lei (Local Email Interface)
 # Needs a lot of work, see `lei__complete' in lib/PublicInbox::LEI.pm
 _lei() {
         local wordlist="$(lei _complete ${COMP_WORDS[@]})"
-        case $wordlist in
-        *':'* | *'='* | '//'*) compopt -o nospace ;;
-        *) compopt +o nospace ;; # the default
-        esac
         wordlist="${wordlist//;/\\\\;}" # escape ';' for ';UIDVALIDITY' and such
-        COMPREPLY=($(compgen -W "$wordlist" -- "${COMP_WORDS[COMP_CWORD]}"))
+
+        local word="${COMP_WORDS[COMP_CWORD]}"
+        if test "$word" = ':' && test $COMP_CWORD -ge 1
+        then
+                COMPREPLY=($(compgen -W "$wordlist" --))
+        else
+                COMPREPLY=($(compgen -W "$wordlist" -- "$word"))
+        fi
         return 0
 }
 complete -o default -o bashdefault -F _lei lei