summaryrefslogtreecommitdiff
path: root/sys/src/cmd/aux/kbdfs
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-06-15 12:34:30 +0200
committercinap_lenrek <cinap_lenrek@localhost>2011-06-15 12:34:30 +0200
commit21ede7960fcb7f30ed9bf14e618190529d2f77d1 (patch)
treecbe7fe4e13733c89d4e35d6236f78029ed83ae82 /sys/src/cmd/aux/kbdfs
parent675e74d30eff1b78d452d087d5c24b4811c40438 (diff)
kbdfs: support ^W word killing
Diffstat (limited to 'sys/src/cmd/aux/kbdfs')
-rw-r--r--sys/src/cmd/aux/kbdfs/kbdfs.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/src/cmd/aux/kbdfs/kbdfs.c b/sys/src/cmd/aux/kbdfs/kbdfs.c
index 4584769b6..36c635dbe 100644
--- a/sys/src/cmd/aux/kbdfs/kbdfs.c
+++ b/sys/src/cmd/aux/kbdfs/kbdfs.c
@@ -568,16 +568,19 @@ lineproc(void *aux)
case '\0': /* flush */
nr = 0;
continue;
- case '\b': /* backspace */
- case Knack: /* ^U */
+ case Kbs: /* ^H: erase character */
+ case Knack: /* ^U: erase line */
+ case Ketb: /* ^W: erase word */
while(nr > 0){
nr--;
fprint(1, "\b");
- if(r == '\b')
+ if(r == Kbs)
+ break;
+ if(r == Ketb && utfrune(" \t", rb[nr]))
break;
}
continue;
- case Keof: /* ^D */
+ case Keof: /* ^D: eof */
done = 1;
break;
case '\n':