diff --git a/regress/output-editor.sh b/regress/output-editor.sh new file mode 100644 index 000000000..224516c58 --- /dev/null +++ b/regress/output-editor.sh @@ -0,0 +1,75 @@ +#!/bin/sh + +# Output and selection editors use either the default or an explicit command. + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +DIR=$(mktemp -d) || exit 1 +TMUX_TMPDIR=$DIR +export TMUX_TMPDIR +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +OUT="$TEST_TMUX -LtestB$$ -f/dev/null" + +cleanup() +{ + $OUT kill-server 2>/dev/null + $TMUX kill-server 2>/dev/null + rm -rf "$DIR" +} +trap cleanup EXIT HUP INT TERM + +wait_editor() +{ + i=0 + while [ "$i" -lt 50 ]; do + modal=$($TMUX display-message -p -t edit:0 '#{window_modal_pane}') + if [ -f "$DIR/$1" ] && [ -z "$modal" ]; then + return 0 + fi + sleep 0.1 + i=$((i + 1)) + done + echo "editor did not finish: $1" >&2 + exit 1 +} + +cat >"$DIR/editor.sh" <