summaryrefslogtreecommitdiff
path: root/Completion/Unix
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Command/_getopt7
-rw-r--r--Completion/Unix/Type/_path_files2
-rw-r--r--Completion/Unix/Type/_time_zone3
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 "$@" -