NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: lib/53653: Curses doesn't always show line drawing characters correctly on wsvt25



Hi,

Looking at the output with tracing on, I see for the vt220 case:

  1539197247.063514: does_ctrl_o: Testing ^[[m^[(B for ^[(B$<4>

when we check to see if turning off all attributes also turns off ACS.
However, the terminfo entry for vt220 doesn't contain any delay for sgr0,
whilst it does for rmacs:

  rmacs=\E(B$<4>, sgr0=\E[m\E(B

so we think that sending sgr0 (i.e. when unsetting bold) didn't unset ACS
mode, and thus we don't set ACS mode again.

This might be a bug in the terminfo entry and it should really have a delay
in both.  However, stripping the trailing delay from the end of rmacs when
we check is probably a more sensible solution, so the appended patch does
that.

Regards,

Julian

 - - - - - 8< - - - - - - - - - - - - - - - - - - - - - - - - - 8< - - - - - -
--- src/lib/libcurses/setterm.c.orig	2018-10-10 20:24:25.000000000 +0100
+++ src/lib/libcurses/setterm.c	2018-10-10 20:37:54.000000000 +0100
@@ -348,8 +348,12 @@
 does_ctrl_o(const char *exit_cap, const char *acs_cap)
 {
 	const char *eptr = exit_cap, *aptr = acs_cap;
+	char *dptr;
 	int l;
 
+	dptr = strstr(aptr, "$<");
+	if (dptr != NULL && dptr > aptr)
+		*dptr = '\0';
 #ifdef DEBUG
 	__CTRACE(__CTRACE_INIT, "does_ctrl_o: Testing %s for %s\n", eptr, aptr);
 #endif
 - - - - - 8< - - - - - - - - - - - - - - - - - - - - - - - - - 8< - - - - - -


Home | Main Index | Thread Index | Old Index