From: Crystal Kolipe Subject: [patch] remove unwanted vt220 code from wscons To: tech@openbsd.org Date: Wed, 02 Jul 2025 06:56:07 -0300 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;