diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-06-15 12:34:30 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-06-15 12:34:30 +0200 |
commit | 21ede7960fcb7f30ed9bf14e618190529d2f77d1 (patch) | |
tree | cbe7fe4e13733c89d4e35d6236f78029ed83ae82 /sys/src/cmd/aux/kbdfs | |
parent | 675e74d30eff1b78d452d087d5c24b4811c40438 (diff) |
kbdfs: support ^W word killing
Diffstat (limited to 'sys/src/cmd/aux/kbdfs')
-rw-r--r-- | sys/src/cmd/aux/kbdfs/kbdfs.c | 11 |
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': |