Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/im.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/im.c')
-rw-r--r--src/im.c113
1 files changed, 65 insertions, 48 deletions
diff --git a/src/im.c b/src/im.c
index cfbb746..4c869f9 100644
--- a/src/im.c
+++ b/src/im.c
@@ -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;