[Top][All Lists]

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

Re: screen-256color terminfo entry?

From: Stephane Chazelas
Subject: Re: screen-256color terminfo entry?
Date: Sun, 14 May 2006 12:46:58 +0100
User-agent: Mutt/1.5.6i

On Sat, May 13, 2006 at 08:19:19PM -0400, cga2000 wrote:
> Now one thing that I had not mentioned earlier is that apart from the
> 256-color business, I had also enabled UTF-8 by doing two things:
> 1. changing my locale to en_US.UTF-8
> 2. running "xterm -u8"

That may be that. Maybe groff (the man macro processor) thinks
your terminal talks UTF8 (because of the en_US.UTF-8), but your
screen window is configured as to use some 8bit charset.

What do you get when you type <Ctrl-A>i. If there's no mention
of UTF-8, then type <Ctrl-A>:encoding utf8

and see if that makes any difference.

Then, you may need to put a defencoding utf8, or a defutf8
in your ~/.screenrc

Also, maybe screen thinks your terminal doesn't understand utf8,
but it should if the locale is correct at the time screen is
started. You may want to try and play with the -U option to see
if that makes a difference.

With encoding set to UTF8, LC_ALL set to en_US.UTF-8, xterm -u8
and groff sgr reenabled (as you seem to have it), I have no
problem. With encoding iso8859-1, I can see some formating
problems, but not on the line with -132. But maybe you have a
different version of groff that uses some UTF8 character for "-"
for instance instead of the ASCII dash.

It would be nice to know what groff (it grotty backend) is
actually outputting.

PAGER='env LC_ALL=C cat -vte' man xterm
grep DECCOL screenlog.$WINDOW

Nikolai's entry is:

