summaryrefslogtreecommitdiff
path: root/lib/internal/readline.js
diff options
context:
space:
mode:
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) {