commit 8abe4bcb41aa7fda0ae00823f6a20271124150db from: Peter Hofmann via: Hiltjo Posthuma date: Sat Oct 7 10:16:59 2023 UTC 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. commit - 2fc7e532b23e2f820c6b73d352ec7c41fefa45b5 commit + 8abe4bcb41aa7fda0ae00823f6a20271124150db blob - 3d250ddcdb95707453254d3f717dd8022d122fb9 blob + 4754c873405c4fbe30b7b8467f6e469ea25bf231 --- st.c +++ 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]; }