ref: 9094c66c4a2f57cf0c4719af05afb2ad1a9d8eda
parent: 299773279c268a80599dfb38c96def4c23a3ca15
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Wed Sep 26 11:48:57 EDT 2012
libdraw: fix ^W corner case tick == 0 for enter()/eenter()
--- a/sys/src/libdraw/eenter.c
+++ b/sys/src/libdraw/eenter.c
@@ -152,10 +152,12 @@
}
if(k == Ketb){ while(tick > 0){- buf[--tick] = 0;
+ tick--;
if(tick == 0 || strchr("\t ", buf[tick-1]))break;
}
+ if(n > tick)
+ memset(buf+tick, 0, n-tick);
n = tick;
break;
}
--- a/sys/src/libdraw/enter.c
+++ b/sys/src/libdraw/enter.c
@@ -160,10 +160,12 @@
}
if(k == Ketb){ while(tick > 0){- buf[--tick] = 0;
+ tick--;
if(tick == 0 || strchr("\t ", buf[tick-1]))break;
}
+ if(n > tick)
+ memset(buf+tick, 0, n-tick);
n = tick;
break;
}
--
⑨