mirror of
https://github.com/zsh-users/zsh
synced 2024-09-30 05:06:09 +00:00
43107: add an option to _ttys to complete only open ttys
Use the option in _ps and _watch-snoop
This commit is contained in:
parent
d4022e76c1
commit
bad4729281
|
@ -1,3 +1,9 @@
|
|||
2018-07-01 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
|
||||
|
||||
* 43107: Completion/Unix/Type/_ttys, Completion/Unix/Command/_ps,
|
||||
Completion/BSD/Command/_watch-snoop: add an option to _ttys to
|
||||
complete only open ttys, and use it in _ps and _watch-snoop.
|
||||
|
||||
2018-06-29 Peter Stephenson <p.stephenson@samsung.com>
|
||||
|
||||
* users/23519: README, Completion/Unix/Type/_remote_files: Use tag
|
||||
|
|
|
@ -10,4 +10,4 @@ _arguments -w -S -s : \
|
|||
"-o[reconnect on overflow]" \
|
||||
"-t[print date and time at start]" \
|
||||
"-W[allow write access to observed tty]" \
|
||||
":tty device:_ttys -D"
|
||||
"(-): : _ttys -Do"
|
||||
|
|
|
@ -31,7 +31,7 @@ args=(
|
|||
'*-G+[select processes by real group]:group:_sequence -s , _groups'
|
||||
'*-g+[select processes by effective group or session]:group:_sequence -s , _groups'
|
||||
'*-s+[select processes by session leaders]:session leader:_sequence -s , _pids'
|
||||
'*-t+[select processes by attached terminal]:tty:_sequence -s , _ttys -D'
|
||||
'*-t+[select processes by attached terminal]:tty:_sequence -s , _ttys -Do'
|
||||
'*-u+[select processes by effective user]:user:_sequence -s , _users'
|
||||
'*-U+[select processes by real user]:user:_sequence -s , _users'
|
||||
'-o+[specify output format]:property:_sequence -s , _ps_props -'
|
||||
|
@ -211,7 +211,7 @@ if (( CURRENT > 1 )) && [[ $OSTYPE != (solaris*|linux-gnu) ||
|
|||
*J) _sequence _jails -0 && return ;;
|
||||
*[MNW]) _files && return ;;
|
||||
*t)
|
||||
_wanted -C option-t-1 ttys expl tty _sequence -s , _ttys -D && return
|
||||
_wanted -C option-t-1 ttys expl tty _sequence -s , _ttys -Do && return
|
||||
;;
|
||||
*[pq]) _wanted -C "option-${words[CURRENT-1][-1]}-1" processes \
|
||||
expl 'process ID' _sequence -s , _pids && return ;;
|
||||
|
|
|
@ -4,16 +4,22 @@
|
|||
#
|
||||
# -d strip /dev/ prefix from matches
|
||||
# -D matches allowed with or without /dev/ prefix
|
||||
# -o only complete those ttys to which processes are attached
|
||||
|
||||
local -a ttys expl pre
|
||||
local stripdev optdev
|
||||
local stripdev optdev open
|
||||
|
||||
zparseopts -D -K -E d=stripdev D=optdev
|
||||
zparseopts -D -K -E d=stripdev D=optdev o=open
|
||||
|
||||
ttys=( /dev/tty?*(N) /dev/pts/^ptmx(N) )
|
||||
ttys=( ${ttys#/dev/} )
|
||||
if [[ -n $open ]]; then
|
||||
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) )
|
||||
ttys=( ${ttys#/dev/} )
|
||||
_description ttys expl 'tty'
|
||||
fi
|
||||
[[ -z $stripdev ]] && pre=( -p /dev/ )
|
||||
|
||||
_description ttys expl 'tty'
|
||||
[[ -n $optdev ]] && compadd "$@" "$expl[@]" -M 'r:|/=* r:|=*' -a ttys && return
|
||||
compadd "$@" "$expl[@]" "$pre[@]" -M 'r:|/=* r:|=*' -a ttys
|
||||
|
|
Loading…
Reference in a new issue