[Dosemu-cvs] dosemu/src/plugin/translate keysym_approximations.c,1.1,1.1.2.1 translate_config.c,1.1,
Brought to you by:
bartoldeman
From: Bart O. <bar...@us...> - 2004-05-31 18:11:00
|
Update of /cvsroot/dosemu/dosemu/src/plugin/translate In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24905/src/plugin/translate Modified Files: Tag: Release-1_2 keysym_approximations.c translate_config.c Log Message: Backport filename Unicode translations. Index: keysym_approximations.c =================================================================== RCS file: /cvsroot/dosemu/dosemu/src/plugin/translate/keysym_approximations.c,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -d -r1.1 -r1.1.2.1 --- keysym_approximations.c 23 Jun 2003 00:02:12 -0000 1.1 +++ keysym_approximations.c 31 May 2004 18:10:51 -0000 1.1.2.1 @@ -306,35 +306,33 @@ { U_MACRON, x }, { U_SUPERSCRIPT_ONE, x }, { U_VULGAR_FRACTION_THREE_QUARTERS, x }, - - { U_LATIN_CAPITAL_LETTER_A_WITH_GRAVE, x }, - { U_LATIN_CAPITAL_LETTER_A_WITH_ACUTE, x }, - { U_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX, x }, - { U_LATIN_CAPITAL_LETTER_A_WITH_TILDE, x }, - { U_LATIN_CAPITAL_LETTER_E_WITH_GRAVE, x }, - { U_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX, x }, - { U_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS, x }, - { U_LATIN_CAPITAL_LETTER_I_WITH_GRAVE, x }, - { U_LATIN_CAPITAL_LETTER_I_WITH_ACUTE, x }, - { U_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX, x }, - { U_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS, x }, - { U_LATIN_CAPITAL_LETTER_ETH, x }, - { U_LATIN_CAPITAL_LETTER_O_WITH_GRAVE, x }, - { U_LATIN_CAPITAL_LETTER_O_WITH_ACUTE, x }, - { U_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX, x }, - { U_LATIN_CAPITAL_LETTER_O_WITH_TILDE, x }, - { U_MULTIPLICATION_SIGN, x }, - { U_LATIN_CAPITAL_LETTER_U_WITH_GRAVE, x }, - { U_LATIN_CAPITAL_LETTER_U_WITH_ACUTE, x }, - { U_LATIN_CAPITAL_LETTER_THORN, x }, - { U_LATIN_SMALL_LETTER_SHARP_S, x }, - { U_LATIN_SMALL_LETTER_A_WITH_TILDE, x }, - { U_LATIN_SMALL_LETTER_ETH, x }, - { U_LATIN_SMALL_LETTER_O_WITH_TILDE, x }, - { U_LATIN_SMALL_LETTER_Y_WITH_ACUTE, x }, - { U_LATIN_SMALL_LETTER_THORN, x }, */ - + { U_LATIN_CAPITAL_LETTER_A_WITH_GRAVE, U_LATIN_CAPITAL_LETTER_A }, + { U_LATIN_CAPITAL_LETTER_A_WITH_ACUTE, U_LATIN_CAPITAL_LETTER_A }, + { U_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX, U_LATIN_CAPITAL_LETTER_A }, + { U_LATIN_CAPITAL_LETTER_A_WITH_TILDE, U_LATIN_CAPITAL_LETTER_A }, + { U_LATIN_CAPITAL_LETTER_E_WITH_GRAVE, U_LATIN_CAPITAL_LETTER_E }, + { U_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX, U_LATIN_CAPITAL_LETTER_E }, + { U_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS, U_LATIN_CAPITAL_LETTER_E }, + { U_LATIN_CAPITAL_LETTER_I_WITH_GRAVE, U_LATIN_CAPITAL_LETTER_I }, + { U_LATIN_CAPITAL_LETTER_I_WITH_ACUTE, U_LATIN_CAPITAL_LETTER_I }, + { U_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX, U_LATIN_CAPITAL_LETTER_I }, + { U_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS, U_LATIN_CAPITAL_LETTER_I }, + { U_LATIN_CAPITAL_LETTER_ETH, U_LATIN_SMALL_LETTER_D }, + { U_LATIN_CAPITAL_LETTER_O_WITH_GRAVE, U_LATIN_CAPITAL_LETTER_O }, + { U_LATIN_CAPITAL_LETTER_O_WITH_ACUTE, U_LATIN_CAPITAL_LETTER_O }, + { U_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX, U_LATIN_CAPITAL_LETTER_O }, + { U_LATIN_CAPITAL_LETTER_O_WITH_TILDE, U_LATIN_CAPITAL_LETTER_O }, + { U_MULTIPLICATION_SIGN, U_LATIN_SMALL_LETTER_X }, + { U_LATIN_CAPITAL_LETTER_U_WITH_GRAVE, U_LATIN_CAPITAL_LETTER_U }, + { U_LATIN_CAPITAL_LETTER_U_WITH_ACUTE, U_LATIN_CAPITAL_LETTER_U }, + { U_LATIN_CAPITAL_LETTER_THORN, U_LATIN_CAPITAL_LETTER_P }, + { U_LATIN_SMALL_LETTER_SHARP_S, U_LATIN_SMALL_LETTER_S }, + { U_LATIN_SMALL_LETTER_A_WITH_TILDE, U_LATIN_SMALL_LETTER_A }, + { U_LATIN_SMALL_LETTER_ETH, U_LATIN_SMALL_LETTER_D }, + { U_LATIN_SMALL_LETTER_O_WITH_TILDE, U_LATIN_SMALL_LETTER_O }, + { U_LATIN_SMALL_LETTER_Y_WITH_ACUTE, U_LATIN_SMALL_LETTER_Y }, + { U_LATIN_SMALL_LETTER_THORN, U_LATIN_SMALL_LETTER_P } }; static const int approximation_count = sizeof(approximations)/sizeof(approximations[0]); Index: translate_config.c =================================================================== RCS file: /cvsroot/dosemu/dosemu/src/plugin/translate/translate_config.c,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -d -r1.1 -r1.1.2.1 --- translate_config.c 23 Jun 2003 00:02:13 -0000 1.1 +++ translate_config.c 31 May 2004 18:10:51 -0000 1.1.2.1 @@ -1,3 +1,6 @@ +#include <locale.h> +#include <langinfo.h> +#include <string.h> #include "dosemu_debug.h" #include "translate.h" #include "dosemu_charset.h" @@ -5,14 +8,30 @@ #include "init.h" #include "emu.h" #include "video.h" +#include "utilities.h" struct translate_config_t trconfig; /* Intialized to nulls */ static void config_translate_scrub(void) { - + char *charset; k_printf("config.term_charset=%d\n", config.term_charset); /* set the character sets used base upon config.term_charset */ + setlocale (LC_ALL, ""); + if (!trconfig.unix_charset) { + charset = strdup(nl_langinfo(CODESET)); + strlower(charset); + if (memcmp(charset, "iso-", 4) == 0) + memmove(charset + 3, charset + 4, strlen(charset + 3)); + trconfig.unix_charset = lookup_charset(charset); + free(charset); + if (!trconfig.unix_charset) + trconfig.unix_charset = lookup_charset("iso8859-1"); + } + if (!trconfig.paste_charset) + trconfig.paste_charset = trconfig.unix_charset; + if (!trconfig.keyb_charset) + trconfig.keyb_charset = trconfig.unix_charset; switch (config.term_charset) { case CHARSET_FULLIBM: error("WARNING: 'charset fullibm' doesn't work. Use 'charset ibm' instead.\n"); @@ -26,11 +45,8 @@ if (!trconfig.output_charset) trconfig.output_charset = get_terminal_charset(lookup_charset("cp437")); - if (!trconfig.paste_charset) - trconfig.paste_charset = lookup_charset("iso8859-1"); - if (!trconfig.keyb_charset) - trconfig.keyb_charset = lookup_charset("iso8859-1"); - break; + if (!trconfig.dos_charset) + trconfig.dos_charset = lookup_charset("cp437"); break; case CHARSET_LATIN1: if (!trconfig.video_mem_charset) @@ -40,10 +56,8 @@ get_terminal_charset(lookup_charset("cp850")); if (!trconfig.output_charset) trconfig.output_charset = lookup_charset("iso8859-1"); - if (!trconfig.paste_charset) - trconfig.paste_charset = lookup_charset("iso8859-1"); - if (!trconfig.keyb_charset) - trconfig.keyb_charset = lookup_charset("iso8859-1"); + if (!trconfig.dos_charset) + trconfig.dos_charset = lookup_charset("cp850"); break; case CHARSET_LATIN2: if (!trconfig.video_mem_charset) @@ -53,10 +67,8 @@ get_terminal_charset(lookup_charset("cp852")); if (!trconfig.output_charset) trconfig.output_charset = lookup_charset("iso8859-2"); - if (!trconfig.paste_charset) - trconfig.paste_charset = lookup_charset("iso8859-2"); - if (!trconfig.keyb_charset) - trconfig.keyb_charset = lookup_charset("iso8859-2"); + if (!trconfig.dos_charset) + trconfig.dos_charset = lookup_charset("cp852"); break; case CHARSET_LATIN: k_printf("charset_latin\n"); @@ -67,24 +79,20 @@ get_terminal_charset(lookup_charset("cp437")); if (!trconfig.output_charset) trconfig.output_charset = lookup_charset("iso8859-1"); - if (!trconfig.paste_charset) - trconfig.paste_charset = lookup_charset("iso8859-1"); - if (!trconfig.keyb_charset) - trconfig.keyb_charset = lookup_charset("iso8859-1"); + if (!trconfig.dos_charset) + trconfig.dos_charset = lookup_charset("cp437"); break; case CHARSET_KOI8: - if (!trconfig.video_mem_charset) - trconfig.video_mem_charset = lookup_charset("cp866"); - if (!trconfig.keyb_config_charset) - trconfig.keyb_config_charset = - get_terminal_charset(lookup_charset("cp866")); - if (!trconfig.output_charset) - trconfig.output_charset = lookup_charset("koi8-r"); - if (!trconfig.paste_charset) - trconfig.paste_charset = lookup_charset("koi8-r"); - if (!trconfig.keyb_charset) - trconfig.keyb_charset = lookup_charset("koi8-r"); - break; + if (!trconfig.video_mem_charset) + trconfig.video_mem_charset = lookup_charset("cp866"); + if (!trconfig.keyb_config_charset) + trconfig.keyb_config_charset = + get_terminal_charset(lookup_charset("cp866")); + if (!trconfig.output_charset) + trconfig.output_charset = lookup_charset("koi8-r"); + if (!trconfig.dos_charset) + trconfig.dos_charset = lookup_charset("cp866"); + break; default: if (!trconfig.video_mem_charset) trconfig.video_mem_charset = lookup_charset("cp437"); @@ -93,10 +101,8 @@ get_terminal_charset(lookup_charset("cp437")); if (!trconfig.output_charset) trconfig.output_charset = lookup_charset("default"); - if (!trconfig.paste_charset) - trconfig.paste_charset = lookup_charset("default"); - if (!trconfig.keyb_charset) - trconfig.keyb_charset = lookup_charset("default"); + if (!trconfig.dos_charset) + trconfig.dos_charset = lookup_charset("cp437"); break; } v_printf("video_mem_charset=%s\n", @@ -109,6 +115,10 @@ trconfig.paste_charset?trconfig.paste_charset->names[0]:"<NULL>"); k_printf("keyb_charset=%s\n", trconfig.keyb_charset?trconfig.keyb_charset->names[0]:"<NULL>"); + d_printf("unix_charset=%s\n", + trconfig.unix_charset?trconfig.unix_charset->names[0]:"<NULL>"); + d_printf("dos_charset=%s\n", + trconfig.dos_charset?trconfig.dos_charset->names[0]:"<NULL>"); } CONSTRUCTOR(static void init(void)) |