diff options
Diffstat (limited to 'lib/internal/readline.js')
-rw-r--r-- | lib/internal/readline.js | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/internal/readline.js b/lib/internal/readline.js index 1cc0b58d67..ce22fb9ffb 100644 --- a/lib/internal/readline.js +++ b/lib/internal/readline.js @@ -376,11 +376,15 @@ function* emitKeys(stream) { key.name = ch.toLowerCase(); key.shift = /^[A-Z]$/.test(ch); key.meta = escaped; + } else if (escaped) { + // Escape sequence timeout + key.name = ch.length ? undefined : 'escape'; + key.meta = true; } key.sequence = s; - if (key.name !== undefined) { + if (s.length !== 0 && (key.name !== undefined || escaped)) { /* Named character or sequence */ stream.emit('keypress', escaped ? undefined : s, key); } else if (s.length === 1) { |