summaryrefslogtreecommitdiff
path: root/completions/7z
diff options
context:
space:
mode:
Diffstat (limited to 'completions/7z')
-rw-r--r--completions/7z65
1 files changed, 35 insertions, 30 deletions
diff --git a/completions/7z b/completions/7z
index 96a64f1f..a8acbc59 100644
--- a/completions/7z
+++ b/completions/7z
@@ -5,8 +5,8 @@ _7z()
local cur prev words cword
_init_completion -n = || return
- if [[ $cword -eq 1 ]]; then
- COMPREPLY=( $(compgen -W 'a b d e l t u x' -- "$cur") )
+ if ((cword == 1)); then
+ COMPREPLY=($(compgen -W 'a b d e l t u x' -- "$cur"))
return
fi
@@ -15,7 +15,7 @@ _7z()
case $cur in
-ao*)
- COMPREPLY=( $(compgen -P${cur:0:3} -W 'a s t u' -- "${cur:3}") )
+ COMPREPLY=($(compgen -P${cur:0:3} -W 'a s t u' -- "${cur:3}"))
return
;;
-?(a)[ix]*)
@@ -26,74 +26,79 @@ _7z()
opt=${cur:0:2} cur=${cur:2}
fi
if [[ $cur != *[@\!]* ]]; then
- COMPREPLY=( $(compgen -P$opt -W '@ ! r@ r-@ r0@ r! r-! r0!' \
- -- "$cur") )
+ COMPREPLY=($(compgen -P$opt -W '@ ! r@ r-@ r0@ r! r-! r0!' \
+ -- "$cur"))
elif [[ $cur == ?(r@(-|0|))@* ]]; then
- local IFS=$' \t\n' reset=$(shopt -po noglob); set -o noglob
- COMPREPLY=( $(compgen -P"${opt}${cur%%@*}@" -f -- "${cur#*@}") )
+ local IFS=$' \t\n' reset=$(shopt -po noglob)
+ set -o noglob
+ COMPREPLY=($(compgen -P"${opt}${cur%%@*}@" -f -- "${cur#*@}"))
$reset
compopt -o filenames
fi
return
;;
- -mhe=*|-mhc=*|-ms=*|-mt=*)
- COMPREPLY=( $(compgen -W 'on off' -- "${cur#*=}") )
+ -mhe=* | -mhc=* | -ms=* | -mt=*)
+ COMPREPLY=($(compgen -W 'on off' -- "${cur#*=}"))
return
;;
-mx=*)
- COMPREPLY=( $(compgen -W '0 1 3 5 7 9' -- "${cur#*=}") )
+ COMPREPLY=($(compgen -W '0 1 3 5 7 9' -- "${cur#*=}"))
return
;;
- -o*|-w?*)
- local IFS=$' \t\n' reset=$(shopt -po noglob); set -o noglob
- COMPREPLY=( $(compgen -P${cur:0:2} -S/ -d -- "${cur:2}") )
+ -o* | -w?*)
+ local reset=$(shopt -po noglob)
+ set -o noglob
+ compopt -o filenames
+ local ifs=$IFS IFS=$'\n'
+ COMPREPLY=($(compgen -d -P${cur:0:2} -S/ -- "${cur:2}"))
+ IFS=$ifs
$reset
- compopt -o nospace -o filenames
+ compopt -o nospace
return
;;
-r?*)
- COMPREPLY=( $(compgen -P${cur:0:2} -W '- 0' -- "${cur:2}") )
+ COMPREPLY=($(compgen -P${cur:0:2} -W '- 0' -- "${cur:2}"))
return
;;
-scs*)
- COMPREPLY=( $(compgen -P${cur:0:4} -W 'UTF-8 WIN DOS' \
- -- "${cur:4}") )
+ COMPREPLY=($(compgen -P${cur:0:4} -W 'UTF-8 WIN DOS' \
+ -- "${cur:4}"))
return
;;
-ssc?*)
- COMPREPLY=( $(compgen -P${cur:0:4} -W '-' -- "${cur:4}") )
+ COMPREPLY=($(compgen -P${cur:0:4} -W '-' -- "${cur:4}"))
return
;;
-t*)
if [[ $mode == w ]]; then
- COMPREPLY=( $(compgen -P${cur:0:2} -W '7z bzip2 gzip swfc
- tar wim xz zip' -- "${cur:2}") )
+ COMPREPLY=($(compgen -P${cur:0:2} -W '7z bzip2 gzip swfc
+ tar wim xz zip' -- "${cur:2}"))
else
- COMPREPLY=( $(compgen -P${cur:0:2} -W '7z apm arj bzip2 cab
+ COMPREPLY=($(compgen -P${cur:0:2} -W '7z apm arj bzip2 cab
chm cpio cramfs deb dmg elf fat flv gzip hfs iso lzh lzma
lzma86 macho mbr mslz mub nsis ntfs pe ppmd rar rpm
squashfs swf swfc tar udf vhd wim xar xz z zip' \
- -- "${cur:2}") )
+ -- "${cur:2}"))
fi
return
;;
- -m*=*|-p*|-u*|-v*)
+ -m*=* | -p* | -u* | -v*)
return
;;
esac
if [[ $cur == -* ]]; then
- COMPREPLY=( $(compgen -W '-ai -an -ao -ax -bd -i -m{x,s,f,he,hc,mt}=
+ COMPREPLY=($(compgen -W '-ai -an -ao -ax -bd -i -m{x,s,f,he,hc,mt}=
-o -p -r -scs -sfx -si -slp -slt -so -ssc -t -u -v -w -x -y' \
- -- "$cur") )
- [[ $COMPREPLY == -@(an|bd|sfx|si|slt|so|ssc|[rwy]) ]] ||
+ -- "$cur"))
+ [[ ${COMPREPLY-} == -@(an|bd|sfx|si|slt|so|ssc|[rwy]) ]] ||
compopt -o nospace
return
fi
local args
_count_args =
- if [[ $args -eq 2 ]]; then
+ if ((args == 2)); then
_filedir_xspec unzip
# TODO: parsing 7z i output?
# - how to figure out if the format is input or output?
@@ -109,15 +114,15 @@ _7z()
else
if [[ ${words[1]} == d ]]; then
local IFS=$'\n'
- COMPREPLY=( $(compgen -W "$(printf '%s\n' $($1 l ${words[2]} \
+ COMPREPLY=($(compgen -W "$(printf '%s\n' "$($1 l ${words[2]} \
-slt 2>/dev/null | command sed -n '/^Path =/s/^Path = \(.*\)$/\1/p' \
- 2>/dev/null | tail -n+2))" -- "$cur") )
+ 2>/dev/null | tail -n+2)")" -- "$cur"))
compopt -o filenames
else
_filedir
fi
fi
} &&
-complete -F _7z 7z 7za
+ complete -F _7z 7z 7za
# ex: filetype=sh