Fix for meta keys in a weird iTerm state.

This commit is contained in:
isaacs 2011-01-21 10:08:48 -08:00 committed by Ryan Dahl
parent d40af91b30
commit 49275524a5

View File

@ -93,7 +93,7 @@ ReadStream.prototype.isTTY = true;
// Regexes used for ansi escape code splitting
var metaKeyCodeRe = /^(?:\x1b)([a-zA-Z0-9])$/,
functionKeyCodeRe =
/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;(\d+))?([a-zA-Z]))/;
/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/;
ReadStream.prototype._emitKey = function(s) {
var char,
@ -106,7 +106,12 @@ ReadStream.prototype._emitKey = function(s) {
parts;
if (Buffer.isBuffer(s)) {
s = s.toString(this.encoding || 'utf-8');
if (s[0] > 127 && s[1] === undefined) {
s[0] -= 128;
s = '\x1b'+s.toString(this.encoding || 'utf-8');
} else {
s = s.toString(this.encoding || 'utf-8');
}
}
if (s === '\r') {