From owner-svn-src-projects@FreeBSD.ORG Mon Aug 1 13:17:59 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C83E5106566B; Mon, 1 Aug 2011 13:17:59 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B80AD8FC0A; Mon, 1 Aug 2011 13:17:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p71DHxWV098417; Mon, 1 Aug 2011 13:17:59 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p71DHxDn098415; Mon, 1 Aug 2011 13:17:59 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201108011317.p71DHxDn098415@svn.freebsd.org> From: Alexander Motin Date: Mon, 1 Aug 2011 13:17:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r224573 - projects/hid/usr.bin/usbhidctl X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Aug 2011 13:18:00 -0000 Author: mav Date: Mon Aug 1 13:17:59 2011 New Revision: 224573 URL: http://svn.freebsd.org/changeset/base/224573 Log: Concatenate names of all collections on a stack to item name, not only the last one. This makes names match with ones used by usbhidaction. Modified: projects/hid/usr.bin/usbhidctl/usbhid.c Modified: projects/hid/usr.bin/usbhidctl/usbhid.c ============================================================================== --- projects/hid/usr.bin/usbhidctl/usbhid.c Mon Aug 1 12:04:12 2011 (r224572) +++ projects/hid/usr.bin/usbhidctl/usbhid.c Mon Aug 1 13:17:59 2011 (r224573) @@ -67,31 +67,38 @@ parceargs(report_desc_t r, int all, int { struct hid_data *d; struct hid_item h; - u_int32_t colls[100]; - int i, sp, instance; + char colls[1000]; char hname[1000], *tmp1, *tmp2; struct variable *var, **pnext; + int i, instance, cp, t; pnext = &vars; if (all) { if (wflag) errx(1, "Must not specify -w to read variables"); - sp = 0; + cp = 0; for (d = hid_start_parse(r, 1<name, "%s:%s.%s:%s", - hid_usage_page(HID_PAGE(colls[sp])), - hid_usage_in_page(colls[sp]), + asprintf(&var->name, "%s%s%s:%s", + colls, colls[0] != 0 ? "." : "", hid_usage_page(HID_PAGE(h.usage)), hid_usage_in_page(h.usage)); var->h = h; @@ -120,29 +127,37 @@ parceargs(report_desc_t r, int all, int pnext = &var->next; instance = 0; - sp = 0; + cp = 0; for (d = hid_start_parse(r, 1<name) != 0) { - snprintf(hname, sizeof(hname), "%s:%s.%s:%s", - hid_usage_page(HID_PAGE(colls[sp])), - hid_usage_in_page(colls[sp]), - hid_usage_page(HID_PAGE(h.usage)), - hid_usage_in_page(h.usage)); - if (strcmp(hname, var->name) != 0) + t = strlen(hname) - strlen(var->name); + if (t > 0) { + if (strcmp(hname + t, var->name) != 0) continue; - } + if (hname[t - 1] != '.') + continue; + } else if (strcmp(hname, var->name) != 0) + continue; if (var->instance != instance++) continue; var->h = h; @@ -150,7 +165,7 @@ parceargs(report_desc_t r, int all, int } hid_end_parse(d); if (var->h.usage == 0) - errx(1, "Unknown usage '%s'", var->name); + errx(1, "Unknown item '%s'", var->name); } }