summaryrefslogtreecommitdiffstats
path: root/source/t/xfig/xfig.3.2.3d-xim.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/t/xfig/xfig.3.2.3d-xim.diff')
-rw-r--r--source/t/xfig/xfig.3.2.3d-xim.diff33
1 files changed, 33 insertions, 0 deletions
diff --git a/source/t/xfig/xfig.3.2.3d-xim.diff b/source/t/xfig/xfig.3.2.3d-xim.diff
new file mode 100644
index 000000000..918d00d9f
--- /dev/null
+++ b/source/t/xfig/xfig.3.2.3d-xim.diff
@@ -0,0 +1,33 @@
+--- xfig.3.2.3d/d_text.c
++++ xfig.3.2.3d/d_text.c
+@@ -1485,6 +1485,7 @@
+ int i;
+ XVaNestedList preedit_att, status_att;
+ XPoint spot;
++ char *modifier_list;
+
+ preferred_style = style_notuseful;
+ if (strncasecmp(appres.xim_input_style, "OverTheSpot", 3) == 0)
+@@ -1501,6 +1502,10 @@
+ if (preferred_style == style_notuseful) return;
+
+ if (appres.DEBUG) fprintf(stderr, "initialize_input_method()...\n");
++
++ if((modifier_list = XSetLocaleModifiers("")) == NULL) {
++ /* printf("Warning: XSetLocaleModifiers() failed.\n"); */
++ }
+
+ xim_im = XOpenIM(XtDisplay(w), NULL, NULL, NULL);
+ if (xim_im == NULL) {
+@@ -1517,7 +1522,10 @@
+ if (xim_style == 0) xim_style = style_root;
+ }
+ }
+- if (xim_style != preferred_style) {
++ if (xim_style != preferred_style
++ && *modifier_list != '\0'
++ && ! strstr(modifier_list,"@im=local")
++ && ! strstr(modifier_list,"@im=none")) {
+ fprintf(stderr, "xfig: this input-method doesn't support %s input style\n",
+ appres.xim_input_style);
+ if (xim_style == 0) {