Thomas Dickey wrote:
On Fri, Sep 09, 2011 at 11:29:41AM +0400, Alexei Malinin wrote:
Nicholas Marriott wrote:
I get the same results on Linux and OpenBSD so if this is a problem I
suspect it is ncurses rather than OpenBSD.
You can take this to ncurses-dev or I will have a dig around when I have
time, it'd help if you can come up with a simpler example (perhaps where
you only change the x member of acsc).
On Mon, Jul 18, 2011 at 04:28:41PM +0400, address@hidden
wrote:
Synopsis: bug in the alternate character set output
Category: system
Environment:
System: OpenBSD 4.2 & 4.9
Architecture: OpenBSD.i386
Machine: i386
Description:
curses and the like applications display curses ACS_VLINE
characters incorrectly if the ACS_VLINE character is set
to "|"
How-To-Repeat:
let's prepare test terminfo entry, where curses ACS_VLINE
character is set to "|" (i. e. acsc must have "x|"
somewhere in a terminfo description):
But your example isn't doing that. It's assigning it to the alternate
character set's entry in the "|" position.
These sentences are unclear for me. In my test terminal description
I wrote that ACS_VLINE should be displayed as "|" (ASCII decimal 124).
Please see below.
What's actually displayed
depends on the terminal implementation (and fonts).
Some implementations for instance will show blanks if there's a mapping
to an unexpected character, some will show the original character which
is mapped, and - there are probably other interesting cases.
To get a sense for what to expect, look at vttest or the ncurses
test-program.
I understand you. But I think that the same behavior of the "test" program
for Linux and OpenBSD does not say about terminal implementation issues.
Please explain me the difference between "!" (ASCII decimal 33) and
"|" (ASCII decimal 124) in these terminal descriptions (look at "acsc"):
testterm0|vt100 subset 0,
am, km, mc5i, npc, nxon, xenl, xon,
cols#80, it#8, lines#24,
bel=^G, clear=\E[H\E[2J$<50>, cr=^M,
cup=\E[%i%p1%d;%p2%dH$<5>, ed=\E[J$<50>, el=\E[K$<3>,
el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H$<5>, ht=^I,
ind=^J, nel=\EE$<2>, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O,
rmso=\E[m$<2>, rs2=\Ec$<50>,
sgr=\E[m$<2>%?%p1%p3%|%t\E[7m$<2>%;%?%p9%t\016%e\017%;,
sgr0=\E[m$<2>\017, smacs=^N, smso=\E[7m$<2>,
acsc=q-x!,
testterm|vt100 subset 1,
am, km, mc5i, npc, nxon, xenl, xon,
cols#80, it#8, lines#24,
bel=^G, clear=\E[H\E[2J$<50>, cr=^M,
cup=\E[%i%p1%d;%p2%dH$<5>, ed=\E[J$<50>, el=\E[K$<3>,
el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H$<5>, ht=^I,
ind=^J, nel=\EE$<2>, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O,
rmso=\E[m$<2>, rs2=\Ec$<50>,
sgr=\E[m$<2>%?%p1%p3%|%t\E[7m$<2>%;%?%p9%t\016%e\017%;,
sgr0=\E[m$<2>\017, smacs=^N, smso=\E[7m$<2>,
acsc=q-x|,
With "testterm0" (for example, run "xterm -tn testterm0") the "test"
program correctly displays a box with "!" as ACS_VLINE, but with
"testterm" ("xterm -tn testterm0") the "test" program displays a box
with garbage as ACS_VLINE!
I cannot understand the difference between "!" (ASCII decimal 33) and
"|" (ASCII decimal 124)!