[hackers] [dmenu] fix crash when XOpenIM returns NULL || Hiltjo Posthuma

From: <git_AT_suckless.org>
Date: Tue, 12 Feb 2019 19:12:10 +0100 (CET)

commit f5036b90efd9423d805923a0bc73cd54e30e72ab
Author: Hiltjo Posthuma <hiltjo_AT_codemadness.org>
AuthorDate: Tue Feb 12 19:10:43 2019 +0100
Commit: Hiltjo Posthuma <hiltjo_AT_codemadness.org>
CommitDate: Tue Feb 12 19:10:43 2019 +0100

    fix crash when XOpenIM returns NULL
    
    for example when IME variables are set, but the program is not started (yet).

diff --git a/dmenu.c b/dmenu.c
index f803149..ae56f4f 100644
--- a/dmenu.c
+++ b/dmenu.c
_AT_@ -664,8 +664,17 @@ setup(void)
                             CWOverrideRedirect | CWBackPixel | CWEventMask, &swa);
         XSetClassHint(dpy, win, &ch);
 
- /* open input methods */
- xim = XOpenIM(dpy, NULL, NULL, NULL);
+
+ /* input methods */
+ if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL) {
+ XSetLocaleModifiers("_AT_im=local");
+ if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL) {
+ XSetLocaleModifiers("_AT_im=");
+ if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL)
+ die("XOpenIM failed. Could not open input device.\n");
+ }
+ }
+
         xic = XCreateIC(xim, XNInputStyle, XIMPreeditNothing | XIMStatusNothing,
                         XNClientWindow, win, XNFocusWindow, win, NULL);
 
Received on Tue Feb 12 2019 - 19:12:10 CET

This archive was generated by hypermail 2.3.0 : Tue Feb 12 2019 - 19:12:25 CET