ref: 4ec97f73ee2326209bc56730562e82f2e6fe2c0a
parent: e0bfd148e29346f9fb824ea0c6ac86b5870836ce
author: Sigrid <[email protected]>
date: Thu Feb 4 05:57:37 EST 2021
libdraw: enter/eenter: fix ^W removing the text on the right side of the tick
--- a/sys/src/libdraw/eenter.c
+++ b/sys/src/libdraw/eenter.c
@@ -152,13 +152,15 @@
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){
--- a/sys/src/libdraw/enter.c
+++ b/sys/src/libdraw/enter.c
@@ -160,13 +160,15 @@
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){