diff options
Diffstat (limited to 'completions')
34 files changed, 737 insertions, 165 deletions
diff --git a/completions/.gitignore b/completions/.gitignore index 713d825e..4e86f85c 100644 --- a/completions/.gitignore +++ b/completions/.gitignore @@ -3,6 +3,7 @@ alpine alternatives animate apropos +arm-koji asciidoc.py autoheader automake-1.11 @@ -104,6 +105,7 @@ pm-suspend pm-suspend-hybrid pmake postalias +ppc-koji puppetca puppetd puppetdoc @@ -133,6 +135,7 @@ rpm2targz rpm2txz rpmbuild rpmbuild-md5 +s390-koji sbcl-mt scp sdptool @@ -145,6 +148,7 @@ smbget smbpasswd smbtar smbtree +sparc-koji spovray stream tightvncviewer diff --git a/completions/Makefile.am b/completions/Makefile.am index d35fe00b..797fc88c 100644 --- a/completions/Makefile.am +++ b/completions/Makefile.am @@ -28,6 +28,7 @@ bashcomp_DATA = a2x \ cal \ cancel \ cardctl \ + ccache \ cfagent \ cfrun \ chage \ @@ -115,6 +116,7 @@ bashcomp_DATA = a2x \ hping2 \ htpasswd \ iconv \ + id \ idn \ iftop \ ifup \ @@ -125,6 +127,7 @@ bashcomp_DATA = a2x \ invoke-rc.d \ ionice \ ip \ + iperf \ iptables \ ipmitool \ ipsec \ @@ -146,6 +149,7 @@ bashcomp_DATA = a2x \ killall \ kldload \ kldunload \ + koji \ ktutil \ larch \ lastlog \ @@ -167,6 +171,7 @@ bashcomp_DATA = a2x \ lrzip \ lsof \ lvm \ + lzip \ lzma \ lzop \ macof \ @@ -199,6 +204,7 @@ bashcomp_DATA = a2x \ mysql \ mysqladmin \ ncftp \ + nethogs \ newgrp \ newlist \ newusers \ @@ -303,6 +309,7 @@ bashcomp_DATA = a2x \ useradd \ userdel \ usermod \ + valgrind \ vipw \ vncviewer \ vpnc \ @@ -339,6 +346,7 @@ CLEANFILES = \ alternatives \ animate \ apropos \ + arm-koji \ asciidoc.py \ autoheader \ automake-1.11 \ @@ -440,6 +448,7 @@ CLEANFILES = \ pm-suspend-hybrid \ pmake \ postalias \ + ppc-koji \ puppetca \ puppetd \ puppetdoc \ @@ -469,6 +478,7 @@ CLEANFILES = \ rpm2txz \ rpmbuild \ rpmbuild-md5 \ + s390-koji \ sbcl-mt \ scp \ sdptool \ @@ -481,6 +491,7 @@ CLEANFILES = \ smbpasswd \ smbtar \ smbtree \ + sparc-koji \ spovray \ stream \ tightvncviewer \ @@ -632,6 +643,10 @@ symlinks: rm -f $(targetdir)/$$file && \ $(LN_S) killall $(targetdir)/$$file ; \ done + for file in arm-koji ppc-koji s390-koji sparc-koji ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) koji $(targetdir)/$$file ; \ + done for file in ldapadd ldapmodify ldapdelete ldapcompare ldapmodrdn \ ldapwhoami ldappasswd ; do \ rm -f $(targetdir)/$$file && \ diff --git a/completions/ccache b/completions/ccache new file mode 100644 index 00000000..63f5a1c6 --- /dev/null +++ b/completions/ccache @@ -0,0 +1,26 @@ +# ccache(1) completion -*- shell-script -*- + +_ccache() +{ + local cur prev words cword split + _init_completion -s || return + + if [[ $COMP_CWORD -eq 1 && ${COMP_WORDS[COMP_CWORD]} != -* ]]; then + _command_offset 1 + return + fi + + case $prev in + -h|--help|-V|--version|-F|--max-files|-M|--max-size) + return + ;; + esac + + $split && return + + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace +} && +complete -F _ccache ccache + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/cppcheck b/completions/cppcheck index 465f40d2..d3c7a422 100644 --- a/completions/cppcheck +++ b/completions/cppcheck @@ -7,16 +7,24 @@ _cppcheck() case $prev in --append|--exitcode-suppressions|--file-list|--rule-file|\ - --suppressions-list|-i) + --suppressions-list|--includes-file|-i) _filedir return ;; - -D|--rule|--suppress|--template) + -D|-U|--rule|--suppress|--template|--max-configs) return ;; --enable) + # split comma-separated list + split=false + if [[ "$cur" == ?*,* ]]; then + prev="${cur%,*}" + cur="${cur##*,}" + split=true + fi COMPREPLY=( $( compgen -W 'all style performance portability information unusedFunction missingInclude' -- "$cur" ) ) + $split && COMPREPLY=( ${COMPREPLY[@]/#/"$prev,"} ) return ;; --error-exitcode) @@ -32,7 +40,7 @@ _cppcheck() return ;; --std) - COMPREPLY=( $( compgen -W 'c99 posix' -- "$cur" ) ) + COMPREPLY=( $( compgen -W 'c99 c++11 posix' -- "$cur" ) ) return ;; --platform) diff --git a/completions/curl b/completions/curl index f0fc6acf..6b56aa57 100644 --- a/completions/curl +++ b/completions/curl @@ -6,18 +6,20 @@ _curl() _init_completion || return case $prev in - --ciphers|--connect-timeout|-C|--continue-at|--form|--form-string|\ + --ciphers|--connect-timeout|-C|--continue-at|-F|--form|--form-string|\ --ftp-account|--ftp-alternative-to-user|-P|--ftp-port|-H|--header|-h|\ --help|--hostpubmd5|--keepalive-time|--krb|--limit-rate|--local-port|\ --mail-from|--mail-rcpt|--max-filesize|--max-redirs|-m|--max-time|\ --pass|--proto|--proto-redir|--proxy-user|--proxy1.0|-Q|--quote|-r|\ --range|-X|--request|--retry|--retry-delay|--retry-max-time|\ --socks5-gssapi-service|-t|--telnet-option|--tftp-blksize|-z|\ - --time-cond|--url|-u|--user|-A|--user-agent|-V|--version|-w|--write-out) + --time-cond|--url|-u|--user|-A|--user-agent|-V|--version|-w|\ + --write-out|--resolve|--tlsuser|--tlspassword) return ;; -K|--config|-b|--cookie|-c|--cookie-jar|-D|--dump-header|--egd-file|\ - --key|--libcurl|-o|--output|--random-file|-T|--upload-file) + --key|--libcurl|-o|--output|--random-file|-T|--upload-file|--trace|\ + --trace-ascii|--netrc-file) _filedir return ;; @@ -45,6 +47,10 @@ _curl() fi return ;; + --delegation) + COMPREPLY=( $( compgen -W 'none policy always' -- "$cur" ) ) + return + ;; --engine) COMPREPLY=( $( compgen -W 'list' -- "$cur" ) ) return @@ -74,6 +80,10 @@ _curl() _filedir return ;; + --tlsauthtype) + COMPREPLY=( $( compgen -W 'SRP' -- "$cur" ) ) + return + ;; esac if [[ $cur == -* ]]; then diff --git a/completions/dict b/completions/dict index 3caedf76..a2ecd9b1 100644 --- a/completions/dict +++ b/completions/dict @@ -54,8 +54,17 @@ _dict() esac local dictfile=/usr/share/dict/words - [[ -r $dictfile ]] && \ - COMPREPLY=( $( compgen -W '$( cat $dictfile )' -- "$cur" ) ) + if [[ -r $dictfile ]]; then + # Dictfile may be too large for practical compgen -W usage, so narrow + # it down with grep if $cur looks like something that's safe to embed + # in a pattern instead. + if [[ $cur == +([-A-Za-z0-9/.]) ]]; then + COMPREPLY=( $( compgen -W \ + '$( command grep "^${cur//./\\.}" $dictfile )' -- "$cur" ) ) + else + COMPREPLY=( $( compgen -W '$( cat $dictfile )' -- "$cur" ) ) + fi + fi } && complete -F _dict -o default dict rdict diff --git a/completions/export b/completions/export index 557c52cb..42273a9e 100644 --- a/completions/export +++ b/completions/export @@ -3,23 +3,59 @@ _export() { local cur prev words cword - _init_completion || return + _init_completion -n = || return - case ${words[@]} in - *=\$*) - COMPREPLY=( $( compgen -v -P '$' -- "${cur#*=\$}" ) ) + local i action=variable remove=false + for (( i=1; i < cword; i++ )); do + case ${words[i]} in + -p) + return + ;; + -*f*) + action=function + ;;& + -*n*) + remove=true + ;; + -*) + continue + ;; + esac + break + done + + [[ $cur == *=\$* ]] && { cur=${cur#*=}; _variables; } && return + + case $cur in + *=) + local pval=$( quote "$( eval printf %s \"\$${cur%=}\" )" ) + # Complete previous value if it's not empty. + if [[ $pval != \'\' ]]; then + COMPREPLY=( "$pval" ) + else + cur=${cur#*=} + _filedir + fi ;; - *[^=]) - COMPREPLY=( $( compgen -v -S '=' -- "$cur" ) ) + *=*) + cur=${cur#*=} + _filedir ;; - *=) - COMPREPLY=( "$( eval echo -n \"$`echo ${cur%=}`\" | - ( echo -n \' - sed -e 's/'\''/'\''\\\'\'''\''/g' - echo -n \' ) )" ) + *) + if [[ $cword -eq 1 && $cur == -* ]]; then + COMPREPLY=( $( compgen -W \ + '-p $( _parse_usage "$1" )' -- "$cur" ) ) + return + fi + local suffix + if ! $remove; then + suffix+== + compopt -o nospace + fi + COMPREPLY=( $( compgen -A $action -S "$suffix" -- "$cur" ) ) ;; esac } && -complete -F _export -o default -o nospace export +complete -F _export export # ex: ts=4 sw=4 et filetype=sh diff --git a/completions/fbgs b/completions/fbgs index 672de7cd..93dbe392 100644 --- a/completions/fbgs +++ b/completions/fbgs @@ -28,8 +28,8 @@ _fbgs() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $(compgen -W '-l -xl -xxl -a --fitwidth -d -m -t -g -f -p \ - -h -c' -- "$cur") ) + COMPREPLY=( $( compgen -W '-l -xl -xxl -a --fitwidth -d -m -t -g -f -p + -h -c' -- "$cur" ) ) [[ $COMPREPLY ]] && return fi diff --git a/completions/fbi b/completions/fbi index f8f7a825..9516247b 100644 --- a/completions/fbi +++ b/completions/fbi @@ -11,12 +11,12 @@ _fbi() return ;; -r|--resolution) - COMPREPLY+=( $(compgen -W '{1..5}') ) + COMPREPLY+=( $( compgen -W '{1..5}' ) ) return ;; -f|--font) local IFS=$'\n' - COMPREPLY=( $( compgen -W '$( fc-list 2>/dev/null )' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( fc-list 2> /dev/null )' -- "$cur" ) ) return ;; -m|--mode) @@ -36,13 +36,12 @@ _fbi() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $(compgen -W '--help --version --store --list --text \ - --autozoom --autoup --noautoup --autodown --noautodown --fitwidth \ - --nofitwidth --verbose --noverbose --random --norandom --comments \ - --nocomments --edit --noedit --backup --nobackup --preserve \ - --nopreserve --readahead --noreadahead --cachemem --blend --vt \ - --scroll --timeout --once --noonce --resolution --gamma --font \ - --device --mode' -- "$cur") ) + COMPREPLY=( $( compgen -W '--help --version --store --list --text + --autozoom --{,no}autoup --{,no}autodown --{,no}fitwidth + --{,no}verbose --{,no}random --{,no}comments --{,no}edit + --{,no}backup --{,no}preserve --{,no}readahead --cachemem --blend + --vt --scroll --timeout --{,no}once --resolution --gamma --font + --device --mode' -- "$cur" ) ) [[ $COMPREPLY ]] && return fi diff --git a/completions/feh b/completions/feh index 556fc13e..0f34f94b 100644 --- a/completions/feh +++ b/completions/feh @@ -25,12 +25,12 @@ _feh() -e|--font|-M|--menu-font|-@|--title-font) # expect string like "dejavu.ttf/12" if [[ "$cur" == */* ]]; then # expect integer value - COMPREPLY=( $(compgen -P "$cur" -W '{0..9}') ) + COMPREPLY=( $( compgen -P "$cur" -W '{0..9}' ) ) compopt -o nospace return fi local font_path - # font_path="$(imlib2-config --prefix 2> /dev/null)/share/imlib2/data/fonts" + # font_path="$( imlib2-config --prefix 2> /dev/null )/share/imlib2/data/fonts" # COMPREPLY=( $( cd "$font_path" 2> /dev/null; compgen -f \ # -X "!*.@([tT][tT][fF])" -S / -- "$cur" ) ) for (( i=${#words[@]}-1; i>0; i-- )); do @@ -63,15 +63,15 @@ _feh() -R|--reload|-H|--limit-height|-W|--limit-width|-E|--thumb-height|\ -y|--thumb-width|-J|--thumb-redraw) # expect integer value - COMPREPLY+=( $(compgen -W '{0..9}') ) + COMPREPLY+=( $( compgen -W '{0..9}' ) ) compopt -o nospace return ;; --zoom) # expect integer value or "max", "fill" - COMPREPLY=( $(compgen -W 'max fill' -- "$cur") ) + COMPREPLY=( $( compgen -W 'max fill' -- "$cur" ) ) if [[ ! $cur || ! $COMPREPLY ]]; then - COMPREPLY+=( $(compgen -W '{0..9}') ) + COMPREPLY+=( $( compgen -W '{0..9}' ) ) compopt -o nospace fi return @@ -95,7 +95,7 @@ _feh() if [[ $cur && "$cur" != *x* ]]; then COMPREPLY=( x ) fi - COMPREPLY+=( $(compgen -W "{0..9}") ) + COMPREPLY+=( $( compgen -W "{0..9}" ) ) compopt -o nospace return ;; diff --git a/completions/function b/completions/function index e12fffff..e8e4d751 100644 --- a/completions/function +++ b/completions/function @@ -9,7 +9,7 @@ _function() if [[ $prev == -f ]]; then COMPREPLY=( $( compgen -A function -- "$cur" ) ) elif [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a -f -F -i -r -x -p' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) fi elif [[ $cword -eq 1 ]]; then COMPREPLY=( $( compgen -A function -- "$cur" ) ) diff --git a/completions/iperf b/completions/iperf new file mode 100644 index 00000000..721825e2 --- /dev/null +++ b/completions/iperf @@ -0,0 +1,63 @@ +# iperf(1) completion -*- shell-script -*- + +_iperf() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -h|--help|-v|--version|-i|--interval|-l|--len|-p|--port|-w|--window|\ + -M|--mss|-b|--bandwidth|-n|--num|-t|--time|-L|--listenport|-P|\ + --parallel|-T|--ttl|-Z|--linux-congestion) + return + ;; + -f|--format) + COMPREPLY=( $( compgen -W 'k m K M' -- "$cur" ) ) + return + ;; + -o|--output|-F|--fileinput) + _filedir + return + ;; + -B|--bind) + _available_interfaces -a + _ip_addresses + return + ;; + -c|--client) + _known_hosts_real "$cur" + return + ;; + -x|--reportexclude) + COMPREPLY=( $( compgen -W 'C D M S V' -- "$cur" ) ) + return + ;; + -y|--reportstyle) + COMPREPLY=( $( compgen -W 'C' -- "$cur" ) ) + return + ;; + esac + + $split && return + + # Filter mode specific options + local i filter=cat + for i in ${words[@]}; do + case $i in + -s|--server) + filter='sed -e /^Client.specific/,/^$/d' + ;; + -c|--client) + filter='sed -e /^Server.specific/,/^$/d' + ;; + esac + done + [[ $filter != cat ]] && filter+=' -e /--client/d -e /--server/d' + + COMPREPLY=( $( compgen -W \ + '$( "$1" --help 2>&1 | $filter | _parse_help - )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace +} && +complete -F _iperf iperf + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/kcov b/completions/kcov index e0f37fdb..21a8eba9 100644 --- a/completions/kcov +++ b/completions/kcov @@ -8,29 +8,29 @@ _kcov() case "$prev" in --pid|-p) _pids - return 0 + return ;; --sort-type|-s) COMPREPLY=( $( compgen -W 'filename percentage' -- "$cur" ) ) - return 0 + return ;; --include-path|--exclude-path) _filedir - return 0 + return ;; --limits|-l|--title|-t|--include-pattern|--exclude-pattern|\ --path-strip-level) # argument required but no completions available - return 0 + return ;; esac - $split && return 0 + $split && return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace - return 0 + return fi _filedir diff --git a/completions/koji b/completions/koji new file mode 100644 index 00000000..f4bdeacf --- /dev/null +++ b/completions/koji @@ -0,0 +1,234 @@ +# koji completion -*- shell-script -*- + +_koji_search() +{ + COMPREPLY+=( $( compgen -W \ + '$( "$1" -q search $2 "$cur*" 2>/dev/null )' -- "$cur" ) ) +} + +_koji_build() +{ + _koji_search "$1" build +} + +_koji_package() +{ + _koji_search "$1" package +} + +_koji_user() +{ + _koji_search "$1" user +} + +_koji_tag() +{ + COMPREPLY+=( $( compgen -W '$( "$1" -q list-tags 2>/dev/null )' \ + -- "$cur" ) ) +} + +_koji_target() +{ + COMPREPLY+=( $( compgen -W '$( "$1" -q list-targets 2>/dev/null | + awk "{ print \$1 }" )' -- "$cur" ) ) +} + +_koji() +{ + local cur prev words cword split + _init_completion -s || return + + local commandix command + for (( commandix=1; commandix < cword; commandix++ )); do + if [[ ${words[commandix]} != -* ]]; then + command=${words[commandix]} + break + fi + done + + case $prev in + -h|--help|--help-commands) + return + ;; + -c|--config|--keytab|-o) + _filedir + return + ;; + --runas|--user|--editor|--by) + _koji_user "$1" + return + ;; + --authtype) + COMPREPLY=( $( compgen -W 'noauth ssl password kerberos' \ + -- "$cur" ) ) + return + ;; + --topdir) + _filedir -d + return + ;; + --type) + case $command in + latest-pkg|list-tagged) + COMPREPLY=( $( compgen -W 'maven' -- "$cur" ) ) + ;; + esac + return + ;; + --name) + case $command in + list-targets) + _koji_target "$1" + ;; + esac + return + ;; + --owner) + _koji_user "$1" + return + ;; + --tag|--latestfrom) + _koji_tag "$1" + return + ;; + --package) + _koji_package "$1" + return + ;; + --build) + _koji_build "$1" + return + ;; + --build-target) + _koji_target "$1" + return + ;; + esac + + $split && return + + if [[ $command ]]; then + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W \ + '$( _parse_help "$1" "$command --help" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + + # How many'th non-option arg (1-based) for $command are we completing? + local i nth=1 + for (( i=commandix+1; i < cword; i++ )); do + [[ ${words[i]} == -* ]] || (( nth++ )) + done + + case $command in + build|maven-build|win-build) + case $nth in + 1) + _koji_target "$1" + ;; + 2) + _filedir src.rpm + ;; + esac + ;; + cancel) + _koji_build "$1" + ;; + chain-build) + case $nth in + 1) + _koji_target "$1" + ;; + esac + ;; + download-build) + case $nth in + 1) + _koji_build "$1" + ;; + esac + ;; + import-comps) + case $nth in + 1) + _filedir xml + ;; + 2) + _koji_tag "$1" + ;; + esac + ;; + latest-by-tag) + _koji_package "$1" + ;; + latest-pkg|list-groups|list-tag-inheritance|show-groups|wait-repo) + case $nth in + 1) + _koji_tag "$1" + ;; + esac + ;; + list-tagged) + case $nth in + 1) + _koji_tag "$1" + ;; + 2) + _koji_package "$1" + ;; + esac + ;; + list-untagged) + case $nth in + 1) + _koji_package "$1" + ;; + esac + ;; + move-pkg) + case $nth in + 1|2) + _koji_tag "$1" + ;; + *) + _koji_package "$1" + ;; + esac + ;; + search) + case $nth in + 1) + COMPREPLY=( $( compgen -W 'package build tag target + user host rpm' -- "$cur" ) ) + ;; + esac + ;; + tag-pkg|untag-pkg) + case $nth in + 1) + _koji_tag "$1" + ;; + *) + _koji_package "$1" + ;; + esac + ;; + taginfo) + _koji_tag "$1" + ;; + esac + return + fi + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + elif [[ ! $command ]]; then + COMPREPLY=( $( compgen -W '$( "$1" --help-commands 2>/dev/null | \ + awk "/^( +|\t)/ { print \$1 }" )' -- "$cur" ) ) + fi +} && +complete -F _koji koji arm-koji ppc-koji s390-koji sparc-koji + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/lintian b/completions/lintian index 65121151..8e470758 100644 --- a/completions/lintian +++ b/completions/lintian @@ -10,7 +10,7 @@ _lintian_tags() for item in $search; do match=$(grep -nE "^Tag: $item$" /usr/share/lintian/checks/*.desc \ | cut -d: -f1 ) - tags=$( echo $tags | sed -e "s/\<$item\>//g" ) + tags=$( sed -e "s/\<$item\>//g" <<<$tags ) done COMPREPLY+=( $(compgen -W "$tags") ) elif [[ "$cur" == *,* ]]; then @@ -35,7 +35,7 @@ _lintian_checks() todisable=$(grep -e ^Check-Script -e ^Abbrev $match | \ cut -d\ -f2 ) for name in $todisable; do - checks=$( echo $checks | sed -e "s/\<$name\>//g" ) + checks=$( sed -e "s/\<$name\>//g" <<<$checks ) done done COMPREPLY+=( $(compgen -W "$checks") ) @@ -58,7 +58,7 @@ _lintian_infos() for item in $search; do match=$( grep -nE "^Collector: $item$" \ /usr/share/lintian/collection/*.desc | cut -d: -f1 ) - infos=$( echo $infos | sed -e "s/\<$item\>//g" ) + infos=$( sed -e "s/\<$item\>//g" <<<$infos ) done COMPREPLY+=( $(compgen -W "$infos") ) elif [[ "$cur" == *,* ]]; then @@ -133,7 +133,6 @@ _lintian() # If we're here, the user is trying to complete on # --action tag,tag,<TAB> # Only few actions permit that, re-complete them now. - echo $prev case "$prev" in -C|--check-part|-X|--dont-check-part) _lintian_checks diff --git a/completions/lrzip b/completions/lrzip index da1730aa..d4106fb2 100644 --- a/completions/lrzip +++ b/completions/lrzip @@ -26,10 +26,6 @@ _lrzip() COMPREPLY=( $( compgen -W '{1..9}' -- "$cur" ) ) return 0 ;; - -T) - COMPREPLY=( $( compgen -W '{1..10}' -- "$cur" ) ) - return 0 - ;; -N) COMPREPLY=( $( compgen -W '{-20..19}' -- "$cur" ) ) return 0 diff --git a/completions/lzip b/completions/lzip new file mode 100644 index 00000000..9df55382 --- /dev/null +++ b/completions/lzip @@ -0,0 +1,44 @@ +# lzip(1) completion -*- shell-script -*- + +_lzip() +{ + local cur prev words cword split + _init_completion -s || return + + local decompress=false + + case $prev in + -h|--help|-V|--version|-b|--member-size|-m|--match-length|\ + -s|--dictionary-size|-S|--volume-size) + return + ;; + -d|--decompress) + decompress=true + ;; + -o|--output) + _filedir + return + ;; + esac + + $split && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) {-1..-9}' \ + -- "$cur" ) ) + return + fi + + if $decompress; then + _filedir lz + return + fi + + local IFS=$'\n' + compopt -o filenames + COMPREPLY=( $( compgen -f -X "*.lz" -- "$cur" ) \ + $( compgen -d -- "$cur" ) ) +} && +complete -F _lzip lzip + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/mutt b/completions/mutt index e840a4a9..acab9c86 100644 --- a/completions/mutt +++ b/completions/mutt @@ -57,7 +57,7 @@ _muttconffiles() sofar=" $1 " shift while [[ "$1" ]]; do - newconffiles=( $(sed -n 's|^source[[:space:]]\{1,\}\([^[:space:]]\{1,\}\).*$|\1|p' $(eval echo $1) ) ) + newconffiles=( $(sed -n 's|^source[[:space:]]\{1,\}\([^[:space:]]\{1,\}\).*$|\1|p' $(eval printf %s $1) ) ) for file in "${newconffiles[@]}"; do __expand_tilde_by_ref file [[ ! -f "$file" || $sofar == *\ $file\ * ]] && continue diff --git a/completions/nethogs b/completions/nethogs new file mode 100644 index 00000000..937edf1f --- /dev/null +++ b/completions/nethogs @@ -0,0 +1,25 @@ +# bash completion for nethogs(8) -*- shell-script -*- + +_nethogs() +{ + local cur prev words cword + _init_completion || return + + case "$prev" in + -d) + # expect integer value + COMPREPLY+=( $( compgen -W '{0..9}' ) ) + compopt -o nospace + return + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" -h )' -- "$cur" ) ) + return + fi + + _available_interfaces -a +} && complete -F _nethogs nethogs + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/perl b/completions/perl index a67c7699..8b296377 100644 --- a/completions/perl +++ b/completions/perl @@ -99,16 +99,22 @@ _perldoc() local perl="${1%doc}" [[ $perl == $1 ]] || ! type $perl &>/dev/null && perl= - # complete builtin perl functions case $prev in + -h|-V|-n|-o|-M|-w|-L) + return 0 + ;; + -d) + _filedir + return 0 + ;; -f) _perlfunctions $perl - return 0 + return 0 ;; esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-h -v -t -u -m -l -F -X -f -q' -- "$cur" )) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) else # return available modules (unless it is clearly a file) if [[ "$cur" != @(*/|[.~])* ]]; then diff --git a/completions/removepkg b/completions/removepkg index 2fb79869..287952cb 100644 --- a/completions/removepkg +++ b/completions/removepkg @@ -4,19 +4,18 @@ _removepkg() { local cur prev words cword _init_completion || return - if [[ $cur == -* ]]; then - COMPREPLY=( $( compgen -W '-copy -keep -preserve -warn' \ - -- "$cur" ) ) - return 0 + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-copy -keep -preserve -warn' -- "$cur" ) ) + return fi - if [[ $cur == */* ]]; then + if [[ "$cur" == */* ]]; then _filedir - return 0 + return fi local root=${ROOT:-/} - COMPREPLY=( $( cd "$root/var/log/packages" 2> /dev/null || return 1 ; \ + COMPREPLY=( $( cd "$root/var/log/packages" 2> /dev/null || return 1; \ compgen -f -- "$cur" ) ) } && complete -F _removepkg removepkg diff --git a/completions/rpm b/completions/rpm index 7a19d814..b7b59e0e 100644 --- a/completions/rpm +++ b/completions/rpm @@ -67,7 +67,7 @@ _rpm() fi case $prev in - --dbpath|--excludepath|--prefix|--relocate|--root) + --dbpath|--excludepath|--prefix|--relocate|--root|-r) _filedir -d return 0 ;; diff --git a/completions/rpm2tgz b/completions/rpm2tgz index 0b4510c7..34e54a5a 100644 --- a/completions/rpm2tgz +++ b/completions/rpm2tgz @@ -7,10 +7,10 @@ _rpm2tgz() if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-s -S -n -r -d -c' -- "$cur" ) ) - return 0 + return fi - COMPREPLY=( $(compgen -f -X "!*.rpm" -- "$cur") ) -} && complete -F _rpm2tgz -o plusdirs rpm2tgz rpm2txz rpm2targz + _filedir "rpm" +} && complete -F _rpm2tgz rpm2tgz rpm2txz rpm2targz # ex: ts=4 sw=4 et filetype=sh diff --git a/completions/sbopkg b/completions/sbopkg index d0bf9a2b..0c812faa 100644 --- a/completions/sbopkg +++ b/completions/sbopkg @@ -6,33 +6,33 @@ _sbopkg() _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-b -c -d -e -f -g -h -i -k -l \ - -o -P -p -q -R -r -s -u -V -v' -- "$cur" ) ) - return 0 + COMPREPLY=( $( compgen -W '-b -c -d -e -f -g -h -i -k -l -o + -P -p -q -R -r -s -u -V -v' -- "$cur" ) ) + return fi case "$prev" in -e) COMPREPLY=( $( compgen -W 'ask continue stop' -- "$cur" ) ) - return 0 + return ;; -f) _filedir - return 0 + return ;; -d) _filedir -d - return 0 + return ;; -V) COMPREPLY=( $( compgen -W "? \ - $(sbopkg -V ? 2>&1 | cut -s -f1)" -- "$cur" ) ) - return 0 + $( sbopkg -V ? 2>&1 | cut -s -f1 )" -- "$cur" ) ) + return ;; -i|-b) ;; *) - return 0 + return ;; esac @@ -45,8 +45,8 @@ _sbopkg() fi done - if [[ ! -r $config ]]; then - return 0 + if [[ ! -r "$config" ]]; then + return fi . $config @@ -64,7 +64,7 @@ _sbopkg() done if [[ ! -r $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ]]; then - return 0 + return fi COMPREPLY=( $( sed -ne "/^SLACKBUILD NAME: $cur/{s/^SLACKBUILD NAME: //;p}"\ $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ) diff --git a/completions/slackpkg b/completions/slackpkg index 9648d25a..b4223e71 100644 --- a/completions/slackpkg +++ b/completions/slackpkg @@ -17,34 +17,34 @@ _slackpkg() -delall|-checkmd5|-checkgpg|-checksize|-postinst|-onoff|-download_all|\ -dialog|-batch|-only_new_dotnew|-use_includes|-spinning) COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) - return 0 + return ;; -default_answer) COMPREPLY=( $( compgen -W 'yes no' -- "$cur" ) ) - return 0 + return ;; -dialog_maxargs|-mirror) # argument required but no completions available - return 0 + return ;; esac - $split && return 0 + $split && return if [[ "$cur" == -* ]]; then compopt -o nospace - COMPREPLY=( $( compgen -W '-delall= -checkmd5= -checkgpg= \ - -checksize= -postinst= -onoff= -download_all= -dialog= \ - -dialog_maxargs= -batch= -only_new_dotnew= -use_includes= \ + COMPREPLY=( $( compgen -W '-delall= -checkmd5= -checkgpg= + -checksize= -postinst= -onoff= -download_all= -dialog= + -dialog_maxargs= -batch= -only_new_dotnew= -use_includes= -spinning= -default_answer= -mirror=' -- "$cur" ) ) - return 0 + return fi local confdir="/etc/slackpkg" local config="$confdir/slackpkg.conf" - if [[ ! -r $config ]]; then - return 0 + if [[ ! -r "$config" ]]; then + return fi . "$config" @@ -59,7 +59,7 @@ _slackpkg() case "$action" in generate-template|search|file-search) # argument required but no completions available - return 0 + return ;; install-template|remove-template) if [[ -e $confdir/templates ]]; then @@ -67,39 +67,39 @@ _slackpkg() compgen -f -X "!*.template" -- "$cur" ) ) COMPREPLY=( ${COMPREPLY[@]%.template} ) fi - return 0 + return ;; remove) _filedir - COMPREPLY+=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x \ + COMPREPLY+=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x xap y' -- "$cur" ) ) COMPREPLY+=( $( cd /var/log/packages; compgen -f -- "$cur" ) ) - return 0 + return ;; install|reinstall|upgrade|blacklist|download) _filedir - COMPREPLY+=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x \ + COMPREPLY+=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x xap y' -- "$cur" ) ) - COMPREPLY+=( $( cut -f 6 -d\ ${WORKDIR}/pkglist 2> /dev/null | \ + COMPREPLY+=( $( cut -f 6 -d\ "${WORKDIR}/pkglist" 2> /dev/null | \ grep "^$cur" ) ) - return 0 + return ;; info) - COMPREPLY+=( $( cut -f 6 -d\ ${WORKDIR}/pkglist 2> /dev/null | \ + COMPREPLY=( $( cut -f 6 -d\ "${WORKDIR}/pkglist" 2> /dev/null | \ grep "^$cur" ) ) - return 0 + return ;; update) # we should complete the same as the next `list` + "gpg" COMPREPLY=( $( compgen -W 'gpg' -- "$cur" ) ) ;& *) - COMPREPLY+=( $( compgen -W 'install reinstall upgrade remove \ - blacklist download update install-new upgrade-all \ - clean-system new-config check-updates help generate-template \ + COMPREPLY+=( $( compgen -W 'install reinstall upgrade remove + blacklist download update install-new upgrade-all + clean-system new-config check-updates help generate-template install-template remove-template search file-search info' -- \ "$cur" ) ) - return 0 + return ;; esac diff --git a/completions/slapt-get b/completions/slapt-get index d18695cd..02f007ec 100644 --- a/completions/slapt-get +++ b/completions/slapt-get @@ -8,18 +8,18 @@ _slapt_get() case "$prev" in --config|-c) _filedir - return 0 + return ;; --retry|--search) # argument required but no completions available - return 0 + return ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace - [[ $COMPREPLY ]] && return 0 + [[ $COMPREPLY ]] && return fi local i t @@ -48,7 +48,7 @@ _slapt_get() break fi done - if [[ ! -r $config ]]; then + if [[ ! -r "$config" ]]; then return fi @@ -59,21 +59,21 @@ _slapt_get() local name=${cur%%-*} COMPREPLY=( $( slapt-get -c $config --search "^$name" 2>/dev/null |\ sed -ne "/^$cur/{s/ .*$//;p}" ) ) - return 0 + return ;; avl) # --install|-i| COMPREPLY=( $( slapt-get -c $config --available 2>/dev/null | \ - sed -ne "/^$cur/{s/ .*$//;p}") ) - return 0 + sed -ne "/^$cur/{s/ .*$//;p}" ) ) + return ;; ins) # --remove|--filelist COMPREPLY=( $( cd /var/log/packages; compgen -f -- "$cur" ) ) - return 0 + return ;; set) # --install-set - COMPREPLY=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x \ + COMPREPLY=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x xap y' -- "$cur" ) ) - return 0 + return ;; esac } && complete -F _slapt_get slapt-get diff --git a/completions/slapt-src b/completions/slapt-src index 64b196e7..6234eaa8 100644 --- a/completions/slapt-src +++ b/completions/slapt-src @@ -8,18 +8,18 @@ _slapt_src() case "$prev" in --config|-c) _filedir - return 0 + return ;; --search|-s|--postprocess|-p) # argument required but no completions available - return 0 + return ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace - [[ $COMPREPLY ]] && return 0 + [[ $COMPREPLY ]] && return fi local i t @@ -31,7 +31,7 @@ _slapt_src() fi done if [[ $t != all ]]; then - return 0 + return fi local config="/etc/slapt-get/slapt-srcrc" # default config location @@ -42,18 +42,18 @@ _slapt_src() break fi done - if [[ ! -r $config ]]; then - return 0 + if [[ ! -r "$config" ]]; then + return fi if [[ "$cur" == *:* ]]; then local name=${cur%:*} local version=${cur##*:} - COMPREPLY=( $( slapt-src --config $config --search "^$name" 2> \ + COMPREPLY=( $( slapt-src --config "$config" --search "^$name" 2> \ /dev/null | sed -ne "/^$cur/{s/^$name:\([^ ]*\) .*$/\1/;p}" ) ) else - COMPREPLY=( $( slapt-src --config $config --search "^$cur" 2>/dev/null \ - | sed -ne "/^$cur/{s/ .*$//;p}" ) ) + COMPREPLY=( $( slapt-src --config "$config" --search "^$cur" 2> \ + /dev/null | sed -ne "/^$cur/{s/ .*$//;p}" ) ) fi } && complete -F _slapt_src slapt-src diff --git a/completions/sqlite3 b/completions/sqlite3 index 1207823d..e97c2e9e 100644 --- a/completions/sqlite3 +++ b/completions/sqlite3 @@ -18,9 +18,7 @@ _sqlite3() esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-help -init -echo -header -noheader -bail - -interactive -batch -column -csv -html -line -list -separator - -nullvalue -version' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) ) return 0 fi diff --git a/completions/upgradepkg b/completions/upgradepkg index 59a27ca5..f9fa23ab 100644 --- a/completions/upgradepkg +++ b/completions/upgradepkg @@ -6,9 +6,9 @@ _upgradepkg() _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--dry-run --install-new --reinstall \ - --verbose' -- "$cur") ) - return 0 + COMPREPLY=( $( compgen -W '--dry-run --install-new --reinstall + --verbose' -- "$cur" ) ) + return fi if [[ "$cur" == ?*%* ]]; then @@ -20,7 +20,7 @@ _upgradepkg() [[ $COMPREPLY ]] || nofiles=1 COMPREPLY+=( $( compgen -P "$prev%" -S '/' -d -- "$cur" ) ) [[ $nofiles ]] && compopt -o nospace - return 0 + return fi _filedir "t[bglx]z" diff --git a/completions/valgrind b/completions/valgrind new file mode 100644 index 00000000..1930c21b --- /dev/null +++ b/completions/valgrind @@ -0,0 +1,104 @@ +# valgrind(1) completion -*- shell-script -*- + +_valgrind() +{ + local cur prev words cword split + _init_completion -s || return + + local i + # Note: intentionally using COMP_WORDS and COMP_CWORD instead of + # words and cword here due to splitting on = causing index differences + # (_command_offset assumes the former). + for (( i=1; i <= COMP_CWORD; i++ )); do + if [[ ${COMP_WORDS[i]} != @([-=])* && ${COMP_WORDS[i-1]} != = ]]; then + _command_offset $i + return + fi + done + + local tool + for (( i=1; i < ${#words[@]}; i++ )); do + if [[ ${words[i]} == --tool=?* ]]; then + tool=${words[i]} + break + fi + done + + case $prev in + -h|--help|--help-debug|--version) + return + ;; + --tool) + # Tools seem to be named e.g. like memcheck-amd64-linux from which + # we want to grab memcheck. + COMPREPLY=( $( compgen -W '$( + for f in /usr{,/local}/lib{,64}/valgrind/*; do + [[ $f != *.so && -x $f ]] && + sed -ne "s/^.*\/\(.*\)-\([^-]*\)-\([^-]*\)/\1/p" <<<$f + done )' -- "$cur" ) ) + return + ;; + --sim-hints) + COMPREPLY=( $( compgen -W 'lax-ioctls enable-outer' -- "$cur" ) ) + return + ;; + --kernel-variant) + COMPREPLY=( $( compgen -W 'bproc' -- "$cur" ) ) + return + ;; + # callgrind: + --callgrind-out-file) + _filedir + return + ;; + # exp-dhat: + --sort-by) + COMPREPLY=( $( compgen -W 'max-bytes-live tot-bytes-allocd + max-blocks-live' -- "$cur" ) ) + return + ;; + # massif: + --time-unit) + COMPREPLY=( $( compgen -W 'i ms B' -- "$cur" ) ) + return + ;; + # generic cases parsed from --help output + --+([-A-Za-z0-9_])) + local value=$( $1 --help-debug $tool 2>/dev/null | \ + sed -ne "s|^[$' \t']*$prev=\([^$' \t']\{1,\}\).*|\1|p" ) + case $value in + \<file*\>) + _filedir + return + ;; + \<command\>) + COMPREPLY=( $( compgen -c -- "$cur" ) ) + return + ;; + \<+([0-9])..+([0-9])\>) + COMPREPLY=( $( compgen -W "{${value:1:((${#value}-2))}}" \ + -- "$cur" ) ) + return + ;; + # "yes", "yes|no", etc (but not "string", "STR", + # "hint1,hint2,...") + yes|+([-a-z0-9])\|+([-a-z0-9\|])) + COMPREPLY=( $( IFS='|' compgen -W '$value' -- "$cur" ) ) + return + ;; + esac + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" "--help $tool" )' \ + -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi +} && +complete -F _valgrind valgrind + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/wine b/completions/wine index 58e4cf46..c02c97f0 100644 --- a/completions/wine +++ b/completions/wine @@ -5,9 +5,9 @@ _wine() local cur prev words cword _init_completion || return - if [[ "$cword" -eq 1 ]]; then + if [[ $cword -eq 1 ]]; then if [[ "$cur" == -* ]]; then - COMPREPLY=( $(compgen -W '--help --version' -- "$cur") ) + COMPREPLY=( $( compgen -W '--help --version' -- "$cur" ) ) [[ $COMPREPLY ]] && return fi _filedir '[eE][xX][eE]?(.[sS][oO])|[cC][oO][mM]|[sS][cC][rR]' diff --git a/completions/xgamma b/completions/xgamma index 4c434cfe..c5b8a76b 100644 --- a/completions/xgamma +++ b/completions/xgamma @@ -7,9 +7,9 @@ _xgamma() case "$prev" in -screen) - local screens=$(xrandr --query 2>/dev/null | \ - sed -n '/^Screen /s|^Screen \{1,\}\(.*\):.*$|\1|p' 2>/dev/null) - COMPREPLY=( $(compgen -W "$screens" -- "$cur")) + local screens=$( xrandr --query 2>/dev/null | sed -n \ + '/^Screen /s|^Screen \{1,\}\(.*\):.*$|\1|p' 2>/dev/null ) + COMPREPLY=( $( compgen -W "$screens" -- "$cur" ) ) return ;; -gamma|-rgamma|-ggamma|-bgamma) @@ -17,7 +17,7 @@ _xgamma() if [[ $cur && "$cur" != *.* ]]; then COMPREPLY=( . ) fi - COMPREPLY+=( $(compgen -W "{0..9}") ) + COMPREPLY+=( $( compgen -W "{0..9}" ) ) compopt -o nospace return ;; @@ -26,14 +26,15 @@ _xgamma() if [[ "$cur" == :* && "$cur" != :*.* ]]; then # FIXME: where to get local display numbers? local display=${cur#:} - COMPREPLY=( $(compgen -W "${display:-0}.") ) + COMPREPLY=( $( compgen -W "${display:-0}." ) ) compopt -o nospace elif [[ "$cur" == :*.* ]]; then # local screen numbers - local t screens=$(xrandr --query 2>/dev/null | sed -n \ - -e '/^Screen /s|^Screen \{1,\}\(.*\):.*$|\1|p' 2>/dev/null) + local t screens=$( xrandr --query 2>/dev/null | sed -ne \ + '/^Screen /s|^Screen \{1,\}\(.*\):.*$|\1|p' 2>/dev/null ) t="${cur#:}" - COMPREPLY=( $(compgen -P "${t%.*}." -W "$screens" -- "${cur##*.}")) + COMPREPLY=( $( compgen -P "${t%.*}." -W "$screens" -- \ + "${cur##*.}" ) ) elif [[ "$cur" != *:* ]]; then # complete hostnames _known_hosts_real -c "$cur" diff --git a/completions/xhost b/completions/xhost index 397ca9ce..22839e4f 100644 --- a/completions/xhost +++ b/completions/xhost @@ -10,8 +10,6 @@ _xhost () -*) _known_hosts_real -p- "${cur:1}" ;; *) _known_hosts_real "$cur" ;; esac - - return 0 } && complete -F _xhost xhost diff --git a/completions/xrandr b/completions/xrandr index 36164298..332be812 100644 --- a/completions/xrandr +++ b/completions/xrandr @@ -7,52 +7,50 @@ _xrandr() local output modes - case $prev in + case "$prev" in --output|--left-of|--right-of|--above|--below|--same-as) - local outputs=$(xrandr|awk '/connected/ {print $1}') - COMPREPLY=( $(compgen -W "$outputs" -- "$cur")) - return 0 + local outputs=$( xrandr | awk '/connected/ {print $1}' ) + COMPREPLY=( $( compgen -W "$outputs" -- "$cur" ) ) + return ;; --mode) for(( i = 1; i < cword; i++ )); do - if [[ "${words[i]}" == "--output" ]]; then + if [[ "${words[i]}" == --output ]]; then output=${words[i+1]} break fi done - modes=$(xrandr|sed -e "1,/$output/ d" \ - -e "/connected/,$ d"|awk '{print $1}') - COMPREPLY=( $( compgen -W "$modes" -- "$cur")) - return 0 + modes=$( xrandr | sed -e "1,/$output/ d" \ + -e "/connected/,$ d" | awk '{print $1}' ) + COMPREPLY=( $( compgen -W "$modes" -- "$cur" ) ) + return ;; -o|--orientation) COMPREPLY=( $( compgen -W 'normal inverted left right 0 1 2 3' -- \ "$cur" ) ) - return 0 + return ;; --reflect) - COMPREPLY=( $( compgen -W 'normal x y xy' -- \ - "$cur" ) ) - return 0 + COMPREPLY=( $( compgen -W 'normal x y xy' -- "$cur" ) ) + return ;; --rotate) - COMPREPLY=( $( compgen -W 'normal inverted left right' -- \ - "$cur" ) ) - return 0 + COMPREPLY=( $( compgen -W 'normal inverted left right' -- "$cur" ) ) + return ;; esac case $cur in *) - COMPREPLY=( $(compgen -W '-display -help --orientation --query \ - --size --rate --version -x -y --screen --verbose --dryrun \ - --q1 --q12 --nograb --prop --properties --fb --fbmm --dpi \ - --output --auto --mode --preferred --pos --rate --refresh \ - --reflect --rotate --left-of --right-of --above --below \ - --same-as --set --scale --transform --off --crtc --panning \ - --gamma --brightness --primary --noprimary --newmode --rmmode \ - --addmode --delmode' -- "$cur") ) - return 0 + COMPREPLY=( $( compgen -W '-display -help --orientation --query + --size --rate --version -x -y --screen --verbose --dryrun + --q1 --q12 --nograb --prop --properties --fb --fbmm --dpi + --output --auto --mode --preferred --pos --rate --refresh + --reflect --rotate --left-of --right-of --above --below + --same-as --set --scale --transform --off --crtc --panning + --gamma --brightness --primary --noprimary --newmode --rmmode + --addmode --delmode' -- "$cur" ) ) + return ;; esac } && |