mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-30 05:40:58 +01:00
Tomasz Pala <gotar@polanet.pl>: users/12884:
new completions for iftop and tcpdump
This commit is contained in:
parent
c467938310
commit
6c6ce048e7
6 changed files with 157 additions and 11 deletions
|
|
@ -1,6 +1,6 @@
|
|||
local line name=${tcp_by_fd[$1]}
|
||||
local line fd=$1 sess=${tcp_by_fd[$1]}
|
||||
local TCP_HANDLER_ACTIVE=1
|
||||
if [[ -n $name ]]
|
||||
if [[ -n $sess ]]
|
||||
then
|
||||
local TCP_INVALIDATE_ZLE
|
||||
if (( $# > 2 )); then
|
||||
|
|
@ -10,10 +10,14 @@ then
|
|||
else
|
||||
TCP_INVALIDATE_ZLE=1
|
||||
fi
|
||||
if ! tcp_read -d -u $1; then
|
||||
if ! tcp_read -d -u $fd; then
|
||||
if (( ${+functions[tcp_on_awol]} )); then
|
||||
tcp_on_awol $sess $fd
|
||||
(( $? == 100 )) || return $?
|
||||
fi
|
||||
[[ -n $TCP_INVALIDATE_ZLE ]] && zle -I
|
||||
print "[TCP fd $1 (session $name) gone awol; removing from poll list]" >& 2
|
||||
zle -F $1
|
||||
print "[TCP fd $fd (session $sess) gone awol; removing from poll list]" >& 2
|
||||
zle -F $fd
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
|
|
@ -21,16 +25,16 @@ else
|
|||
zle -I
|
||||
# Handle fds not in the TCP set similarly.
|
||||
# This does the drain thing, to try and get as much data out as possible.
|
||||
if ! read -u $1 line; then
|
||||
print "[Reading on $1 failed; removing from poll list]" >& 2
|
||||
zle -F $1
|
||||
if ! read -u $fd line; then
|
||||
print "[Reading on $fd failed; removing from poll list]" >& 2
|
||||
zle -F $fd
|
||||
return 1
|
||||
fi
|
||||
line="fd$1:$line"
|
||||
line="fd$fd:$line"
|
||||
local newline
|
||||
while read -u $1 -t newline; do
|
||||
while read -u $fd -t newline; do
|
||||
line="${line}
|
||||
fd$1:$newline"
|
||||
fd$fd:$newline"
|
||||
done
|
||||
fi
|
||||
print -r - $line
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue