ref: aa3dd7fd8f1b9409979af8263f06e45505326fc1
parent: a77f6553d88b5cda91e5d0054a64b9f1f9d8e304
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;
}
--
⑨