aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/vt
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2020-11-14 01:58:33 +0000
committerKyle Evans <kevans@FreeBSD.org>2020-11-14 01:58:33 +0000
commit3c11a50c2d0180974eff4f3b2fe983e2940e0976 (patch)
tree0c1ab9a8c720a9992936d5ac4d8a64801f7b3109 /sys/dev/vt
parent3e31ba6b4430b2e830405792b1b75010e1f1226a (diff)
Notes
Diffstat (limited to 'sys/dev/vt')
-rw-r--r--sys/dev/vt/vt_core.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c
index 4518cf624cc3..d4cbb038d31a 100644
--- a/sys/dev/vt/vt_core.c
+++ b/sys/dev/vt/vt_core.c
@@ -725,13 +725,22 @@ vt_scroll(struct vt_window *vw, int offset, int whence)
}
static int
-vt_machine_kbdevent(int c)
+vt_machine_kbdevent(struct vt_device *vd, int c)
{
switch (c) {
case SPCLKEY | DBG: /* kbdmap(5) keyword `debug`. */
- if (vt_kbd_debug)
+ if (vt_kbd_debug) {
kdb_enter(KDB_WHY_BREAK, "manual escape to debugger");
+#if VT_ALT_TO_ESC_HACK
+ /*
+ * There's an unfortunate conflict between SPCLKEY|DBG
+ * and VT_ALT_TO_ESC_HACK. Just assume they didn't mean
+ * it if we got to here.
+ */
+ vd->vd_kbstate &= ~ALKED;
+#endif
+ }
return (1);
case SPCLKEY | HALT: /* kbdmap(5) keyword `halt`. */
if (vt_kbd_halt)
@@ -864,7 +873,7 @@ vt_processkey(keyboard_t *kbd, struct vt_device *vd, int c)
return (0);
#endif
- if (vt_machine_kbdevent(c))
+ if (vt_machine_kbdevent(vd, c))
return (0);
if (vw->vw_flags & VWF_SCROLL) {