1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
From 5648239f18ac041fe1a93b8b784bf3ca8e1d83bc Mon Sep 17 00:00:00 2001
From: nick black <nick.black@sprezzatech.com>
Date: Fri, 8 Feb 2013 05:52:13 -0500
Subject: [PATCH] fix highly illegal return of int as char *, and less worrying
set-but-not-used warning
---
src/twiddler.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/twiddler.c b/src/twiddler.c
index 1d2bd50..972a616 100644
--- a/src/twiddler.c
+++ b/src/twiddler.c
@@ -250,7 +250,6 @@ static inline int twiddler_use_item(char *item)
int twiddler_key(unsigned long message)
{
char **table = twiddler_get_table(message);
- char *val;
/*
* These two are needed to avoid transmitting single keys when typing
* chords. When the number of keys being held down decreases, data
@@ -269,7 +268,6 @@ int twiddler_key(unsigned long message)
if (!table) return 0;
message &= 0xff;
- val = table[message];
if ((message < last_message) && !marked) { /* ok, do it */
marked++; /* don't retransmit on release */
@@ -428,8 +426,11 @@ char *twiddler_rest_to_value(char *s)
buf[ibuf]='\0';
return strdup(buf);
}
- if (*ptr == '\\')
- return (char *)twiddler_escape_sequence(ptr+1, &len /* unused */);
+ if (*ptr == '\\') {
+ buf[ibuf++] = twiddler_escape_sequence(ptr+1, &len /* unused */);
+ buf[ibuf] = '\0';
+ return strdup(buf);
+ }
if (strlen(ptr)==1) return ((char *)((unsigned long)*ptr & 0xFF));
|