From 218a7e324dc52e5b9f2e724c1463fb0643a6036f Mon Sep 17 00:00:00 2001 From: Jun-ichi Takimoto Date: Thu, 19 Jul 2018 17:26:11 +0900 Subject: 43183: fix '_ttys -o' and use it in _gdb/_pgrep --- ChangeLog | 4 ++++ Completion/Unix/Command/_gdb | 4 ++-- Completion/Unix/Command/_pgrep | 2 +- Completion/Unix/Type/_ttys | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index d068f5e35..8a37503ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,10 @@ * 43189: Completion/Unix/Command/_install: similar fix as 43187 for option -f (_flags was renamed to _file_flags) + * 43183: Completion/Unix/Type/_ttys, Completion/Unix/Command/_gdb, + Completion/Unix/Command/_pgrep: fix '_ttys -o' on Linux, and use + it in _gdb and _pgrep. + 2018-07-19 Yasuhiro KIMURA * 43187: Completion/Unix/Command/_install: Fix completion error diff --git a/Completion/Unix/Command/_gdb b/Completion/Unix/Command/_gdb index 510e6f1fa..18f797633 100644 --- a/Completion/Unix/Command/_gdb +++ b/Completion/Unix/Command/_gdb @@ -5,12 +5,12 @@ local cur="$words[CURRENT]" prev w list ret=1 expl [[ "$PREFIX" = --* ]] && _arguments -- '*=(CORE|SYM)FILE:core file:_files' \ '*=EXECFILE:executable:_files -g \*\(-\*\)' \ - '*=TTY:terminal device:_ttys' && return 0 + '*=TTY: :_ttys -o' && return 0 if compset -P '-(cd|directory)='; then _files -/ elif compset -P '-tty='; then - _wanted devices expl 'terminal device' _ttys + _ttys -o elif compset -P '-(exec|se)='; then _description files expl executable _files "$expl[@]" -g '*(-*)' diff --git a/Completion/Unix/Command/_pgrep b/Completion/Unix/Command/_pgrep index b6020e5a9..86aef3462 100644 --- a/Completion/Unix/Command/_pgrep +++ b/Completion/Unix/Command/_pgrep @@ -40,7 +40,7 @@ arguments=( # _signals is OK here — we do it differently below '(ss)--signal=[specify signal to send to process]: :_signals -s' '-T+[match only on specified routing table]:routing table' - '(-t --terminal)'{-t+,--terminal=}'[match only on specified controlling terminals]:terminal device:_sequence _ttys -d' + '(-t --terminal)'{-t+,--terminal=}'[match only on specified controlling terminals]: :_sequence _ttys -do' '(-U --uid)'{-U+,--uid=}'[match only on specified real user IDs]: :_sequence _users' '(-u --euid)'{-u+,--euid=}'[match only on specified effective user IDs]: :_sequence _users' '(-v --inverse)'{-v,--inverse}'[negate matching]' diff --git a/Completion/Unix/Type/_ttys b/Completion/Unix/Type/_ttys index 7408395c8..3c40466cb 100644 --- a/Completion/Unix/Type/_ttys +++ b/Completion/Unix/Type/_ttys @@ -12,7 +12,7 @@ local stripdev optdev open zparseopts -D -K -E d=stripdev D=optdev o=open if [[ -n $open ]]; then - ttys=( ${(u)${(f)"$(_call_program open-ttys ps -ao tty=)"}%% *} ) + ttys=( ${(u)${${(f)"$(_call_program open-ttys ps -Ao tty=)"}:#\?*}%% *} ) _description open-ttys expl 'open tty' else ttys=( /dev/tty?*(N) /dev/pts/^ptmx(N) ) -- cgit 1.4.1