[flashrom] [commit] r684 - trunk

svn at flashrom.org svn at flashrom.org
Thu Aug 13 13:38:45 CEST 2009


Author: hailfinger
Date: 2009-08-13 13:38:44 +0200 (Thu, 13 Aug 2009)
New Revision: 684

Modified:
   trunk/flashrom.c
Log:
Generate the usage message by walking the list of available programmers.
This makes sure compiled out programmers are not listed.

Tested, usage output is identical to the hardcoded variant.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Acked-by: Stefan Reinauer <stepan at coresystems.de>


Modified: trunk/flashrom.c
===================================================================
--- trunk/flashrom.c	2009-08-12 18:25:24 UTC (rev 683)
+++ trunk/flashrom.c	2009-08-13 11:38:44 UTC (rev 684)
@@ -488,6 +488,11 @@
 
 void usage(const char *name)
 {
+	const char *pname;
+	int pnamelen;
+	int remaining = 0;
+	enum programmer p;
+
 	printf("usage: %s [-VfLzhR] [-E|-r file|-w file|-v file] [-c chipname]\n"
               "       [-m [vendor:]part] [-l file] [-i image] [-p programmer]\n\n", name);
 
@@ -510,9 +515,33 @@
 	     "   -i | --image <name>:              only flash image name from flash layout\n"
 	     "   -L | --list-supported:            print supported devices\n"
 	     "   -z | --list-supported-wiki:       print supported devices in wiki syntax\n"
-	     "   -p | --programmer <name>:         specify the programmer device\n"
-	     "                                     (internal, dummy, nic3com, satasii,\n"
-	     "                                     it87spi, ft2232spi, serprog)\n"
+	     "   -p | --programmer <name>:         specify the programmer device");
+
+	for (p = 0; p < PROGRAMMER_INVALID; p++) {
+		pname = programmer_table[p].name;
+		pnamelen = strlen(pname);
+		if (remaining - pnamelen - 2 < 0) {
+			printf("\n                                     ");
+			remaining = 43;
+		} else {
+			printf(" ");
+			remaining--;
+		}
+		if (p == 0) {
+			printf("(");
+			remaining--;
+		}
+		printf("%s", pname);
+		remaining -= pnamelen;
+		if (p < PROGRAMMER_INVALID - 1) {
+			printf(",");
+			remaining--;
+		} else {
+			printf(")\n");
+		}
+	}
+		
+	printf(
 	     "   -h | --help:                      print this help text\n"
 	     "   -R | --version:                   print the version (release)\n"
 	     "\nYou can specify one of -E, -r, -w, -v or no operation. If no operation is\n"





More information about the flashrom mailing list