getevent: Fix a couple of bugs.

Fixed a bug printing the event value when using labels.

Stop trying to print the available codes for EV_SYN because
we cannot actually query them.  EVIOCGBIT(0, size) is a special
case that returns the set of events that are supported, and
EV_SYN == 0.

Change-Id: Iea086ba24300ca0815e4814a3bc5ff60756612c2
This commit is contained in:
Jeff Brown 2011-06-29 20:52:08 -07:00
parent ed6b39cc77
commit f6d0f8af17

View file

@ -82,7 +82,7 @@ static int print_possible_events(int fd, int print_flags)
const char *bit_label;
printf(" events:\n");
for(i = 0; i <= EV_MAX; i++) {
for(i = EV_KEY; i <= EV_MAX; i++) { // skip EV_SYN since we cannot query its available codes
int count = 0;
while(1) {
res = ioctl(fd, EVIOCGBIT(i, bits_size), bits);
@ -97,10 +97,6 @@ static int print_possible_events(int fd, int print_flags)
}
res2 = 0;
switch(i) {
case EV_SYN:
label = "SYN";
bit_labels = syn_labels;
break;
case EV_KEY:
res2 = ioctl(fd, EVIOCGKEY(res), bits + bits_size);
label = "KEY";
@ -252,7 +248,7 @@ static void print_event(int type, int code, int value, int print_flags)
if (value_label)
printf(" %-20.20s", value_label);
else
printf(" %08x ", code);
printf(" %08x ", value);
} else {
printf("%04x %04x %08x", type, code, value);
}