Index | Thread | Search

From:
Crystal Kolipe <kolipe.c@exoticsilicon.com>
Subject:
[patch] remove unwanted vt220 code from wscons
To:
tech@openbsd.org
Date:
Wed, 02 Jul 2025 06:56:07 -0300

Download raw body.

Thread
  • Crystal Kolipe:

    [patch] remove unwanted vt220 code from wscons

First pass at removing some obsolete and unwanted code from the wscons vt220
emulation.

Rationale:

* The return value from vt100_ansimode() is never used, making the call to
  vt100_ansimode() with VTMODE_REPORT pointless, (other than to display
  debugging info that is of no interest and not enabled by default anyway).

* As a result, vt100_ansimode() can be reduced to just setting or resetting
  VTFL_INSERTMODE.

* Parsing of the printer controller mode CSI sequence only exists to print
  diagnostic info that again will never be of interest, because this feature
  will never be implemented.

* The 'if 0' code in vt100_decmode() has been unused since 2009.  Time for
  it to go.

I'm looking to get this in as an unintrusive first step before making further
cleanups that might require more extensive testing.

--- wsemul_vt100_subr.c	Mon Apr  7 04:42:48 2025
+++ wsemul_vt100_subr.c	Wed Jul  2 10:37:28 2025
@@ -275,28 +275,12 @@
 		}
 		break;
 	case A3('\0', '$', 'p'): /* DECRQM request mode ANSI */
-		vt100_ansimode(edp, ARG(0), VTMODE_REPORT);
 		break;
 	case A3('?', '$', 'p'): /* DECRQM request mode DEC */
 		rc = vt100_decmode(edp, ARG(0), VTMODE_REPORT);
 		break;
 	case A3('\0', '\0', 'i'): /* MC printer controller mode */
 	case A3('?', '\0', 'i'): /* MC printer controller mode */
-		switch (ARG(0)) {
-		case 0: /* print screen */
-		case 1: /* print cursor line */
-		case 4: /* off */
-		case 5: /* on */
-#ifdef VT100_PRINTNOTIMPL
-			printf("CSI%di ignored\n", ARG(0));
-#endif
-			break;
-		default:
-#ifdef VT100_PRINTUNKNOWN
-			printf("CSI%di unknown\n", ARG(0));
-#endif
-			break;
-		}
 		break;
 
 #define A2(a, b) (((a) << 8) | (b))
@@ -908,43 +892,18 @@
 int
 vt100_ansimode(struct wsemul_vt100_emuldata *edp, int nr, int op)
 {
-	int res = 0; /* default: unknown */
-
-	switch (nr) {
-	case 2: /* KAM keyboard locked/unlocked */
-		break;
-	case 3: /* CRM control representation */
-		break;
-	case 4: /* IRM insert/replace characters */
-		if (op == VTMODE_SET)
-			edp->flags |= VTFL_INSERTMODE;
-		else if (op == VTMODE_RESET)
-			edp->flags &= ~VTFL_INSERTMODE;
-		res = ((edp->flags & VTFL_INSERTMODE) ? 1 : 2);
-		break;
-	case 10: /* HEM horizontal editing (permanently reset) */
-		res = 4;
-		break;
-	case 12: /* SRM local echo off/on */
-		res = 4; /* permanently reset ??? */
-		break;
-	case 20: /* LNM newline = newline/linefeed */
-		break;
-	default:
-#ifdef VT100_PRINTUNKNOWN
-		printf("ANSI mode %d unknown\n", nr);
-#endif
-		break;
-	}
-	return (res);
+	if (nr != 4)
+		return (0);
+	if (op == VTMODE_SET)
+		edp->flags |= VTFL_INSERTMODE;
+	if (op == VTMODE_RESET)
+		edp->flags &= ~VTFL_INSERTMODE;
+	return (0);
 }
 
 int
 vt100_decmode(struct wsemul_vt100_emuldata *edp, int nr, int op)
 {
-#if 0	/* res unused... return it by reference if ever necessary */
-	int res = 0; /* default: unknown */
-#endif
 	int flags = edp->flags;
 	int rc = 0;
 
@@ -954,39 +913,24 @@
 			flags |= VTFL_APPLCURSOR;
 		else if (op == VTMODE_RESET)
 			flags &= ~VTFL_APPLCURSOR;
-#if 0
-		res = ((flags & VTFL_APPLCURSOR) ? 1 : 2);
-#endif
 		break;
 	case 2: /* DECANM ANSI vt100/vt52 */
-#if 0
-		res = 3; /* permanently set ??? */
-#endif
 		break;
 	case 3: /* DECCOLM 132/80 cols */
 	case 4: /* DECSCLM smooth/jump scroll */
 	case 5: /* DECSCNM light/dark background */
-#if 0
-		res = 4; /* all permanently reset ??? */
-#endif
 		break;
 	case 6: /* DECOM move within/outside margins */
 		if (op == VTMODE_SET)
 			flags |= VTFL_DECOM;
 		else if (op == VTMODE_RESET)
 			flags &= ~VTFL_DECOM;
-#if 0
-		res = ((flags & VTFL_DECOM) ? 1 : 2);
-#endif
 		break;
 	case 7: /* DECAWM autowrap */
 		if (op == VTMODE_SET)
 			flags |= VTFL_DECAWM;
 		else if (op == VTMODE_RESET)
 			flags &= ~VTFL_DECAWM;
-#if 0
-		res = ((flags & VTFL_DECAWM) ? 1 : 2);
-#endif
 		break;
 	case 8: /* DECARM keyboard autorepeat */
 		break;
@@ -1003,9 +947,6 @@
 			WSEMULOP(rc, edp, &edp->abortstate, cursor,
 			    (edp->emulcookie, flags & VTFL_CURSORON, edp->crow,
 			     edp->ccol));
-#if 0
-		res = ((flags & VTFL_CURSORON) ? 1 : 2);
-#endif
 		break;
 	case 42: /* DECNRCM use 7-bit NRC /
 		    7/8 bit from DEC multilingual or ISO-latin-1*/
@@ -1013,9 +954,6 @@
 			flags |= VTFL_NATCHARSET;
 		else if (op == VTMODE_RESET)
 			flags &= ~VTFL_NATCHARSET;
-#if 0
-		res = ((flags & VTFL_NATCHARSET) ? 1 : 2);
-#endif
 		break;
 	case 66: /* DECNKM numeric keypad */
 		break;