Module Name:    src
Committed By:   martin
Date:           Wed Nov 29 18:59:00 UTC 2023

Modified Files:
        src/sys/dev/wscons [netbsd-9]: wsemul_vt100.c

Log Message:
Pull up following revision(s) (requested by gutteridge in ticket #1772):

        sys/dev/wscons/wsemul_vt100.c: revision 1.47
        sys/dev/wscons/wsemul_vt100.c: revision 1.48

PR/56223: David Shao ^[]8;;^G make console unresponsive. From OpenBSD:

In `string' state, accept bell (^G) as an end of sequence in addition to
`ESC \', as supported by xterm; some third-party software such as
ncmpcpp rely upon this.

fix the NetBSD tag.


To generate a diff of this commit:
cvs rdiff -u -r1.45 -r1.45.4.1 src/sys/dev/wscons/wsemul_vt100.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/wscons/wsemul_vt100.c
diff -u src/sys/dev/wscons/wsemul_vt100.c:1.45 src/sys/dev/wscons/wsemul_vt100.c:1.45.4.1
--- src/sys/dev/wscons/wsemul_vt100.c:1.45	Mon Sep  3 16:29:34 2018
+++ src/sys/dev/wscons/wsemul_vt100.c	Wed Nov 29 18:59:00 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: wsemul_vt100.c,v 1.45 2018/09/03 16:29:34 riastradh Exp $ */
+/*	$NetBSD: wsemul_vt100.c,v 1.45.4.1 2023/11/29 18:59:00 martin Exp $	*/
 
 /*
  * Copyright (c) 1998
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wsemul_vt100.c,v 1.45 2018/09/03 16:29:34 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wsemul_vt100.c,v 1.45.4.1 2023/11/29 18:59:00 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_wsmsgattrs.h"
@@ -429,7 +429,13 @@ wsemul_vt100_output_c0c1(struct wsemul_v
 		/* ignore */
 		break;
 	case ASCII_BEL:
-		wsdisplay_emulbell(vd->cbcookie);
+		if (edp->state == VT100_EMUL_STATE_STRING) {
+			/* acts as an equivalent to the ``ESC \'' string end */
+			wsemul_vt100_handle_dcs(vd);
+			edp->state = VT100_EMUL_STATE_NORMAL;
+		} else {
+			wsdisplay_emulbell(vd->cbcookie);
+		}
 		break;
 	case ASCII_BS:
 		if (vd->ccol > 0) {
@@ -489,7 +495,7 @@ wsemul_vt100_output_c0c1(struct wsemul_v
 		break;
 	case ST: /* string end 8-bit */
 		/* XXX only in VT100_EMUL_STATE_STRING */
-		wsemul_vt100_handle_dcs(edp);
+		wsemul_vt100_handle_dcs(vd);
 		edp->state = VT100_EMUL_STATE_NORMAL;
 		break;
 #endif

Reply via email to