fix crash when XOpenIM returns NULL
for example when IME variables are set, but the program is not started (yet).
This commit is contained in:
		
							
								
								
									
										13
									
								
								dmenu.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								dmenu.c
									
									
									
									
									
								
							| @ -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("@im=local"); | ||||
| 		if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL) { | ||||
| 			XSetLocaleModifiers("@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); | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user