tty: emit 'unknown' key event if key sequence not found
authorDan VerWeire <dverweire@gmail.com>
Fri, 27 Jan 2012 23:49:07 +0000 (18:49 -0500)
committerBen Noordhuis <info@bnoordhuis.nl>
Sat, 28 Jan 2012 16:01:04 +0000 (17:01 +0100)
Add key.code and key.sequence -mad props go out to @TooTallNate

lib/tty.js

index dccda5a48123233b1bad942a401f06215f2fde5a..c1bbba1b06a15353492385c964a525da84156a9b 100644 (file)
@@ -154,6 +154,8 @@ ReadStream.prototype._emitKey = function(s) {
     }
   }
 
+  key.sequence = s;
+
   if (s === '\r' || s === '\n') {
     // enter
     key.name = 'enter';
@@ -210,6 +212,7 @@ ReadStream.prototype._emitKey = function(s) {
     key.ctrl = !!(modifier & 4);
     key.meta = !!(modifier & 10);
     key.shift = !!(modifier & 1);
+    key.code = code;
 
     // Parse the key itself
     switch (code) {
@@ -305,6 +308,7 @@ ReadStream.prototype._emitKey = function(s) {
 
       /* misc. */
       case '[Z': key.name = 'tab'; key.shift = true; break;
+      default: key.name = 'undefined'; break;
 
     }
   } else if (s.length > 1 && s[0] !== '\x1b') {