aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiltjo Posthuma <hiltjo@codemadness.org>2019-02-12 19:10:43 +0100
committerHiltjo Posthuma <hiltjo@codemadness.org>2019-02-12 19:10:43 +0100
commitf5036b90efd9423d805923a0bc73cd54e30e72ab (patch)
treef4749d145a5296546aa98e041f9c0fbb501a4f60
parent153aaf88bf9bf5c6c4b118bd871f8cf1eafdcab5 (diff)
fix crash when XOpenIM returns NULL
for example when IME variables are set, but the program is not started (yet).
-rw-r--r--dmenu.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/dmenu.c b/dmenu.c
index f803149..ae56f4f 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -664,8 +664,17 @@ setup(void)
664 CWOverrideRedirect | CWBackPixel | CWEventMask, &swa); 664 CWOverrideRedirect | CWBackPixel | CWEventMask, &swa);
665 XSetClassHint(dpy, win, &ch); 665 XSetClassHint(dpy, win, &ch);
666 666
667 /* open input methods */ 667
668 xim = XOpenIM(dpy, NULL, NULL, NULL); 668 /* input methods */
669 if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL) {
670 XSetLocaleModifiers("@im=local");
671 if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL) {
672 XSetLocaleModifiers("@im=");
673 if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL)
674 die("XOpenIM failed. Could not open input device.\n");
675 }
676 }
677
669 xic = XCreateIC(xim, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, 678 xic = XCreateIC(xim, XNInputStyle, XIMPreeditNothing | XIMStatusNothing,
670 XNClientWindow, win, XNFocusWindow, win, NULL); 679 XNClientWindow, win, XNFocusWindow, win, NULL);
671 680