aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Lohmann <20h@r-36.net>2013-01-01 13:15:43 +0100
committerChristoph Lohmann <20h@r-36.net>2013-01-01 13:15:43 +0100
commit4e14a4a97f7f7ef134fdc25d2fa34c8db7bb6e6c (patch)
tree6a6712face3c4eea19940838bd2d0072120d384a
parentc99db5b0170555c5bb0359ac8a8229cdada64b30 (diff)
downloadst-4e14a4a97f7f7ef134fdc25d2fa34c8db7bb6e6c.tar.gz
st-4e14a4a97f7f7ef134fdc25d2fa34c8db7bb6e6c.tar.bz2
A fix for the XopenIM() errors.
-rw-r--r--st.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/st.c b/st.c
index 7ceed75..163f160 100644
--- 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);