diff options
Diffstat (limited to 'src/im.c')
-rw-r--r-- | src/im.c | 113 |
1 files changed, 65 insertions, 48 deletions
@@ -43,6 +43,7 @@ #include <wchar.h> #include "im.h" +#include "tuxpaint.h" @@ -830,7 +831,6 @@ static void im_fullreset(IM_DATA* im) */ static int im_event_zh_tw(IM_DATA* im, SDL_keysym ks) { - static const char* lang_file = IMDIR "zh_tw.im"; enum { SEC_ENGLISH, SEC_ZH_TW, SEC_TOTAL }; static CHARMAP cm; @@ -860,20 +860,25 @@ static int im_event_zh_tw(IM_DATA* im, SDL_keysym ks) break; case IM_REQ_INIT: /* Initialization */ - charmap_init(&cm); + { + char lang_file[MAX_PATH]; + snprintf(lang_file, sizeof(lang_file), "%s/im/zh_tw.im", DATA_PREFIX); - if(charmap_load(&cm, lang_file)) { - fprintf(stderr, "Unable to load %s, defaulting to im_event_c\n", lang_file); - im->lang = LANG_DEFAULT; - return im_event_c(im, ks); - } + charmap_init(&cm); - im_fullreset(im); + if(charmap_load(&cm, lang_file)) { + fprintf(stderr, "Unable to load %s, defaulting to im_event_c\n", lang_file); + im->lang = LANG_DEFAULT; + return im_event_c(im, ks); + } - #ifdef DEBUG - printf("IM: Loaded '%s'\n", lang_file); - #endif - break; + im_fullreset(im); + + #ifdef DEBUG + printf("IM: Loaded '%s'\n", lang_file); + #endif + break; + } } if(im->request != IM_REQ_TRANSLATE) return 0; @@ -1015,7 +1020,6 @@ static int im_event_zh_tw(IM_DATA* im, SDL_keysym ks) */ static int im_event_th(IM_DATA* im, SDL_keysym ks) { - static const char* lang_file = IMDIR "th.im"; enum { SEC_ENGLISH, SEC_THAI, SEC_TOTAL }; static CHARMAP cm; @@ -1045,20 +1049,25 @@ static int im_event_th(IM_DATA* im, SDL_keysym ks) break; case IM_REQ_INIT: /* Initialization */ - charmap_init(&cm); + { + char lang_file[MAX_PATH]; + snprintf(lang_file, sizeof(lang_file), "%s/im/th.im", DATA_PREFIX); - if(charmap_load(&cm, lang_file)) { - fprintf(stderr, "Unable to load %s, defaulting to im_event_c\n", lang_file); - im->lang = LANG_DEFAULT; - return im_event_c(im, ks); - } + charmap_init(&cm); - im_fullreset(im); + if(charmap_load(&cm, lang_file)) { + fprintf(stderr, "Unable to load %s, defaulting to im_event_c\n", lang_file); + im->lang = LANG_DEFAULT; + return im_event_c(im, ks); + } - #ifdef DEBUG - printf("IM: Loaded '%s'\n", lang_file); - #endif - break; + im_fullreset(im); + + #ifdef DEBUG + printf("IM: Loaded '%s'\n", lang_file); + #endif + break; + } } if(im->request != IM_REQ_TRANSLATE) return 0; @@ -1201,7 +1210,6 @@ static int im_event_th(IM_DATA* im, SDL_keysym ks) */ static int im_event_ja(IM_DATA* im, SDL_keysym ks) { - static const char* lang_file = IMDIR "ja.im"; enum { SEC_ENGLISH, SEC_HIRAGANA, SEC_KATAKANA, SEC_TOTAL }; static CHARMAP cm; @@ -1231,20 +1239,25 @@ static int im_event_ja(IM_DATA* im, SDL_keysym ks) break; case IM_REQ_INIT: /* Initialization */ - charmap_init(&cm); + { + char lang_file[MAX_PATH]; + snprintf(lang_file, sizeof(lang_file), "%s/im/ja.im", DATA_PREFIX); - if(charmap_load(&cm, lang_file)) { - fprintf(stderr, "Unable to load %s, defaulting to im_event_c\n", lang_file); - im->lang = LANG_DEFAULT; - return im_event_c(im, ks); - } + charmap_init(&cm); - im_fullreset(im); + if(charmap_load(&cm, lang_file)) { + fprintf(stderr, "Unable to load %s, defaulting to im_event_c\n", lang_file); + im->lang = LANG_DEFAULT; + return im_event_c(im, ks); + } - #ifdef DEBUG - printf("IM: Loaded '%s'\n", lang_file); - #endif - break; + im_fullreset(im); + + #ifdef DEBUG + printf("IM: Loaded '%s'\n", lang_file); + #endif + break; + } } if(im->request != IM_REQ_TRANSLATE) return 0; @@ -1412,7 +1425,6 @@ static int im_event_ko_isvowel(CHARMAP* cm, wchar_t c) */ static int im_event_ko(IM_DATA* im, SDL_keysym ks) { - static const char* lang_file = IMDIR "ko.im"; enum { SEC_ENGLISH, SEC_HANGUL, SEC_TOTAL }; static CHARMAP cm; @@ -1442,20 +1454,25 @@ static int im_event_ko(IM_DATA* im, SDL_keysym ks) break; case IM_REQ_INIT: /* Initialization */ - charmap_init(&cm); + { + char lang_file[MAX_PATH]; + snprintf(lang_file, sizeof(lang_file), "%s/im/ko.im", DATA_PREFIX); - if(charmap_load(&cm, lang_file)) { - fprintf(stderr, "Unable to load %s, defaulting to im_event_c\n", lang_file); - im->lang = LANG_DEFAULT; - return im_event_c(im, ks); - } + charmap_init(&cm); - im_fullreset(im); + if(charmap_load(&cm, lang_file)) { + fprintf(stderr, "Unable to load %s, defaulting to im_event_c\n", lang_file); + im->lang = LANG_DEFAULT; + return im_event_c(im, ks); + } - #ifdef DEBUG - printf("IM: Loaded '%s'\n", lang_file); - #endif - break; + im_fullreset(im); + + #ifdef DEBUG + printf("IM: Loaded '%s'\n", lang_file); + #endif + break; + } } if(im->request != IM_REQ_TRANSLATE) return 0; |