A fix for the XopenIM() errors. - st - Simple Terminal
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 4e14a4a97f7f7ef134fdc25d2fa34c8db7bb6e6c
 (DIR) parent c99db5b0170555c5bb0359ac8a8229cdada64b30
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Tue,  1 Jan 2013 13:15:43 +0100
       
       A fix for the XopenIM() errors.
       
       Diffstat:
         st.c                                |      14 +++++++++++---
       
       1 file changed, 11 insertions(+), 3 deletions(-)
       ---
 (DIR) 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);