summaryrefslogtreecommitdiff
path: root/completions/screen
diff options
context:
space:
mode:
Diffstat (limited to 'completions/screen')
-rw-r--r--completions/screen177
1 files changed, 90 insertions, 87 deletions
diff --git a/completions/screen b/completions/screen
index 17642863..651ca2c9 100644
--- a/completions/screen
+++ b/completions/screen
@@ -2,11 +2,11 @@
_screen_sessions()
{
- local sessions=( $(command screen -ls | command sed -ne \
- 's|^\t\{1,\}\([0-9]\{1,\}\.[^\t]\{1,\}\).*'"$1"'.*$|\1|p') )
+ local sessions=($(command screen -ls | command sed -ne \
+ 's|^\t\{1,\}\([0-9]\{1,\}\.[^\t]\{1,\}\).*'"$1"'.*$|\1|p'))
if [[ $cur == +([0-9])?(.*) ]]; then
# Complete sessions including pid prefixes
- COMPREPLY=( $(compgen -W '${sessions[@]}' -- "$cur") )
+ COMPREPLY=($(compgen -W '${sessions[@]}' -- "$cur"))
else
# Create unique completions, dropping pids where possible
local -A res
@@ -15,106 +15,109 @@ _screen_sessions()
res[${i/#+([0-9])./}]+=" $i"
done
for i in "${!res[@]}"; do
- [[ ${res[$i]} == \ *\ * ]] && tmp+=" ${res[$i]}" || tmp+=" $i"
+ [[ ${res[i]} == \ *\ * ]] && tmp+=" ${res[i]}" || tmp+=" $i"
done
- COMPREPLY=( $(compgen -W '$tmp' -- "$cur") )
+ COMPREPLY=($(compgen -W '$tmp' -- "$cur"))
fi
} &&
-_screen()
-{
- local cur prev words cword
- _init_completion || return
+ _screen()
+ {
+ local cur prev words cword
+ _init_completion || return
- if ((cword == 1)); then
- if [[ $cur == /dev* ]]; then
- COMPREPLY=( $(compgen -W "$(shopt -s nullglob; printf '%s\n' \
- /dev/serial/by-id/* /dev/ttyUSB* /dev/ttyACM* 2>/dev/null)" \
- -- "$cur") )
- return
+ if ((cword == 1)); then
+ if [[ $cur == /dev* ]]; then
+ COMPREPLY=($(compgen -W "$(
+ shopt -s nullglob
+ printf '%s\n' \
+ /dev/serial/by-id/* /dev/ttyUSB* /dev/ttyACM* 2>/dev/null
+ )" \
+ -- "$cur"))
+ return
+ fi
+ if [[ $cur == //* ]]; then
+ COMPREPLY=($(compgen -W '//telnet' -- "$cur"))
+ return
+ fi
fi
- if [[ $cur == //* ]]; then
- COMPREPLY=( $(compgen -W '//telnet' -- "$cur") )
- return
+
+ case ${words[1]} in
+ /dev*)
+ if ((cword == 2)); then
+ COMPREPLY=($(compgen -W '110 300 600 1200 2400 4800 9600 \
+ 14400 19200 38400 57600 115200 128000 256000' -- "$cur"))
+ # TODO more, comma separated options
+ fi
+ return
+ ;;
+ //telnet)
+ ((cword == 2)) && _known_hosts_real -- "$cur"
+ return
+ ;;
+ esac
+
+ if ((cword > 2)); then
+ case ${words[cword - 2]} in
+ -*[dD])
+ _screen_sessions
+ return
+ ;;
+ esac
fi
- fi
- case ${words[1]} in
- /dev*)
- if ((cword == 2)); then
- COMPREPLY=( $(compgen -W '110 300 600 1200 2400 4800 9600 \
- 14400 19200 38400 57600 115200 128000 256000' -- "$cur") )
- # TODO more, comma separated options
- fi
- return
- ;;
- //telnet)
- ((cword == 2)) && _known_hosts_real -- "$cur"
+ local i
+ for ((i = 1; i <= cword; i++)); do
+ case ${words[i]} in
+ -*[rRdDxscTehpSt])
+ ((i++))
+ continue
+ ;;
+ -*)
+ continue
+ ;;
+ esac
+
+ _command_offset $i
return
- ;;
- esac
+ done
- if ((cword > 2)); then
- case ${words[cword-2]} in
+ case $prev in
+ -*[rR])
+ # list detached
+ _screen_sessions 'Detached'
+ return
+ ;;
-*[dD])
+ # list attached
+ _screen_sessions 'Attached'
+ return
+ ;;
+ -*x)
+ # list both
_screen_sessions
return
;;
- esac
- fi
-
- local i
- for (( i=1; i <= cword; i++ )); do
- case ${words[i]} in
- -*[rRdDxscTehpSt])
- (( i++ ))
- continue
+ -*s)
+ _shells
+ return
;;
- -*)
- continue
+ -*c)
+ _filedir
+ return
+ ;;
+ -T)
+ _terms
+ return
+ ;;
+ -*[ehpSt])
+ return
;;
esac
- _command_offset $i
- return
- done
-
- case $prev in
- -*[rR])
- # list detached
- _screen_sessions 'Detached'
- return
- ;;
- -*[dD])
- # list attached
- _screen_sessions 'Attached'
- return
- ;;
- -*x)
- # list both
- _screen_sessions
- return
- ;;
- -*s)
- _shells
- return
- ;;
- -*c)
- _filedir
- return
- ;;
- -T)
- _terms
- return
- ;;
- -*[ehpSt])
- return
- ;;
- esac
-
- if [[ "$cur" == -* ]]; then
- COMPREPLY=( $(compgen -W '$(_parse_help "$1")' -- "$cur") )
- fi
-} &&
-complete -F _screen screen
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
+ fi
+ } &&
+ complete -F _screen screen
# ex: filetype=sh