From fce0daebb803bf903daf861c236b9d5f80774609 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Wed, 31 Jul 2024 23:10:42 -0400 Subject: fix everything --- twopane.bash | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'twopane.bash') diff --git a/twopane.bash b/twopane.bash index 5ba1264..876fc50 100644 --- a/twopane.bash +++ b/twopane.bash @@ -33,14 +33,14 @@ layout new split focus bottom resize $BOT_SIZE -screen -ln -t "$BOT_TITLE" 0 bash --noprofile --rcfile "$TWOPANE"/bashrc -x -i +screen -ln -t "$BOT_TITLE" 0 bash --noprofile --rcfile "$TWOPANE"/bashrc -i source "$TWOPANE"/screenrc.startpane . save_screenrc 'startpane' <<'.' focus top -screen -ln -t "$TOP_TITLE" 1 sh -c "$TOP_CMD; screen -X focus top; screen -X remove" +screen -ln -t "$TOP_TITLE" 1 sh -c "$TOP_CMD" exec :!. socat -u UNIX-RECV:"$TWOPANE"/socket STDOUT title 'output' focus bottom @@ -69,29 +69,32 @@ sendp() } sendc() { + [ "${COPROC[1]}" ] || coproc sendp printf '%s' "$*" >&${COPROC[1]} } send() { + [ "${COPROC[1]}" ] || coproc sendp printf '%s' "$*"$'\n' >&${COPROC[1]} } start() { - while read -r -N1 + [ "${COPROC[1]}" ] || coproc sendp + while read -r -N1 &${COPROC[1]} - done + [ "${COPROC[1]}" ] || break + printf '%s' "$REPLY" + done >&${COPROC[1]} } save_file bashrc <<. -set -x set -f set -o pipefail shopt -s lastpipe +trap 'COPROC=()' SIGPIPE trap "screen -X quit" EXIT -$(declare -f $TWOPANE_FUNCTION_EXPORTS) +$(declare -f $TWOPANE_FUNCTION_EXPORTS | sed 's/ COPROC / /') export PS1="$BOT_TITLE\$ " -coproc sendp . main() -- cgit v1.2.3