Files
tmux/regress/side-status-off-redraw.sh
2026-10-16 09:02:03 +01:00

56 lines
1.4 KiB
Bash

#!/bin/sh
# With the side status line off, a full redraw after changing window still
# draws pane border status lines that have not changed.
PATH=/bin:/usr/bin
TERM=screen
LC_ALL=C.UTF-8
export PATH TERM LC_ALL
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
TMUX="$TEST_TMUX -LtestA$$ -f/dev/null"
TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null"
cleanup()
{
$TMUX2 kill-server >/dev/null 2>&1
$TMUX kill-server >/dev/null 2>&1
}
trap cleanup 0 1 15
fail()
{
echo "$*" >&2
exit 1
}
check()
{
got=$($TMUX2 capture-pane -p -t outer:0.0 | head -n 1)
[ "$got" = "$2" ] || fail "$1: top row is '$got', expected '$2'"
}
$TMUX new-session -d -s inner -x 40 -y 10 'sleep 100' || exit 1
$TMUX set -g status off || exit 1
$TMUX set -g pane-border-status top || exit 1
$TMUX set -g pane-border-format ' #{pane_index} ' || exit 1
$TMUX split-window -h 'sleep 100' || exit 1
$TMUX new-window 'sleep 100' || exit 1
$TMUX select-window -t:0 || exit 1
$TMUX2 new-session -d -s outer -x 40 -y 10 'sleep 100' || exit 1
$TMUX2 set -g status off || exit 1
$TMUX2 respawn-pane -k -t outer:0.0 "$TMUX attach -t inner" || exit 1
sleep 1
SPLIT='── 0 ───────────────┬── 1 ──────────────'
check attach "$SPLIT"
$TMUX select-window -t:1 || exit 1
sleep 0.5
$TMUX select-window -t:0 || exit 1
sleep 0.5
check "after select-window" "$SPLIT"
exit 0