diff options
Diffstat (limited to 'Completion/Unix')
-rw-r--r-- | Completion/Unix/Command/_getopt | 7 | ||||
-rw-r--r-- | Completion/Unix/Type/_path_files | 2 | ||||
-rw-r--r-- | Completion/Unix/Type/_time_zone | 3 |
3 files changed, 7 insertions, 5 deletions
diff --git a/Completion/Unix/Command/_getopt b/Completion/Unix/Command/_getopt index 3359818b5..a8b0f6fc9 100644 --- a/Completion/Unix/Command/_getopt +++ b/Completion/Unix/Command/_getopt @@ -2,9 +2,10 @@ local -a args aopts -# Note: BusyBox getopt is borrowed straight from util-linux, so they're -# basically identical -if _pick_variant busybox=BusyBox util-linux='getopt*enhanced' unix --version; then +# @todo BusyBox getopt is borrowed straight from util-linux, so they're nearly +# identical, but not quite: BusyBox doesn't have -h and -V and often doesn't +# support long options. So possibly this could be more accurate +if _pick_variant busybox=BusyBox util-linux='(enhanced|util-linux)' unix --version; then args=( '(-a --alternative)'{-a,--alternative}'[allow long options with single -]' '(: -)'{-h,--help}'[display help information]' diff --git a/Completion/Unix/Type/_path_files b/Completion/Unix/Type/_path_files index 06d9d8d51..d46dcbe5a 100644 --- a/Completion/Unix/Type/_path_files +++ b/Completion/Unix/Type/_path_files @@ -734,7 +734,7 @@ for prepath in "$prepaths[@]"; do compadd "$tmp4[@]" -s "${Uopt:+$ISUFFIX}" $listopts - "$tmpdisp" done else - [[ -n "$compstate[pattern_match]" ]] && SUFFIX="${SUFFIX:s./.*/}*" + [[ -n "$compstate[pattern_match]" ]] && SUFFIX="${SUFFIX:gs./.*/}*" for i in "$tmp1[@]"; do _list_files i "$prepath$realpath$testpath" diff --git a/Completion/Unix/Type/_time_zone b/Completion/Unix/Type/_time_zone index c437252a8..a7b63adcd 100644 --- a/Completion/Unix/Type/_time_zone +++ b/Completion/Unix/Type/_time_zone @@ -6,4 +6,5 @@ if (( ! $+_zoneinfo_dirs )); then _zoneinfo_dirs=( /usr/{share,lib,share/lib}/{zoneinfo*,locale/TZ}(/) ) fi -_wanted time-zones expl 'time zone' _files -g '[A-Z]*' -W _zoneinfo_dirs "$@" - +_wanted time-zones expl 'time zone' \ + _files -g '[A-Z]*' -M 'm:{a-z}={A-Z}' -W _zoneinfo_dirs "$@" - |