Download raw body.
[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;
[patch] remove unwanted vt220 code from wscons