mirror of
https://github.com/tmux/tmux.git
synced 2026-10-12 21:54:23 +00:00
Tests for 5718.
This commit is contained in:
@@ -40,7 +40,7 @@ start_pane tabs 12 3 'A\tB\033[2g\r\033[IC'
|
||||
check_raw_matches tabs \
|
||||
'L 0 \(0\) flags=EXTENDED\[[0-9a-f]+\]' \
|
||||
'C 0,1 data=\(7,7, \) flags=TAB\[[0-9a-f]+\]' \
|
||||
'C 0,2 data=\(1,1,!\) flags=PADDING\[[0-9a-f]+\]' \
|
||||
'C 0,2 data=\(0,0,\) flags=PADDING\[[0-9a-f]+\]' \
|
||||
'C 0,8 data=\(1,1,B\) flags=NONE\[0\]' \
|
||||
'C 0,0 data=\(1,1,C\) flags=NONE\[0\]'
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ check_capture wide 'AあB'
|
||||
check_raw_matches wide \
|
||||
'L 0 \(0\) flags=EXTENDED\[[0-9a-f]+\]' \
|
||||
'C 0,1 data=\(2,3,あ\) flags=NONE\[0\] attr=NONE\[0\]' \
|
||||
'C 0,2 data=\(1,1,!\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,2 data=\(0,0,\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,3 data=\(1,1,B\) flags=NONE\[0\]'
|
||||
|
||||
start_pane combining 8 3 'e\314\201x'
|
||||
@@ -20,21 +20,21 @@ start_pane emoji 10 3 '\360\237\230\200Z'
|
||||
check_raw_matches emoji \
|
||||
'L 0 \(0\) flags=EXTENDED\[[0-9a-f]+\]' \
|
||||
'C 0,0 data=\(2,4,😀\) flags=NONE\[0\] attr=NONE\[0\]' \
|
||||
'C 0,1 data=\(1,1,!\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,1 data=\(0,0,\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,2 data=\(1,1,Z\) flags=NONE\[0\]'
|
||||
|
||||
start_pane flag 10 3 '\360\237\207\254\360\237\207\247!'
|
||||
check_raw_matches flag \
|
||||
'L 0 \(0\) flags=EXTENDED\[[0-9a-f]+\]' \
|
||||
'C 0,0 data=\(2,8,🇬🇧\) flags=NONE\[0\] attr=NONE\[0\]' \
|
||||
'C 0,1 data=\(1,1,!\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,1 data=\(0,0,\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,2 data=\(1,1,!\) flags=NONE\[0\]'
|
||||
|
||||
start_pane variation 10 3 '*\357\270\217!'
|
||||
check_raw_matches variation \
|
||||
'L 0 \(0\) flags=EXTENDED\[[0-9a-f]+\]' \
|
||||
'C 0,0 data=\(2,[0-9]+,.*\) flags=NONE\[0\] attr=NONE\[0\]' \
|
||||
'C 0,1 data=\(1,1,!\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,1 data=\(0,0,\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,2 data=\(1,1,!\) flags=NONE\[0\]'
|
||||
|
||||
start_pane invalid 10 3 '\377A'
|
||||
@@ -69,14 +69,14 @@ check_raw_matches overwrite-wide-pad \
|
||||
start_pane overwrite-wide-with-wide 10 3 'A\343\201\202B\r\033[1C\347\225\214'
|
||||
check_raw_matches overwrite-wide-with-wide \
|
||||
'C 0,1 data=\(2,3,界\) flags=NONE\[0\] attr=NONE\[0\]' \
|
||||
'C 0,2 data=\(1,1,!\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,2 data=\(0,0,\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 0,3 data=\(1,1,B\) flags=NONE\[0\]'
|
||||
|
||||
start_pane wide-right-edge 4 3 'ABC\343\201\202Z'
|
||||
check_raw_matches wide-right-edge \
|
||||
'L 0 \(0\) flags=WRAPPED\[[0-9a-f]+\]' \
|
||||
'C 1,0 data=\(2,3,あ\) flags=NONE\[0\] attr=NONE\[0\]' \
|
||||
'C 1,1 data=\(1,1,!\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 1,1 data=\(0,0,\) flags=PADDING\[[0-9a-f]+\] attr=NONE\[0\]' \
|
||||
'C 1,2 data=\(1,1,Z\) flags=NONE\[0\]'
|
||||
|
||||
exit $exit_status
|
||||
|
||||
60
regress/input-reflow-wide.sh
Normal file
60
regress/input-reflow-wide.sh
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Wide-character padding must not count towards the reflowed line width.
|
||||
|
||||
. ./input-common.inc
|
||||
|
||||
check_reflow()
|
||||
{
|
||||
# Resizing can move the first physical line into history.
|
||||
$TMUX capture-pane -pN"$2" -t "$1:" -S - -E - |
|
||||
normalize_capture >"$TMP"
|
||||
printf '%s\n' "${3:-$text}" >"$EXP"
|
||||
cmp "$TMP" "$EXP" || fail "$1 reflow (width $width, flags -pN$2)"
|
||||
}
|
||||
|
||||
text='中文文档甲 中文文档乙 中文文档丙 中文文档丁 中文文档戊 中文文档己'
|
||||
|
||||
# Default and RGB backgrounds exercise compact and extended padding cells.
|
||||
for padding in compact extended; do
|
||||
style=''
|
||||
if [ "$padding" = extended ]; then
|
||||
style='\033[48;2;1;2;3m'
|
||||
fi
|
||||
width=96
|
||||
start_pane_history "wide-$padding" 96 18 "${style}${text}\\n"
|
||||
check_reflow "wide-$padding" ''
|
||||
for width in 47 96 47 96; do
|
||||
$TMUX resize-window -t "wide-$padding:" -x "$width" -y 18 ||
|
||||
exit 1
|
||||
check_reflow "wide-$padding" J
|
||||
if [ "$width" = 96 ]; then
|
||||
check_reflow "wide-$padding" ''
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# Include both a split between wide characters and an odd-width boundary.
|
||||
text='中文文档'
|
||||
start_pane_history boundary 8 18 "${text}\\n"
|
||||
for width in 4 8 3 8; do
|
||||
$TMUX resize-window -t boundary: -x "$width" -y 18 || exit 1
|
||||
check_reflow boundary J
|
||||
case "$width" in
|
||||
4)
|
||||
check_reflow boundary '' '中文
|
||||
文档'
|
||||
;;
|
||||
3)
|
||||
check_reflow boundary '' '中
|
||||
文
|
||||
文
|
||||
档'
|
||||
;;
|
||||
8)
|
||||
check_reflow boundary ''
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
exit $exit_status
|
||||
Reference in New Issue
Block a user