diff options
author | Peter Hofmann <scm@uninformativ.de> | 2023-10-07 07:40:39 +0200 |
---|---|---|
committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2023-10-07 12:16:59 +0200 |
commit | 8abe4bcb41aa7fda0ae00823f6a20271124150db (patch) | |
tree | 613b37bf04736d7d03d51425abbd16e5008cdffe | |
parent | 2fc7e532b23e2f820c6b73d352ec7c41fefa45b5 (diff) |
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.
-rw-r--r-- | st.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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]; } |