summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/libdraw/eenter.c4
-rw-r--r--sys/src/libdraw/enter.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/src/libdraw/eenter.c b/sys/src/libdraw/eenter.c
index a3c60a881..9102d60c3 100644
--- a/sys/src/libdraw/eenter.c
+++ b/sys/src/libdraw/eenter.c
@@ -152,10 +152,12 @@ eenter(char *ask, char *buf, int len, Mouse *m)
}
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;
}
diff --git a/sys/src/libdraw/enter.c b/sys/src/libdraw/enter.c
index a1a66cf6c..18fd4feec 100644
--- a/sys/src/libdraw/enter.c
+++ b/sys/src/libdraw/enter.c
@@ -160,10 +160,12 @@ enter(char *ask, char *buf, int len, Mousectl *mc, Keyboardctl *kc, Screen *scr)
}
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;
}