st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit 4e14a4a97f7f7ef134fdc25d2fa34c8db7bb6e6c
parent c99db5b0170555c5bb0359ac8a8229cdada64b30
Author: Christoph Lohmann <20h@r-36.net>
Date:   Tue,  1 Jan 2013 13:15:43 +0100

A fix for the XopenIM() errors.

Diffstat:
Mst.c | 14+++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/st.c b/st.c
@@ -2503,9 +2503,17 @@ xinit(void) {
     xw.draw = XftDrawCreate(xw.dpy, xw.buf, xw.vis, xw.cmap);
 
     /* input methods */
-    xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL);
-    if(xw.xim == NULL)
-        die("XOpenIM failed. Could not open input device.\n");
+    if((xw.xim =  XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) {
+        XSetLocaleModifiers("@im=local");
+        if((xw.xim =  XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) {
+            XSetLocaleModifiers("@im=");
+            if((xw.xim = XOpenIM(xw.dpy,
+                    NULL, NULL, NULL)) == NULL) {
+                die("XOpenIM failed. Could not open input"
+                    " device.\n");
+            }
+        }
+    }
     xw.xic = XCreateIC(xw.xim, XNInputStyle, XIMPreeditNothing
                        | XIMStatusNothing, XNClientWindow, xw.win,
                        XNFocusWindow, xw.win, NULL);