On Sat, Jul 16, 2016 at 04:14:37PM -0400, Thomas Dickey wrote:
> On Sun, Jul 10, 2016 at 03:45:39PM +0200, Mikulas Patocka wrote:
> > Package: ncurses-base
> > Version: 6.0+20160319-2
> > Severity: normal
> > Tags: l10n
> > 
> > Dear Maintainer,
> > 
> > *** Reporter, please consider answering these questions, where appropriate 
> > ***
> > 
> >    * What led up to the situation?
> > 
> > Updating the ncurses-base package from 6.0+20160319-2 to 6.0+20160625-1 
> > breaks
> > the iso-8859-2 locale.
> > 
> > The reason for this bug is that the package 6.0+20160625-1 sends the 
> > characters
> > "\e(B\e)0" when initializing a full screen program. The code "\e(B" breaks 
> > the
> > iso-8859-2 locale. (the locale needs "\e(K" so that it uses the alternate 
> > map,
> > "\e(B" resets this setting to use the incorrect iso-8859-1 map)
> > 
> > The version 6.0+20160319-2 doesn't send the characters "\e(B\e)0" at
> > initialization, so iso-8859-2 works there.
> 
> It's not that simple.

...

> That is, a hard reset would have the same effect, pointing G0/G1 to
> the Latin1 and VT100 graphics tables.  The "reset" program does this.

I'd like to get this point resolved.

> It's a bit of a mess, but basically the old/new control codes don't work
> together. (more later)

...continuing, I wrote a script to (attempt to) exercise the various
character sets by writing all of the printable characters with each of
the selectable fonts, and changed my console-setup file to use ISO-8859-2
(both attached).

Currently I have via infocmp comparing linux2.2 to linux2.6:

    comparing booleans.
    comparing numbers.
    comparing strings.
        acsc: 
'+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376',
 '++\,\,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~'.
        enacs: NULL, '\E(B\E)0'.
        rmacs: '\E[10m', '^O'.
        sgr: 
'\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;11%;m',
 
'\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[0;10m', '\E[m\017'.
        smacs: '\E[11m', '^N'.

and (perhaps someone can point out where I'm missing it), the only difference
I see (screenshots attached) is an odd glitch on the screen which seems to be
unrelated to what I'm trying to investigate.

-- 
Thomas E. Dickey <dic...@invisible-island.net>
http://invisible-island.net
ftp://invisible-island.net
#!/usr/bin/perl -w
# $Id: linux-chrset,v 1.7 2016/07/23 20:52:37 tom Exp $
# man console_codes shows these:
# SGR 10, 11, 12
#       SO (0x0E, ^N) activates the G1 character set;
#       SI (0x0F, ^O) activates the G0 character set;
#       ESC (              Start sequence defining G0 character set
#       ESC ( B               Select default (ISO 8859-1 mapping)
#       ESC ( 0               Select VT100 graphics mapping
#       ESC ( U               Select null mapping - straight to character ROM
#       ESC ( K               Select user mapping - the map that is loaded by
#                             the utility mapscrn(8).
#       ESC )              Start sequence defining G1
#                          (followed by one of B, 0, U, K, as above).

use strict;

$| = 1;

our @scs = qw( B 0 U K );

sub doit() {
    $ENV{TERM} = shift;
    system("clear");
    my $enacs = `tput enacs`;
    my $smacs = `tput smacs`;
    my $rmacs = `tput rmacs`;

    my $max = 75;
    for my $SCS ( 0 .. $#scs ) {
        for my $SI ( 0 .. 1 ) {
            my $adj = 0;
            for my $chr ( 32 .. 255 ) {
                my $row = ( $chr / $max );
                my $col = ( $chr % $max );
                if ( ( $adj % $max ) == 0 ) {
                    printf "\n" if ( $adj != 0 );
                    printf "%s%s", $rmacs, $enacs;
                    printf "%s%d: ", $scs[$SCS], $SI;
                    printf '%s', $SI ? $smacs : $rmacs, $SI;
                    printf "\033(%s", $scs[$SCS];
                    printf "\033)%s", $scs[$SCS];
                }
                printf "%c", $chr;
                ++$adj;
            }
            printf "\n";
        }
    }
    printf "%s", $rmacs;
}

if ( $#ARGV >= 0 ) {
    while ( $#ARGV >= 0 ) {
        &doit( shift @ARGV );
    }
}
else {
    &doit("linux");
}
1;
# 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'

Attachment: signature.asc
Description: Digital signature

Reply via email to