diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Completion/Unix/Command/_screen | 14 |
2 files changed, 17 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 0b6f3c6e7..5256d866a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ * Valentin Haenel: 29019, Completion/Unix/Command/_git: Fix git stash completion (apply and pop subcommands). + * 29027: Completion/Unix/Command/_screen: support "/dev/ttyUSB0 + [baud]"-style arguments. + 2011-04-19 Peter Stephenson <pws@csr.com> * unposted: Completion/X/Command/.distfiles, Config/version.mk: @@ -14490,5 +14493,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.5255 $ +* $Revision: 1.5256 $ ***************************************************** diff --git a/Completion/Unix/Command/_screen b/Completion/Unix/Command/_screen index 4d3b08934..931946c78 100644 --- a/Completion/Unix/Command/_screen +++ b/Completion/Unix/Command/_screen @@ -3,6 +3,18 @@ local curcontext="$curcontext" state line expl local scr_cmds sessions +function __screen_normal() { + if (( CURRENT == 1 )) && [[ $PREFIX == /dev/* ]]; then + _path_files -g '*(%)' + elif (( CURRENT == 2 )) && [[ ${words[1]} == /dev/* ]]; then + _message "baud rate" + elif (( CURRENT > 2 )) && [[ ${words[1]} == /dev/* ]]; then + _message "no more parameters" + else + _normal "$@" + fi +} + scr_cmds=( acladd aclchg acldel aclgrp aclumask activity addacl allpartial @@ -91,7 +103,7 @@ _arguments -C \ '-Dx: :->any-sessions' \ '-dx: :->any-sessions' \ '-X[execute command as a screen command in the specified session]:screencmd:(${scr_cmds[@]})' \ - '*::arguments: _normal' + '*::arguments: __screen_normal' if [[ -n $state ]]; then case $state in |