bug-ncurses
[Top][All Lists]
Advanced

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

Re: ANN: terminfo-20160924.src.gz


From: Mikulas Patocka
Subject: Re: ANN: terminfo-20160924.src.gz
Date: Mon, 10 Oct 2016 16:42:11 +0200 (CEST)
User-agent: Alpine 2.02 (DEB 1266 2009-07-14)


On Sun, 9 Oct 2016, Thomas Dickey wrote:

> On Wed, Sep 28, 2016 at 02:19:27PM +0200, Mikulas Patocka wrote:
> > 
> > 
> > Hi
> > 
> > The linux2.6 terminfo entry still contains the string "enacs=\E(B\E)0", 
> > which makes it unusable with iso-8859-2 locale and most other one-byte 
> > character sets (except iso-8859-1 and utf-8).
> 
> From our previous discussion, it wasn't clear to me why you cannot use
> 
>       # CONFIGURATION FILE FOR SETUPCON
> 
>       # Consult the console-setup(5) manual page.
> 
>       ACTIVE_CONSOLES="/dev/tty[1-6]"
> 
>       #CHARMAP="UTF-8"
>       CHARMAP="ISO-8859-2"
> 
>       CODESET="Lat2"
>       FONTFACE="Fixed"
>       FONTSIZE="8x16"
> 
>       VIDEOMODE=
> 
>       # The following is an example how to use a braille font
>       # FONT='lat9w-08.psf.gz brl-8x8.psf'

I'm using this configuration and this configuration doesn't work with 
current terminfo.

You can try it - use the above configuration, run setupcon and then run
LANG=cs_CZ.iso-8859-2 mc
- at the bottom line, the label for key 6 should be "Presun" (with caron 
over "r"), but with current terminfo, the letter r-with-caron is corrupted 
and a different character is printed.


The setupcon command runs setfont:
execve("/bin/setfont", ["setfont", "-C", "/dev/tty1", "-m", 
"/etc/console-setup/ISO-8859-2.acm.gz"]

The setfont program does:
open("/dev/tty1", O_RDWR)         = 3
ioctl(3, PIO_UNISCRNMAP, 0x7ffd9e65a620) = 0
write(3, "\33(K", 3)              = 3

So far, so good.

However - when I start a ncurses program (such as Midnight Commander), it 
reads the "enacs" string from terminfo (the enacs string is "ESC ( B ESC ) 
0", it writes this string to the terminal, it undoes the setting "ESC ( K" 
done by setfont and the national characters are corrupted.

> but it occurred to me that there is a way to have two fonts loaded.
> I've started investigating this.

I don't need to have two fonts loaded. I need one font with the 
iso-8859-2 encoding.


Here I'm sending a patch for this bug.

Mikulas


---
 termcap-20160924.src  |    2 +-
 terminfo-20160924.src |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Index: ti/termcap-20160924.src
===================================================================
--- ti.orig/termcap-20160924.src        2016-10-10 16:22:15.000000000 +0200
+++ ti/termcap-20160924.src     2016-10-10 16:31:35.000000000 +0200
@@ -1598,7 +1598,7 @@ linux2.2|linux 2.2.x console:\
 #      '_' scan line 9
 linux2.6|linux 2.6.x console:\
        :ac=++,,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~:\
-       :ae=^O:as=^N:eA=\E(B\E)0:me=\E[m\017:tc=linux2.2:
+       :ae=^O:as=^N:eA=\E)0:me=\E[m\017:tc=linux2.2:
 
 # The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
 # It is the same as xterm's erase-saved-lines feature.
Index: ti/terminfo-20160924.src
===================================================================
--- ti.orig/terminfo-20160924.src       2016-10-10 16:22:26.000000000 +0200
+++ ti/terminfo-20160924.src    2016-10-10 16:31:49.000000000 +0200
@@ -1691,7 +1691,7 @@ linux2.2|linux 2.2.x console,
 #      '_' scan line 9
 linux2.6|linux 2.6.x console,
        
acsc=++\,\,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~,
-       enacs=\E(B\E)0, rmacs=^O,
+       enacs=\E)0, rmacs=^O,
        
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;,
        sgr0=\E[m\017, smacs=^N, use=linux2.2,
 



reply via email to

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