[hackers] [st] Simplify Mod1 logic in kpress(), eliminating locals and a memcpy. || Mark Edgar

From: <git_AT_suckless.org>
Date: Tue, 15 Oct 2013 17:43:17 +0200

commit 02ae3ce6fdc178ca6eb9b10b6447bb56a6513a27
Author: Mark Edgar <medgar123_AT_gmail.com>
Date: Sat Oct 5 11:45:17 2013 +0200

    Simplify Mod1 logic in kpress(), eliminating locals and a memcpy.

diff --git a/st.c b/st.c
index 77ea0c8..331509f 100644
--- a/st.c
+++ b/st.c
_AT_@ -3563,8 +3563,8 @@ void
 kpress(XEvent *ev) {
         XKeyEvent *e = &ev->xkey;
         KeySym ksym;
- char xstr[31], buf[32], *customkey, *cp = buf;
- int len, ret;
+ char buf[32], *customkey;
+ int len;
         long c;
         Status status;
         Shortcut *bp;
_AT_@ -3572,7 +3572,7 @@ kpress(XEvent *ev) {
         if(IS_SET(MODE_KBDLOCK))
                 return;
 
- len = XmbLookupString(xw.xic, e, xstr, sizeof(xstr), &ksym, &status);
+ len = XmbLookupString(xw.xic, e, buf, sizeof buf, &ksym, &status);
         e->state &= ~Mod2Mask;
         /* 1. shortcuts */
         for(bp = shortcuts; bp < shortcuts + LEN(shortcuts); bp++) {
_AT_@ -3586,26 +3586,23 @@ kpress(XEvent *ev) {
         if((customkey = kmap(ksym, e->state))) {
                 len = strlen(customkey);
                 memcpy(buf, customkey, len);
- /* 3. hardcoded (overrides X lookup) */
+ /* 3. composed string from input method */
         } else {
                 if(len == 0)
                         return;
 
                 if(len == 1 && e->state & Mod1Mask) {
                         if(IS_SET(MODE_8BIT)) {
- if(*xstr < 0177) {
- c = *xstr | 0x80;
- ret = utf8encode(&c, cp);
- cp += ret;
- len = 0;
+ if(*buf < 0177) {
+ c = *buf | 0x80;
+ len = utf8encode(&c, buf);
                                 }
                         } else {
- *cp++ = '';
+ buf[1] = buf[0];
+ buf[0] = '';
+ len = 2;
                         }
                 }
-
- memcpy(cp, xstr, len);
- len = cp - buf + len;
         }
 
         ttywrite(buf, len);
Received on Tue Oct 15 2013 - 17:43:17 CEST

This archive was generated by hypermail 2.3.0 : Tue Oct 15 2013 - 17:48:18 CEST