git: 9front

Download patch

ref: e3799775dce7436a97e5d2c0c827494460ab3699
parent: c064ba2f8469ebea35daf8c011764e375ed082ec
author: cinap_lenrek <cinap_lenrek@localhost>
date: Wed Jun 15 08:34:30 EDT 2011

kbdfs: support ^W word killing

--- a/sys/src/cmd/aux/kbdfs/kbdfs.c
+++ b/sys/src/cmd/aux/kbdfs/kbdfs.c
@@ -568,16 +568,19 @@
 			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':
--