mirror of
https://github.com/tmux/tmux.git
synced 2026-08-26 00:21:37 +00:00
44 lines
1.4 KiB
Bash
Executable File
44 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# When a write breaks up a wide character or a tab, the columns it covered must
|
|
# keep the background colour, both in the grid and on the terminal. The second
|
|
# server is attached to the first so that what is actually sent is checked, not
|
|
# just what tmux has stored.
|
|
|
|
PATH=/bin:/usr/bin
|
|
TERM=screen
|
|
|
|
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
|
|
TMUX="$TEST_TMUX -LtestA$$ -f/dev/null"
|
|
$TMUX kill-server 2>/dev/null
|
|
TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null"
|
|
$TMUX2 kill-server 2>/dev/null
|
|
|
|
TMP=$(mktemp)
|
|
trap "rm -f $TMP" 0 1 15
|
|
|
|
# 1. Write inside a tab. 2. Overwrite the right half of a wide character.
|
|
# 3. Two tabs of different colours, the first partly deleted so that padding
|
|
# from both ends up next to each other, then written over.
|
|
# The sleep is so that the client is attached before anything is written and
|
|
# the changes are sent as they happen rather than as one redraw.
|
|
$TMUX2 -f/dev/null new -d -x24 -y3 "
|
|
sleep 2
|
|
printf '\033[44m\033[K\t\033[4GX'
|
|
printf '\033[2;1H\033[44m\033[K\344\270\226\033[2GX'
|
|
printf '\033[3;1H\033[42m\033[K\t\033[43m\033[K\t\033[0m\033[4G\033[8P\rx'
|
|
cat" || exit 1
|
|
$TMUX2 set -g status off || exit 1
|
|
|
|
$TMUX -f/dev/null new -x24 -y4 -d "$TMUX2 attach" || exit 1
|
|
sleep 4
|
|
|
|
$TMUX capturep -pe -S0 -E2 >$TMP || exit 1
|
|
$TMUX kill-server 2>/dev/null
|
|
$TMUX2 kill-server 2>/dev/null
|
|
|
|
printf '\033[44m X\n X\n\033[49mx\033[42m \033[43m \033[49m\n' |
|
|
cmp - $TMP || exit 1
|
|
|
|
exit 0
|