From a77f6553d88b5cda91e5d0054a64b9f1f9d8e304 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Wed, 26 Sep 2012 15:31:09 +0200 Subject: [PATCH] libdraw: implement ^W word delete for enter() and eenter() --- sys/src/libdraw/eenter.c | 9 +++++++++ sys/src/libdraw/enter.c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/sys/src/libdraw/eenter.c b/sys/src/libdraw/eenter.c index 40148f0aa..a3c60a881 100644 --- a/sys/src/libdraw/eenter.c +++ b/sys/src/libdraw/eenter.c @@ -150,6 +150,15 @@ eenter(char *ask, char *buf, int len, Mouse *m) } continue; } + if(k == Ketb){ + while(tick > 0){ + buf[--tick] = 0; + if(tick == 0 || strchr("\t ", buf[tick-1])) + break; + } + n = tick; + break; + } if(k == Kbs){ if(tick <= 0) continue; diff --git a/sys/src/libdraw/enter.c b/sys/src/libdraw/enter.c index 6dd61141c..a1a66cf6c 100644 --- a/sys/src/libdraw/enter.c +++ b/sys/src/libdraw/enter.c @@ -158,6 +158,15 @@ enter(char *ask, char *buf, int len, Mousectl *mc, Keyboardctl *kc, Screen *scr) } continue; } + if(k == Ketb){ + while(tick > 0){ + buf[--tick] = 0; + if(tick == 0 || strchr("\t ", buf[tick-1])) + break; + } + n = tick; + break; + } if(k == Kbs){ if(tick <= 0) continue;