[Toybox] [PATCH] lspci: fix output of device info with new pci.ids

Isaac Dunham ibid.ag at gmail.com
Thu May 22 16:18:16 PDT 2014


lspci: fix output of device info with new pci.ids

With a new pci id database, available at
http://pciids.sourceforge.net/v2.2/pci.ids.bz2
(or also in gzip/uncompressed format),
lspci was frequently ignoring the device.
The fix was to explicitly ignore comments.

--
Reading lspci.c again, memset(toybuf, 0, 4096); is needed because it 
initializes vname/devname to an empty state; removing that line would 
result in garbage text output/repetition of the wrong vendor and device
information.

HTH,
Isaac Dunham

-------------- next part --------------
diff --git a/toys/pending/lspci.c b/toys/pending/lspci.c
index c61f582..f07f8d2 100644
--- a/toys/pending/lspci.c
+++ b/toys/pending/lspci.c
@@ -67,7 +67,8 @@ int find_in_db(char *vendid, char *devid, FILE *fil, char *vname, char *devname)
       strncpy(vname, vtext, strlen(vtext) - 1);
   }
   while (!*devname) {
-    if (!fgets(buf, 255, fil) || *buf != '\t') return 1;
+    if (!fgets(buf, 255, fil) || (*buf != '\t' && *buf != '#')) return 1;
+    if (*buf == '#') continue;
     if ((dtext = id_check_match(devid, buf + 1)))
       strncpy(devname, dtext, strlen(dtext) - 1);
   }


More information about the Toybox mailing list