On Tue, Mar 27, 2012 at 05:15:10PM +0200, Sven Joachim wrote: > On 2009-02-16 14:47 +0100, Vincent Lefevre wrote: > > > Package: ncurses-base > > Version: 5.7+20090207-1 > > Severity: normal > > > > In the linux terminfo data: smacs=\E[11m and rmacs=\E[10m > > However the correct values are: smacs=^N and rmacs=^O > > This has been implemented in the 20110716 patchlevel and in the Debian > 5.9-5 release, however it causes rather bad breakage in non-UTF-8 > locales. For instance, Midnight Commander displays funny characters > instead of nice line drawings with LC_ALL=C, and bug #665959 mentions a > similar problem in Mutt.
hmm - I didn't notice that problem (or perhaps I did - see the 20110910 change below). Because ncurses won't _use_ the rmacs/smacs strings when it's running on Linux console in UTF-8 mode, then it sounds as if the change was entirely incorrect and should be reverted. I did (later than the patch level you mentioned) make this choice configurable (assuming that the kernel for the build is comparable to the system on which it is installed): 20110910 + modify misc/gen_edit.sh to select a "linux" entry which works with the current kernel rather than assuming it is always "linux3.0" (cf: 20110716). If the problem is simply from using pre-3.0 kernels, then that could be addressed using the gen_edit.sh change. Regarding smacs/rmacs, see "man ncurses" - NCURSES_NO_UTF8_ACS During initialization, the ncurses library checks for special cases where VT100 line-drawing (and the corresponding alternate character set capabilities) described in the terminfo are known to be missing. Specifically, when running in a UTF-8 locale, the Linux console emulator and the GNU screen program ignore these. Ncurses checks the TERM environment variable for these. For other special cases, you should set this environment variable. Doing this tells ncurses to use Unicode values which correspond to the VT100 line-drawing glyphs. That works for the special cases cited, and is likely to work for terminal emulators. When setting this variable, you should set it to a nonzero value. Setting it to zero (or to a nonnumber) disables the special check for Linux and screen. -- Thomas E. Dickey <dic...@invisible-island.net> http://invisible-island.net ftp://invisible-island.net
signature.asc
Description: Digital signature