Introduction
Introduction Statistics Contact Development Disclaimer Help
Fix for wide character being incorrectly cleared on MODE_INSERT - st - simple t…
git clone git://git.suckless.org/st
Log
Files
Refs
README
LICENSE
---
commit 3a6d6d740110e6ee1b092d05ad746244eedabe4b
parent 211964d56ee00a7d46e251cbc150afb79138ae37
Author: Shi Tian <[email protected]>
Date: Sun, 25 Jun 2023 05:38:33 +0000
Fix for wide character being incorrectly cleared on MODE_INSERT
Under insert mode, when inserting a normal character in front of
a wide character, the affected region is shifted to the right by
one cell. However, the empty cell is reset as if being a part of a
wide character, causing the following cell being mishandled as a
dummy cell.
To reproduce the bug:
printf '\033[4h' # set MODE_INSERT
printf 妳好
printf '\033[4D'
printf 'x'
printf '\033[4l\n'
Diffstat:
M st.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
---
diff --git a/st.c b/st.c
@@ -2471,8 +2471,10 @@ check_control_code:
gp = &term.line[term.c.y][term.c.x];
}
- if (IS_SET(MODE_INSERT) && term.c.x+width < term.col)
+ if (IS_SET(MODE_INSERT) && term.c.x+width < term.col) {
memmove(gp+width, gp, (term.col - term.c.x - width) * sizeof(G…
+ gp->mode &= ~ATTR_WIDE;
+ }
if (term.c.x+width > term.col) {
tnewline(1);
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.