screen-256color|VT 100/ANSI X3.64 virtual terminal,
        am, km, mir, msgr, xenl,
        cols#80, it#8, lines#24, colors#256, pairs#32767,
        bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
        clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
        cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n,
        cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
        cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P,
        dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
        enacs=\E(B\E)0, home=\E[H,
        ht=\t, hts=\EH, ich=\E[%p1%d <at> , il=\E[%p1%dL, il1=\E[L,
        ind=\n, is2=\E)0, kcub1=\EOD, kcud1=\EOB,
        kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\EOP,
        kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ,
        kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~,
        kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kend=\E[4~,
        kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=\EE,
        rc=\E8, rev=\E[7m, ri=\EM, rmcup=\E[?1049l, rmir=\E[4l,
        rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7,
        sgr0=\E[m, smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=,
        smso=\E[3m, smul=\E[4m, tbc=\E[3g, smacs=^N, rmacs=^O, flash=\Eg,
        civis=\E[?25l, cnorm=\E[34h\E[?25h, cvvis=\E[34l,
        op=\E[39;49m, setab=\E[48;5;%p1%dm, setaf=\E[38;5;%p1%dm,

The differences with mine are:

$ infocmp -d screen-256color screen.xterm-256color
comparing screen-256color to screen.xterm-256color.
    comparing booleans.
        bce: F:T.
        ccc: F:T.
        npc: F:T.
    comparing numbers.
        pairs: 32767, 256.
    comparing strings.
        el1: '\E[1K', NULL.
        enacs: '\E(B\E)0', NULL.
        ich: '\E[%p1%d <at>\s', '\E[%p1%d@'.
        indn: NULL, '\E[%p1%dS'.
        initc: NULL, 
        invis: NULL, '\E[8m'.
        kDC: NULL, '\E[3;2~'.
        kEND: NULL, '\E[1;2F'.
        kHOM: NULL, '\E[1;2H'.
        kIC: NULL, '\E[2;2~'.
        kLFT: NULL, '\E[1;2D'.
        kNXT: NULL, '\E[6;2~'.
        kPRV: NULL, '\E[5;2~'.
        kRIT: NULL, '\E[1;2C'.
        kb2: NULL, '\EOE'.
        kbeg: NULL, '\E[1~'.
        kbs: NULL, '\177'.
        kcbt: NULL, '\E[Z'.
        kf0: NULL, '\E[10~'.
        kf13: NULL, '\EO2P'.
        kf14: NULL, '\EO2Q'.
        kf15: NULL, '\EO2R'.
        kf16: NULL, '\EO2S'.
        kf17: NULL, '\E[15;2~'.
        kf18: NULL, '\E[17;2~'.
        kf19: NULL, '\E[18;2~'.
        kf20: NULL, '\E[19;2~'.
        kf21: NULL, '\E[20;2~'.
        kf22: NULL, '\E[21;2~'.
        kf23: NULL, '\E[23;2~'.
        kf24: NULL, '\E[24;2~'.
        kf25: NULL, '\EO5P'.
        kf26: NULL, '\EO5Q'.
        kf27: NULL, '\EO5R'.
        kf28: NULL, '\EO5S'.
        kf29: NULL, '\E[15;5~'.
        kf30: NULL, '\E[17;5~'.
        kf31: NULL, '\E[18;5~'.
        kf32: NULL, '\E[19;5~'.
        kf33: NULL, '\E[20;5~'.
        kf34: NULL, '\E[21;5~'.
        kf35: NULL, '\E[23;5~'.
        kf36: NULL, '\E[24;5~'.
        kf37: NULL, '\EO6P'.
        kf38: NULL, '\EO6Q'.
        kf39: NULL, '\EO6R'.
        kf40: NULL, '\EO6S'.
        kf41: NULL, '\E[15;6~'.
        kf42: NULL, '\E[17;6~'.
        kf43: NULL, '\E[18;6~'.
        kf44: NULL, '\E[19;6~'.
        kf45: NULL, '\E[20;6~'.
        kf46: NULL, '\E[21;6~'.
        kf47: NULL, '\E[23;6~'.
        kf48: NULL, '\E[24;6~'.
        kf49: NULL, '\EO3P'.
        kf50: NULL, '\EO3Q'.
        kf51: NULL, '\EO3R'.
        kf52: NULL, '\EO3S'.
        kf53: NULL, '\E[15;3~'.
        kf54: NULL, '\E[17;3~'.
        kf55: NULL, '\E[18;3~'.
        kf56: NULL, '\E[19;3~'.
        kf57: NULL, '\E[20;3~'.
        kf58: NULL, '\E[21;3~'.
        kf59: NULL, '\E[23;3~'.
        kf60: NULL, '\E[24;3~'.
        kf61: NULL, '\EO4P'.
        kf62: NULL, '\EO4Q'.
        kf63: NULL, '\EO4R'.
        kmous: NULL, '\E[M'.
        mc0: NULL, '\E[i'.
        mc4: NULL, '\E[4i'.
        mc5: NULL, '\E[5i'.
        nel: '\EE', NULL.
        rin: NULL, '\E[%p1%dT'.
        rmacs: '^O', '\E(B'.
        rmam: NULL, '\E[?7l'.
        rs1: NULL, '\Ec'.
        rs2: '\Ec', '\E[!p\E[?3;4l\E[4l\E>'.
        setb: NULL, '\E[48;5;%p1%dm'.
        setf: NULL, '\E[38;5;%p1%dm'.
        sgr: NULL, 
        sgr0: '\E[m', '\E[m\E(B'.
        smacs: '^N', '\E(0'.
        smam: NULL, '\E[?7h'.
        u6: NULL, '\E[%i%d;%dR'.
        u7: NULL, '\E[6n'.
        u8: NULL, '\E[?1;2c'.
        u9: NULL, '\E[c'.
        vpa: NULL, '\E[%i%p1%dd'.

So, pretty similar. Nikolai ommits a lot of features. I included
all the function keys that xterm implement and that screen
should let pass through untranslated. Same of the redefinition
of colours, the kmous that is missing as well in the official
screen entry although screen supports it.

For smacs, rmacs, it's not clear who's right, the documentation,
and $TERMCAP seem to say it's me, but the "screen" entry and the
code would suggest it's Nikolai. \E(0 sets the G0 charset to be
the graphical charset, While ^N selects the G1 charset
(initialised by Nikolai's enacs with \E)0). Both approaches look
valid to me, but I find Nikolai's one neater, though it is
apparently not the one chosen by screen (according to $TERMCAP).

For xterm, it's probably better to set bce to true (both at
screen and terminfo level, as xterm is bce)

In any case, it shouldn't have any incidence on the problems
you're seeing, I think.


reply via email to

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