From: Peter Hofmann <[email protected]>
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.
---
st.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/st.c b/st.c
index 3d250dd..4754c87 100644
--- 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];
}
--
2.42.0