Module Name:    src
Committed By:   jakllsch
Date:           Sat Jan  2 01:24:45 UTC 2016

Modified Files:
        src/lib/libusbhid: usage.c
        src/tests/lib/libusbhid: t_usbhid.c

Log Message:
Teach hid_parse_usage_in_page() how to understand hex literals, in
addition to the usual table lookup.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libusbhid/usage.c
cvs rdiff -u -r1.5 -r1.6 src/tests/lib/libusbhid/t_usbhid.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libusbhid/usage.c
diff -u src/lib/libusbhid/usage.c:1.8 src/lib/libusbhid/usage.c:1.9
--- src/lib/libusbhid/usage.c:1.8	Sat Jan  2 01:04:15 2016
+++ src/lib/libusbhid/usage.c	Sat Jan  2 01:24:44 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: usage.c,v 1.8 2016/01/02 01:04:15 jakllsch Exp $	*/
+/*	$NetBSD: usage.c,v 1.9 2016/01/02 01:24:44 jakllsch Exp $	*/
 
 /*
  * Copyright (c) 1999 Lennart Augustsson <augus...@netbsd.org>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: usage.c,v 1.8 2016/01/02 01:04:15 jakllsch Exp $");
+__RCSID("$NetBSD: usage.c,v 1.9 2016/01/02 01:24:44 jakllsch Exp $");
 
 #include <assert.h>
 #include <ctype.h>
@@ -214,7 +214,6 @@ hid_parse_usage_page(const char *name)
 	return -1;
 }
 
-/* XXX handle hex */
 int
 hid_parse_usage_in_page(const char *name)
 {
@@ -231,6 +230,9 @@ hid_parse_usage_in_page(const char *name
 	for (k = 0; k < npages; k++)
 		if (strncmp(pages[k].name, name, l) == 0)
 			goto found;
+	if (sscanf(name, "%x:%x", &k, &j) == 2) {
+		return (k << 16) | j;
+	}
 	return -1;
  found:
 	sep++;

Index: src/tests/lib/libusbhid/t_usbhid.c
diff -u src/tests/lib/libusbhid/t_usbhid.c:1.5 src/tests/lib/libusbhid/t_usbhid.c:1.6
--- src/tests/lib/libusbhid/t_usbhid.c:1.5	Sat Jan  2 01:04:15 2016
+++ src/tests/lib/libusbhid/t_usbhid.c	Sat Jan  2 01:24:44 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: t_usbhid.c,v 1.5 2016/01/02 01:04:15 jakllsch Exp $	*/
+/*	$NetBSD: t_usbhid.c,v 1.6 2016/01/02 01:24:44 jakllsch Exp $	*/
 
 /*
  * Copyright (c) 2016 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: t_usbhid.c,v 1.5 2016/01/02 01:04:15 jakllsch Exp $");
+__RCSID("$NetBSD: t_usbhid.c,v 1.6 2016/01/02 01:24:44 jakllsch Exp $");
 
 #include <atf-c.h>
 
@@ -158,6 +158,9 @@ ATF_TC_HEAD(check_hid_usage, tc)
 	atf_tc_set_md_var(tc, "descr", "Test libusbhid usage.c");
 }
 
+#define MYx_ATF_CHECK_EQ(d, v) \
+	ATF_CHECK_EQ_MSG(d, v, "== %x", (d))
+
 ATF_TC_BODY(check_hid_usage, tc)
 {
 	char usages_path[PATH_MAX];
@@ -194,6 +197,9 @@ ATF_TC_BODY(check_hid_usage, tc)
 	ATF_CHECK_EQ((uint32_t)hid_parse_usage_in_page(
 	    "Quick_zephyrs_blow_vexing_daft_Jim_:Usage_ID_65535_%"),
 	    0xff2affff);
+
+	MYx_ATF_CHECK_EQ((uint32_t)hid_parse_usage_in_page("0xff2a:0xff1b"),
+	    0xff2aff1b);
 }
 
 #define MYd_ATF_CHECK_EQ(d, v) \

Reply via email to