From 901e6c7387bd0145ce26356eda1573d20293a57a Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 8 Aug 2006 11:27:39 +0000 Subject: 22592: add tcp_send -c option for cat --- Functions/TCP/tcp_send | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'Functions/TCP') diff --git a/Functions/TCP/tcp_send b/Functions/TCP/tcp_send index c6d8ad637..d5edf05bd 100644 --- a/Functions/TCP/tcp_send +++ b/Functions/TCP/tcp_send @@ -1,14 +1,16 @@ emulate -L zsh setopt extendedglob cbases -local opt quiet all sess fd nonewline +local opt quiet all sess fd nonewline cat line local -a sessions write_fds integer mystat -while getopts "al:nqs:" opt; do +while getopts "acl:nqs:" opt; do case $opt in (a) all=1 ;; + (c) cat=1 + ;; (n) nonewline=-n ;; (q) quiet=1 @@ -55,21 +57,29 @@ trap 'TCP_FD_CLOSED=1' PIPE local TCP_SESS -for TCP_SESS in $sessions; do +while true; do + if [[ -n $cat ]]; then + read -r line || break + else + line="$*" + fi + for TCP_SESS in $sessions; do fd=${tcp_by_name[$TCP_SESS]} if [[ -z $fd ]]; then - print "No such session: $TCP_SESS" >&2 - mystat=1 - continue + print "No such session: $TCP_SESS" >&2 + mystat=1 + continue fi - print -u $fd $nonewline -r -- $* + print -u $fd $nonewline -r -- $line if [[ $? -ne 0 || -n $TCP_FD_CLOSED ]]; then - print "Session ${TCP_SESS}: fd $fd unusable." >&2 - unset TCP_FD_CLOSED + print "Session ${TCP_SESS}: fd $fd unusable." >&2 + unset TCP_FD_CLOSED fi if [[ -n $TCP_OUTPUT ]]; then - tcp_output -P "$TCP_OUTPUT" -S $TCP_SESS -F $fd -q "${(j. .)*}" + tcp_output -P "$TCP_OUTPUT" -S $TCP_SESS -F $fd -q "${(j. .)*}" fi + done + [[ -z $cat ]] && break done return $mystat -- cgit 1.4.1