Adicionando caracteres Unicode / UTF8 a uma exibição ncurses em C
Estou tentando adicionar caracteres Unicode wchar_t a uma exibição ncurses em C.
Eu tenho uma matriz:
wchar_t characters[]={L'\uE030', L'\uE029'}; // containing 2 thai letters, for example
Mais tarde, tento adicionar um wchar_t da matriz à exibição ncurses com:
add_wch(characters[0]);
Para fornecer um pouco mais de informações, fazer isso com o ASCII funciona bem, usando:
char characters[]={'A', 'B'};
// and later...
addch(characters[0]);
Para configurar o código do idioma, adiciono o include ...
#include <locale.h>
// in main()
setlocale(LC_CTYPE,"C-UTF-8");
As ncurses incluem são:
#include <ncurses.h>
Compilando com:
(editar: adicionado padrão c99, para suporte universal a nomes de caracteres.)
gcc -o ncursesutf8 ncursesutf8.c -lm -lncurses -Wall -std=c99
Recebo o seguinte aviso de compilação (é claro que o executável falhará):
ncursesutf8.c:48: warning: implicit declaration of function ‘add_wch’
Eu tentei apenas usandoaddch
que parece estar macroado para funcionar com wchar_t, mas quando faço isso, os caracteres Unicode não aparecem, em vez disso, são mostrados como caracteres ASCII.
Alguma ideia?
Estou usando o OS X Snow Leopard, 10.6.6
Editar: erro removido emwchar_t []
atribuição a usarL'\u0E30'
ao invés deL"\u0E30"
Também atualizei as configurações do compilador para usar o C99 (para adicionar suporte universal a nomes de caracteres). ambas as alterações não corrigem o problema.
Ainda não há respostas sobre isso, alguém sabe como fazer ncurses Unicodeaddchar
(add_wchar?)?! Socorro!