From 976ba448251af67514af323be80fa938ffbe699d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Mon, 25 Apr 2011 15:51:33 +0300 Subject: [PATCH] Complete screen on commands (Alioth: #312164, RedHat: #547852). --- completions/screen | 18 +++++++++++++++++- test/lib/completions/screen.exp | 8 ++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/completions/screen b/completions/screen index f66f17f9..e370c8ea 100644 --- a/completions/screen +++ b/completions/screen @@ -22,6 +22,22 @@ _screen() esac fi + local i + for (( i=1; i <= cword; i++ )); do + case ${words[i]} in + -r|-R|-d|-D|-x|-s|-c|-T|-e|-h|-p|-S|-t) + (( i++ )) + continue + ;; + -*) + continue + ;; + esac + + _command_offset $i + return + done + case $prev in -[rR]) # list detached @@ -61,7 +77,7 @@ _screen() --version' -- "$cur" ) ) fi } && -complete -F _screen -o default screen +complete -F _screen screen # Local variables: # mode: shell-script diff --git a/test/lib/completions/screen.exp b/test/lib/completions/screen.exp index e5bc4c15..5e585179 100644 --- a/test/lib/completions/screen.exp +++ b/test/lib/completions/screen.exp @@ -12,15 +12,19 @@ setup assert_complete_any "screen -" - - sync_after_int assert_complete {bar "bar bar.d/" foo foo.d/} \ "screen -c $::srcdir/fixtures/shared/default/" "-c should complete files/dirs" +sync_after_int +assert_complete_any "screen cat" +sync_after_int + + +assert_complete_any "screen -T foo cat" sync_after_int