X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=st.c;h=213541f50a0ebb2bbe5873769a4d887b2b6247dc;hb=c9bd58e4dd04e61aa3613eab57ba6fb716a41146;hp=7ceed752d31503f5da36be528dcc0167a476b8f8;hpb=c99db5b0170555c5bb0359ac8a8229cdada64b30;p=st.git diff --git a/st.c b/st.c index 7ceed75..213541f 100644 --- a/st.c +++ b/st.c @@ -436,7 +436,7 @@ typedef struct { * the current length of used elements. */ -static Fontcache frc[2048]; +static Fontcache frc[1024]; static int frccur = -1, frclen = 0; ssize_t @@ -1390,7 +1390,7 @@ tsetattr(int *attr, int l) { case 1: term.c.attr.mode |= ATTR_BOLD; break; - case 3: /* enter standout (highlight) */ + case 3: term.c.attr.mode |= ATTR_ITALIC; break; case 4: @@ -1406,7 +1406,7 @@ tsetattr(int *attr, int l) { case 22: term.c.attr.mode &= ~ATTR_BOLD; break; - case 23: /* leave standout (highlight) mode */ + case 23: term.c.attr.mode &= ~ATTR_ITALIC; break; case 24: @@ -2497,15 +2497,23 @@ xinit(void) { /* double buffering */ if(!XdbeQueryExtension(xw.dpy, &major, &minor)) die("Xdbe extension is not present\n"); - xw.buf = XdbeAllocateBackBufferName(xw.dpy, xw.win, XdbeCopied); + xw.buf = XdbeAllocateBackBufferName(xw.dpy, xw.win, XdbeBackground); /* Xft rendering context */ 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);