diff options
author | Prince J Wesley <princejohnwesley@gmail.com> | 2016-06-23 08:42:57 +0530 |
---|---|---|
committer | Prince J Wesley <princejohnwesley@gmail.com> | 2016-08-17 23:44:39 +0530 |
commit | 4b883a3fb452e45f088bd47d8fa5479070ebb620 (patch) | |
tree | aa35473d8986f22960b0740e82c5b4fad854df3d /lib/internal/readline.js | |
parent | b417087ca7268de5ec6da503f428ee2ddd38fdfd (diff) | |
download | android-node-v8-4b883a3fb452e45f088bd47d8fa5479070ebb620.tar.gz android-node-v8-4b883a3fb452e45f088bd47d8fa5479070ebb620.tar.bz2 android-node-v8-4b883a3fb452e45f088bd47d8fa5479070ebb620.zip |
readline: keypress trigger for escape character
Fixes: https://github.com/nodejs/node/issues/7379
PR-URL: https://github.com/nodejs/node/pull/7382
Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
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) { |