From 8b464f5c4a27f0811b13226b9dcf099a117bce5f Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 27 Jul 2011 07:01:18 +0000 Subject: [PATCH] complete work for xim support in e - so e sets up env vars right.. and scim, uim and iimf are set to use xim compat modules for ecore. SVN revision: 61794 --- data/input_methods/iiimf.imc | Bin 507 -> 584 bytes data/input_methods/scim.imc | Bin 250 -> 279 bytes data/input_methods/uim.imc | Bin 244 -> 273 bytes src/bin/e_imc_main.c | 30 ++++++++++++++++++++++-------- src/bin/e_intl.c | 5 +++++ src/bin/e_intl_data.c | 2 ++ src/bin/e_intl_data.h | 9 +++++---- 7 files changed, 34 insertions(+), 12 deletions(-) diff --git a/data/input_methods/iiimf.imc b/data/input_methods/iiimf.imc index f0c4e2840e009bff155d3bbd58f3c993b43d23b6..2e37f8123e709c355b56de0b8682734108a30085 100644 GIT binary patch literal 584 zcmZ9}y-EW?5Ww+``7q{8M6mV&d#&kEKneRE6k}-pS`>RMyEg!jB`?y5#2f-(Wt*dgO+% zOKcBo30uSVvAVEN>;UTsd&7p9yyG65U~SR&g2} zYUBiVjolbHrwW=(YB=q8Yf&Dh3mq$yolIS1wHxF~6z5rL`l{e`9p__zVLH2DtGAOl r9vBeJt4*>WRf0P3^&H_pdsh1omg^1bx>)yn=0)9Rz9{Mz^9AAuXA8H) literal 507 zcmZ9}y-EW?5Ww+?F)=27G%2ja%EHRVQV;{;5$x?wz1vHcWbeGVkpnBAz}C(OkUWC; zI99%ap#Sv@3@!{a^Sjx-J#P17`&2|4#0Ke!JguYAC$AD=-SBLO-1+`n)H7_4+*bC8 z?PFbK2iPIjQuc`*VOz@Hu>q#v@q!JpO*Qw0UH+SU#;&lQnp%HiZ0H?#MZ_6wKHO^bu#jk0Io>q)0)a8lhP|ZvF>>6y;Ka@%yQcA z)~Y_rR3;Id-_CvPj2{04crfK*Ng1XruhqXe`_d*})@V}OQ_(x6Ex2apI N4|~>B-=$tBegFykq1yle diff --git a/data/input_methods/scim.imc b/data/input_methods/scim.imc index 6873e5a13059726107e6d9fea14c5b6e8e345251..d38eea20f11ec41e187f6b5505a9c4a0c6fef52a 100644 GIT binary patch delta 86 zcmeyxIGssX?m52`0|Nsi5QBgQ5Wk0F6(G$5#0;6a$qddO-YL%~>Z&s`PYlhM5Cw{+ bCg&HW#%JcH#pmXyl;)%|RAlB(+;0s4#Z&s`O$^PS_|Oah DJXH)Y diff --git a/data/input_methods/uim.imc b/data/input_methods/uim.imc index 2913fb8b6135539da998d8529b5d4d1030d2cf6f..cd17cdbb7965cac6ee9fa9da80c49d08d8231582 100644 GIT binary patch delta 84 zcmeyuIFU(L?m52`0|Nsi5QBgQ5Wj?C6(G$5#0;6a$qddO-YE|!>Z&s`PYlf#69tN< ZCg&HW#%JcH#pmXyl;)%|R7~7y4FHz26LSCn delta 61 zcmbQp^o3DZ?m52`0|Nsi5QBgQ5TAi!6(G$5#0;6a$qddO-YG{W>Z&s`O$^PRc-I5~ DH-8KV diff --git a/src/bin/e_imc_main.c b/src/bin/e_imc_main.c index 5ba44cc65..0990fb046 100644 --- a/src/bin/e_imc_main.c +++ b/src/bin/e_imc_main.c @@ -21,6 +21,7 @@ main(int argc, char **argv) char *set_gtk_im_module = NULL; char *set_qt_im_module = NULL; char *set_xmodifiers = NULL; + char *set_ecore_imf_module = NULL; int list = 0; /* handle some command-line parameters */ @@ -68,6 +69,13 @@ main(int argc, char **argv) valid_args++; write_ops++; } + else if ((!strcmp(argv[i], "-set-ecore-imf-module")) && (i < (argc - 1))) + { + i++; + set_ecore_imf_module = argv[i]; + valid_args++; + write_ops++; + } else if ((!strcmp(argv[i], "-h")) || (!strcmp(argv[i], "-help")) || (!strcmp(argv[i], "--h")) || @@ -115,7 +123,8 @@ main(int argc, char **argv) if (!ef) { - printf("ERROR: cannot open file %s for READ/WRITE (%d:%s)\n", file, errno, strerror(errno)); + printf("ERROR: cannot open file %s for READ/WRITE (%i:%s)\n", + file, errno, strerror(errno)); return -1; } @@ -133,6 +142,7 @@ main(int argc, char **argv) write_imc->gtk_im_module = read_imc->gtk_im_module; write_imc->qt_im_module = read_imc->qt_im_module; write_imc->xmodifiers = read_imc->xmodifiers; + write_imc->ecore_imf_module = read_imc->ecore_imf_module; write_imc->e_im_exec = read_imc->e_im_exec; write_imc->e_im_setup_exec = read_imc->e_im_setup_exec; } @@ -145,6 +155,8 @@ main(int argc, char **argv) write_imc->qt_im_module = set_qt_im_module; if (set_xmodifiers) write_imc->xmodifiers = set_xmodifiers; + if (set_ecore_imf_module) + write_imc->ecore_imf_module = set_ecore_imf_module; if (set_exe) write_imc->e_im_exec = set_exe; if (set_setup) @@ -159,13 +171,14 @@ main(int argc, char **argv) if (list) { printf("Config File List:\n"); - printf("Config Version:\t%d\n", read_imc->version); - printf("Config Name:\t%s\n", read_imc->e_im_name); - printf("Command Line:\t%s\n", read_imc->e_im_exec); - printf("Setup Line:\t%s\n", read_imc->e_im_setup_exec); - printf("gtk_im_module:\t%s\n", read_imc->gtk_im_module); - printf("qt_im_module:\t%s\n", read_imc->qt_im_module); - printf("xmodifiers:\t%s\n", read_imc->xmodifiers); + printf("Config Version: %i\n", read_imc->version); + printf("Config Name: %s\n", read_imc->e_im_name); + printf("Command Line: %s\n", read_imc->e_im_exec); + printf("Setup Line: %s\n", read_imc->e_im_setup_exec); + printf("gtk_im_module: %s\n", read_imc->gtk_im_module); + printf("qt_im_module: %s\n", read_imc->qt_im_module); + printf("xmodifiers: %s\n", read_imc->xmodifiers); + printf("ecore_imf_module: %s\n", read_imc->ecore_imf_module); } e_intl_input_method_config_free(read_imc); @@ -186,6 +199,7 @@ _e_help(void) " -set-setup EXE Set the setup application execute line\n" " -set-gtk-im-module Set the gtk_im_module env var\n" " -set-qt-im-module Set the qt_im_module env var\n" + " -set-ecore-imf-module Set the ecore_imf_module env var\n" " -set-xmodifiers Set the xmodifiers env var\n" " -list List Contents of Input Method Config file\n" ); diff --git a/src/bin/e_intl.c b/src/bin/e_intl.c index af32ee335..c150f685d 100644 --- a/src/bin/e_intl.c +++ b/src/bin/e_intl.c @@ -11,6 +11,7 @@ static char *_e_intl_language_alias = NULL; static char *_e_intl_orig_xmodifiers = NULL; static char *_e_intl_orig_qt_im_module = NULL; static char *_e_intl_orig_gtk_im_module = NULL; +static char *_e_intl_orig_ecore_imf_module = NULL; static const char *_e_intl_imc_personal_path = NULL; static const char *_e_intl_imc_system_path = NULL; @@ -59,6 +60,7 @@ e_intl_init(void) if ((s = getenv("GTK_IM_MODULE"))) _e_intl_orig_gtk_im_module = strdup(s); if ((s = getenv("QT_IM_MODULE"))) _e_intl_orig_qt_im_module = strdup(s); if ((s = getenv("XMODIFIERS"))) _e_intl_orig_xmodifiers = strdup(s); + if ((s = getenv("ECORE_IMF_MODULE"))) _e_intl_orig_ecore_imf_module = strdup(s); return 1; } @@ -72,6 +74,7 @@ e_intl_shutdown(void) E_FREE(_e_intl_orig_gtk_im_module); E_FREE(_e_intl_orig_qt_im_module); E_FREE(_e_intl_orig_xmodifiers); + E_FREE(_e_intl_orig_ecore_imf_module); if (_e_intl_imc_personal_path) eina_stringshare_del(_e_intl_imc_personal_path); @@ -309,6 +312,7 @@ e_intl_input_method_set(const char *imc_path) e_util_env_set("GTK_IM_MODULE", _e_intl_orig_gtk_im_module); e_util_env_set("QT_IM_MODULE", _e_intl_orig_qt_im_module); e_util_env_set("XMODIFIERS", _e_intl_orig_xmodifiers); + e_util_env_set("ECORE_IMF_MODULE", _e_intl_orig_ecore_imf_module); } if (imc_path) @@ -327,6 +331,7 @@ e_intl_input_method_set(const char *imc_path) e_util_env_set("GTK_IM_MODULE", imc->gtk_im_module); e_util_env_set("QT_IM_MODULE", imc->qt_im_module); e_util_env_set("XMODIFIERS", imc->xmodifiers); + e_util_env_set("ECORE_IMF_MODULE", imc->ecore_imf_module); E_EXE_STOP(_e_intl_input_method_exec); diff --git a/src/bin/e_intl_data.c b/src/bin/e_intl_data.c index 9a230144d..bd57c490c 100644 --- a/src/bin/e_intl_data.c +++ b/src/bin/e_intl_data.c @@ -15,6 +15,7 @@ e_intl_data_init(void) E_CONFIG_VAL(_e_intl_input_method_config_edd, E_Input_Method_Config, gtk_im_module, STR); E_CONFIG_VAL(_e_intl_input_method_config_edd, E_Input_Method_Config, qt_im_module, STR); E_CONFIG_VAL(_e_intl_input_method_config_edd, E_Input_Method_Config, xmodifiers, STR); + E_CONFIG_VAL(_e_intl_input_method_config_edd, E_Input_Method_Config, ecore_imf_module, STR); E_CONFIG_VAL(_e_intl_input_method_config_edd, E_Input_Method_Config, e_im_exec, STR); E_CONFIG_VAL(_e_intl_input_method_config_edd, E_Input_Method_Config, e_im_setup_exec, STR); @@ -66,6 +67,7 @@ e_intl_input_method_config_free(E_Input_Method_Config *imc) if (imc->gtk_im_module) eina_stringshare_del(imc->gtk_im_module); if (imc->qt_im_module) eina_stringshare_del(imc->qt_im_module); if (imc->xmodifiers) eina_stringshare_del(imc->xmodifiers); + if (imc->ecore_imf_module) eina_stringshare_del(imc->ecore_imf_module); if (imc->e_im_exec) eina_stringshare_del(imc->e_im_exec); if (imc->e_im_setup_exec) eina_stringshare_del(imc->e_im_setup_exec); E_FREE(imc); diff --git a/src/bin/e_intl_data.h b/src/bin/e_intl_data.h index 8798be9ce..07b8650fa 100644 --- a/src/bin/e_intl_data.h +++ b/src/bin/e_intl_data.h @@ -6,7 +6,7 @@ typedef struct _E_Input_Method_Config E_Input_Method_Config; #ifndef E_INTL_DATA_H #define E_INTL_DATA_H -#define E_INTL_INPUT_METHOD_CONFIG_VERSION 2 +#define E_INTL_INPUT_METHOD_CONFIG_VERSION 3 struct _E_Input_Method_Config { @@ -15,14 +15,15 @@ struct _E_Input_Method_Config const char *gtk_im_module; const char *qt_im_module; const char *xmodifiers; + const char *ecore_imf_module; const char *e_im_exec; const char *e_im_setup_exec; }; EINTERN int e_intl_data_init(void); EINTERN int e_intl_data_shutdown(void); -EAPI E_Input_Method_Config *e_intl_input_method_config_read (Eet_File *imc_file); -EAPI int e_intl_input_method_config_write (Eet_File *imc_file, E_Input_Method_Config *imc); -EAPI void e_intl_input_method_config_free (E_Input_Method_Config *imc); +EAPI E_Input_Method_Config *e_intl_input_method_config_read(Eet_File *imc_file); +EAPI int e_intl_input_method_config_write(Eet_File *imc_file, E_Input_Method_Config *imc); +EAPI void e_intl_input_method_config_free(E_Input_Method_Config *imc); #endif #endif