On Tue, Jun 22, 2004 at 03:48:49AM +0200, Adrian Bunk wrote:
> The typescript file is attached.
It does show that screen isn't issuing the initialization string.
And in setting out to explain the results, I see the problem (the termcap).
Here's a readable version of the typescript from covering the initialization
through the first use of line-drawing text:
\n$ screen -r m\r
\n
\E7
\E[?47h
\E7
\E[r
\E[m
\E[?7h
\E[?1;3;4;6l
\E[4l
\E8
\E>
\E[4l
\E[?1h
\E=
\E[m^O
\E[1;76r
\E[H
\E[2J
\E[H
\E[2J
\E[7mq:Quit d:Del u:Undel s:Save c:Mail g:Group ?:Help \rq:Q
\n
\E[m1
\E[5COct 16 Florian_Oelmaie ( 110) Antwort: Verst\344ndnisproblem zum Thema op\r
\n2
\E[5COct 16 Peter Wintrich ( 25) ^Ntq^O>\r
\n3
A big chunk comes from the termcap initialization string (and has nothing
to do with line-drawing, so we can ignore that):
:is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\
What's left consists mostly of cursor movement (\E[H), clearing (\E[J), some
text - and ^N/^O to turn on line-drawing temporarily. What I don't see is a
string such as \E)0. Referring to ctlseqs.ms
SO Shift Out (Ctrl-N) -> Switch to Alternate Character Set:
invokes the G1 character set.
ESC ) C Designate G1 Character Set (ISO 2022)
C = 0 -> DEC Special Character and Line Drawing Set
This was not noticeable before #182, since xterm's initialization did
that (incorrectly). Fixing xterm exposed this error.
The termcap should have a string such as
:eA=\E)0:
which would tell screen how to initialize the alternate character set.
Here's a diff of NetBSD's termcap which shows when the bug was added:
> diff netbsd.tc-1.53 netbsd.tc-1.52
1c1
< # $NetBSD: termcap.src,v 1.53 2000/04/16 01:27:44 mycroft Exp $
---
> # $NetBSD: termcap.src,v 1.52 2000/02/14 05:41:11 jun Exp $
1745,1747c1745
< :RI=\E[%dC:UP=\E[%dA:\
< :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
< :ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
---
> :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
1782c1780
< :tc=xterm-xf86-v33:
---
> :tc=xterm-r6:
See that 1.53 adds some of the line-drawing features, but omits "eA".
The termcap that comes with xterm has no line-drawing (to fit in 1023
bytes, you must choose features from line-drawing, color and function
keys). This change was from another source. It doesn't appear to be
copied from the termcaps I'm maintaining for ncurses. Anyway, it's
a NetBSD bug (appears to be in the current 1.84 file).
--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Attachment:
pgpKlgUyMNP0S.pgp
Description: PGP signature