Xinqi Bao's Git
projects
/
st.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
7a4eefe
)
Simplify Mod1 logic in kpress(), eliminating locals and a memcpy.
author
Mark Edgar <
[email protected]
>
Sat, 5 Oct 2013 09:45:17 +0000
(11:45 +0200)
committer
Roberto E. Vargas Caballero <
[email protected]
>
Mon, 7 Oct 2013 18:56:51 +0000
(20:56 +0200)
st.c
diff
|
blob
|
history
diff --git
a/st.c
b/st.c
index
77ea0c8
..
331509f
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-3563,8
+3563,8
@@
void
kpress(XEvent *ev) {
XKeyEvent *e = &ev->xkey;
KeySym ksym;
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;
long c;
Status status;
Shortcut *bp;
@@
-3572,7
+3572,7
@@
kpress(XEvent *ev) {
if(IS_SET(MODE_KBDLOCK))
return;
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++) {
e->state &= ~Mod2Mask;
/* 1. shortcuts */
for(bp = shortcuts; bp < shortcuts + LEN(shortcuts); bp++) {
@@
-3586,26
+3586,23
@@
kpress(XEvent *ev) {
if((customkey = kmap(ksym, e->state))) {
len = strlen(customkey);
memcpy(buf, customkey, len);
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)) {
} 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 {
}
} else {
- *cp++ = '\033';
+ buf[1] = buf[0];
+ buf[0] = '\033';
+ len = 2;
}
}
}
}
-
- memcpy(cp, xstr, len);
- len = cp - buf + len;
}
ttywrite(buf, len);
}
ttywrite(buf, len);