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) \