bug-ncurses
[Top][All Lists]
Advanced

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

suppressed ACS characters, ignpar, brkint, and imaxbel


From: G. Branden Robinson
Subject: suppressed ACS characters, ignpar, brkint, and imaxbel
Date: Sat, 28 Sep 2024 22:59:40 -0500

From time to time over the years I've noticed that sometimes terminal
emulators (usually xterm in my case) get screwed into some state where
ACS characters just don't work.  I get the ugly 'qqqqqqqqx' nonsense
where box borders should be.

I've tracked it down this far:

$ diff -u /tmp/{good,bad}
--- /tmp/good   2024-09-28 22:49:05.858771398 -0500
+++ /tmp/bad    2024-09-28 22:49:13.826766470 -0500
@@ -3,8 +3,8 @@
 eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
 werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
 -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
--ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
--iuclc -ixany imaxbel iutf8
+-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff
+-iuclc -ixany -imaxbel iutf8
 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
 echoctl echoke -flusho -extproc

A word diff might help:

$ wdiff /tmp/{good,bad}
speed 38400 baud; rows 43; columns 147; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk [-brkint ignpar-] {+-brkint -ignpar+} -parmrk -inpck -istrip -inlcr 
-igncr icrnl [-ixon-] {+-ixon+} -ixoff
-iuclc -ixany [-imaxbel-] {+-imaxbel+} iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke -flusho -extproc

In English, the "bad" terminal has "brkint", "ignpar", and "imaxbel" all
shut off.

But maybe these are red herrings, because turning each of these back on
doesn't fix the problem.  ...I'm wondering, though, if I managed to cat
some sort of horrible noise that changed these settings and one other,
not observed at the terminal driver level, besides.

I sent both "smacs" and "rmacs" capabilities to the terminal.  And
"enacs".  And NCURSES_NO_UTF8_ACS is _not_ set in my environment.

If we can track down the cause, I'd like to add it as an example to the
tput(1) man page, if that's where the trouble lies.  I dislike telling
people to just reset their terminal or close it and start a new one.
I'd prefer to understand the problem and have a surgical solution to
prescribe.

Anyone have any ideas?

Regards,
Branden

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]