From 4ec97f73ee2326209bc56730562e82f2e6fe2c0a Mon Sep 17 00:00:00 2001 From: Sigrid Date: Thu, 4 Feb 2021 10:57:37 +0100 Subject: [PATCH] libdraw: enter/eenter: fix ^W removing the text on the right side of the tick --- sys/src/libdraw/eenter.c | 6 ++++-- sys/src/libdraw/enter.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/sys/src/libdraw/eenter.c b/sys/src/libdraw/eenter.c index 0e08a5d70..dfe1fe3e9 100644 --- a/sys/src/libdraw/eenter.c +++ b/sys/src/libdraw/eenter.c @@ -152,13 +152,15 @@ nodraw: continue; } if(k == Ketb){ + l = tick; while(tick > 0){ tick--; if(tick == 0 || - strchr(" !\"#$%&'()*+,-./:;<=>?@`[\\]^{|}~", buf[tick-1])) + strchr(" !\"#$%&'()*+,-./:;<=>?@`[\\]^{|}~", buf[tick-1])) break; } - buf[n = tick] = 0; + memmove(buf+tick, buf+l, n-l); + buf[n -= l-tick] = 0; break; } if(k == Kbs){ diff --git a/sys/src/libdraw/enter.c b/sys/src/libdraw/enter.c index cbcc52573..70742e087 100644 --- a/sys/src/libdraw/enter.c +++ b/sys/src/libdraw/enter.c @@ -160,13 +160,15 @@ nodraw: continue; } if(k == Ketb){ + l = tick; while(tick > 0){ tick--; if(tick == 0 || - strchr(" !\"#$%&'()*+,-./:;<=>?@`[\\]^{|}~", buf[tick-1])) + strchr(" !\"#$%&'()*+,-./:;<=>?@`[\\]^{|}~", buf[tick-1])) break; } - buf[n = tick] = 0; + memmove(buf+tick, buf+l, n-l); + buf[n -= l-tick] = 0; break; } if(k == Kbs){