summaryrefslogtreecommitdiff
path: root/lib/internal/readline.js
diff options
context:
space:
mode:
authorPrince J Wesley <princejohnwesley@gmail.com>2016-06-23 08:42:57 +0530
committerPrince J Wesley <princejohnwesley@gmail.com>2016-08-17 23:44:39 +0530
commit4b883a3fb452e45f088bd47d8fa5479070ebb620 (patch)
treeaa35473d8986f22960b0740e82c5b4fad854df3d /lib/internal/readline.js
parentb417087ca7268de5ec6da503f428ee2ddd38fdfd (diff)
downloadandroid-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.js6
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) {