st-flexipatch

My st-flexipatch configuration
git clone git://git.ethandl.dev/st-flexipatch
Log | Files | Refs | README | LICENSE

commit 3cbaecfa31322873480c7be2b669b3606b8923a8
parent 6ade70c7264e4ee50416d34c928457b63b0c91df
Author: Bakkeby <bakkeby@gmail.com>
Date:   Sun,  8 Oct 2023 20:21:13 +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.

ref.
https://git.suckless.org/st/commit/8abe4bcb41aa7fda0ae00823f6a20271124150db.html

Diffstat:
Mst.c | 5++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/st.c b/st.c @@ -3265,7 +3265,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]; }