dmenu: small XmbLookupString code improvements
authorHiltjo Posthuma <hiltjo@codemadness.org>
Wed, 26 Oct 2022 07:43:17 +0000 (09:43 +0200)
committerHiltjo Posthuma <hiltjo@codemadness.org>
Wed, 26 Oct 2022 07:43:17 +0000 (09:43 +0200)
* Increase the length of composed strings to the same limit as st (32 to 64 bytes).
* Initialize ksym to NoSymbol to be safe: currently this is not an issue though.
* Add comments to clarify the return values of XmbLookupString a bit.

dmenu.c

diff --git a/dmenu.c b/dmenu.c
index 7cf253b09a4ddb8136d4b32758fa4c88445e08e2..e7be8af98b94dca791b00707df4c51067c5bfea8 100644 (file)
--- a/dmenu.c
+++ b/dmenu.c
@@ -324,19 +324,19 @@ movewordedge(int dir)
 static void
 keypress(XKeyEvent *ev)
 {
-       char buf[32];
+       char buf[64];
        int len;
-       KeySym ksym;
+       KeySym ksym = NoSymbol;
        Status status;
 
        len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status);
        switch (status) {
        default: /* XLookupNone, XBufferOverflow */
                return;
-       case XLookupChars:
+       case XLookupChars: /* composed string from input method */
                goto insert;
        case XLookupKeySym:
-       case XLookupBoth:
+       case XLookupBoth: /* a KeySym and a string are returned: use keysym */
                break;
        }