|
Server : Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4 System : Linux server.jackjohnson.com 2.6.32-279.5.2.el6.x86_64 #1 SMP Fri Aug 24 01:07:11 UTC 2012 x86_64 User : jackjohn ( 502) PHP Version : 5.3.17 Disable Function : NONE Directory : /usr/share/zsh/4.3.10/functions/ |
Upload File : |
emulate -L zsh
setopt extendedglob
local opt tprompt sess read_fd tpat quiet cursess
while getopts "F:P:qS:" opt; do
case $opt in
(F) read_fd=$OPTARG
;;
(P) tprompt=$OPTARG
;;
(q) quiet=1
;;
(S) sess=$OPTARG
;;
(*) [[ $opt != \? ]] && print -r "Can't handle option $opt" >&2
return 1
;;
esac
done
(( OPTIND > 1 )) && shift $(( OPTIND - 1 ))
# Per-session logs don't have the session discriminator in front.
if [[ -n $TCP_LOG_SESS ]]; then
print -r -- "$*" >>${TCP_LOG_SESS}.$sess
fi
# Always add the TCP prompt. We used only to do this with
# multiple sessions, but it seems always to be useful to know
# where data is coming from; also, it allows more predictable
# behaviour in tcp_expect.
if [[ -n $tprompt ]]; then
if [[ $sess = $TCP_SESS ]]; then
cursess="c:1"
else
cursess="c:0"
fi
zformat -f REPLY $tprompt "s:$sess" "f:$read_fd" $cursess
# We will pass this back up.
REPLY="$REPLY$*"
else
REPLY="$*"
fi
if [[ -n $TCP_LOG ]]; then
print -r -- $REPLY >>${TCP_LOG}
fi
if [[ -z $quiet ]]; then
local skip=
if [[ ${#tcp_filter} -ne 0 ]]; then
# Allow tcp_filter to be an associative array, though
# it doesn't *need* to be.
for tpat in ${(v)tcp_filter}; do
[[ $REPLY = ${~tpat} ]] && skip=1 && break
done
fi
if [[ -z $skip ]]; then
# Check flag passed down probably from tcp_fd_handler:
# if we have output, we are in zle and need to fix the display first.
# (The shell is supposed to be smart enough that you can replace
# all the following with
# [[ -o zle ]] && zle -I
# but I haven't dared try it yet.)
if [[ -n $TCP_INVALIDATE_ZLE ]]; then
zle -I
# Only do this the first time.
unset TCP_INVALIDATE_ZLE
fi
print -r -- $REPLY
fi
fi