On Fri, Sep 26, 2008 at 03:26:59PM +0200, Juan Cespedes wrote: > Package: libncursesw5,libncursesw5-dev > Version: 5.6+20080830-1 > Severity: normal > > When using multi-bytes UTF-8 characters in libncurses, it wrongly > calculates its width, and messes up all the display. > > Attached is a simple program which demostrates it; the output should be:
Two observations:
It does not initialize locale.
#include <locale.h>
> #include <ncursesw/ncurses.h>
>
> int main(void)
> {
setlocale(LC_ALL, "");
> initscr();
> curs_set(0);
>
> mvaddch(0, 0, '+');
> mvaddch(0, 15, '+');
> mvaddch(3, 0, '+');
> mvaddch(3, 15, '+');
> mvhline(0, 1, '-', 14);
> mvhline(3, 1, '-', 14);
> mvvline(1, 0, '|', 2);
> mvvline(1, 15, '|', 2);
>
> mvaddstr(1, 1, "Juan Cespedes");
> mvaddstr(2, 1, "Juan Céspedes");
The string is encoded for ISO-8859-1 (not UTF-8).
> refresh();
> getch();
> endwin();
> return 0;
> }
--
Thomas E. Dickey <[EMAIL PROTECTED]>
http://invisible-island.net
ftp://invisible-island.net
signature.asc
Description: Digital signature

