summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorDaniel Thompson <daniel.thompson@linaro.org>2019-10-25 08:33:28 +0100
committerDaniel Thompson <daniel.thompson@linaro.org>2019-10-28 12:08:29 +0000
commitc58ff643763c78bef12874ee39995c9f7f987bc2 (patch)
tree92e5db35f36b0452c25bc0bf7235e76fb3ec1ce4 /kernel
parentcdca8d8900dd33ce6b8b526e247d2a6009d05de0 (diff)
downloadlinux-c58ff643763c78bef12874ee39995c9f7f987bc2.tar.gz
linux-c58ff643763c78bef12874ee39995c9f7f987bc2.tar.bz2
linux-c58ff643763c78bef12874ee39995c9f7f987bc2.zip
kdb: Tweak escape handling for vi users
Currently if sequences such as "\ehelp\r" are delivered to the console then the h gets eaten by the escape handling code. Since pressing escape becomes something of a nervous twitch for vi users (and that escape doesn't have much effect at a shell prompt) it is more helpful to emit the 'h' than the '\e'. We don't simply choose to emit the final character for all escape sequences since that will do odd things for unsupported escape sequences (in other words we retain the existing behaviour once we see '\e['). Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Link: https://lore.kernel.org/r/20191025073328.643-6-daniel.thompson@linaro.org
Diffstat (limited to 'kernel')
-rw-r--r--kernel/debug/kdb/kdb_io.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c
index f794c0ca4557..8bcdded5d61f 100644
--- a/kernel/debug/kdb/kdb_io.c
+++ b/kernel/debug/kdb/kdb_io.c
@@ -163,8 +163,8 @@ char kdb_getchar(void)
*pbuf++ = key;
key = kdb_handle_escape(buf, pbuf - buf);
- if (key < 0) /* no escape sequence; return first character */
- return buf[0];
+ if (key < 0) /* no escape sequence; return best character */
+ return buf[pbuf - buf == 2 ? 1 : 0];
if (key > 0)
return key;
}