st
simple terminal
git clone https://9o.is/git/st.git
commit b1ec69a0b6ca525ef20856e2839442fbe551c0ed
parent 174345bf419528624a251cf2f86f4b09b9b5ca44
Author: Peter Hofmann <scm@uninformativ.de>
Date: Sat, 7 Oct 2023 07:40:39 +0200
Fix wide glyphs breaking "nowrap" mode
Consider the following example:
printf '\e[?7l';\
for i in $(seq $(($(tput cols) - 1))); do printf a; done;\
printf '🙈\n';\
printf '\e[?7h'
Even though MODE_WRAP has been disabled, the emoji appeared on the next
line. This patch keeps wide glyphs on the same line and moves them to
the right-most possible position.
Diffstat:
| M | st.c | | | 5 | ++++- |
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/st.c b/st.c @@ -2477,7 +2477,10 @@ check_control_code: } if (term.c.x+width > term.col) { - tnewline(1); + if (IS_SET(MODE_WRAP)) + tnewline(1); + else + tmoveto(term.col - width, term.c.y); gp = &term.line[term.c.y][term.c.x]; }