Introduction
Introduction Statistics Contact Development Disclaimer Help
Fix overtyping wide characters. - st - simple terminal
git clone git://git.suckless.org/st
Log
Files
Refs
README
LICENSE
---
commit 65f1dc428315ae9d7f362e10c668557c1379e7af
parent a0467c802d4f86ed162486e3453dd61181423902
Author: jamin <[email protected]>
Date: Wed, 29 Dec 2021 09:07:17 -0800
Fix overtyping wide characters.
Overtyping the first half of a wide character with the
second half of a wide character results in display garbage.
This is because the trailing dummy is not cleaned up.
i.e. ATTR_WIDE, ATTR_WDUMMY, ATTR_WDUMMY
Here is a short script for demonstrating the behavior:
#!/bin/sh
alias printf=/usr/bin/printf
printf こんにちは!; sleep 2
printf '\x1b[5D'; sleep 2
printf へ; sleep 2
printf ' '; sleep 2
echo
Diffstat:
M st.c | 4 ++++
1 file changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/st.c b/st.c
@@ -2507,6 +2507,10 @@ check_control_code:
if (width == 2) {
gp->mode |= ATTR_WIDE;
if (term.c.x+1 < term.col) {
+ if (gp[1].mode == ATTR_WIDE && term.c.x+2 < term.col) {
+ gp[2].u = ' ';
+ gp[2].mode &= ~ATTR_WDUMMY;
+ }
gp[1].u = '\0';
gp[1].mode = ATTR_WDUMMY;
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.