diff --git a/tests/xim_live_test.c b/tests/xim_live_test.c index 5c100dc..f1a008d 100644 --- a/tests/xim_live_test.c +++ b/tests/xim_live_test.c @@ -129,10 +129,10 @@ pumpinput(Display *dpy, XIC ic, char *commit, size_t cap, int timeout) continue; n = Xutf8LookupString(ic, &ev.xkey, buf, sizeof buf - 1, &sym, &status); - if(n < 0 || ((status == XLookupChars || status == XLookupBoth) && + if(n < 0 || (status == XLookupChars && ((size_t)n >= cap || commit == NULL))) return 0; - if((status == XLookupChars || status == XLookupBoth) && n != 0){ + if(status == XLookupChars && n != 0){ memcpy(commit, buf, n); commit[n] = '\0'; } @@ -273,7 +273,7 @@ sendkey(Display *dpy, XIC ic, Window win, KeySym sym, unsigned int state, if(n < 0) return fail("Xutf8LookupString failed for keysym %#lx", (unsigned long)sym); - if((status == XLookupChars || status == XLookupBoth) && n != 0){ + if(status == XLookupChars && n != 0){ if((size_t)n >= cap) return fail("commit buffer overflow"); memcpy(commit, buf, n);