[flashrom] [commit] r1484 - trunk

repository service svn at flashrom.org
Wed Jan 11 03:10:12 CET 2012


Author: hailfinger
Date: Wed Jan 11 03:10:11 2012
New Revision: 1484
URL: http://flashrom.org/trac/flashrom/changeset/1484

Log:
Postpone layout file reading

Layout file reading should happen after option parsing like all other
file accesses.
Guard against multiple --layout parameters.

Followup fix for r1483: Remove -m short option from getopt.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Acked-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>

Modified:
   trunk/cli_classic.c

Modified: trunk/cli_classic.c
==============================================================================
--- trunk/cli_classic.c	Wed Jan  4 01:48:27 2012	(r1483)
+++ trunk/cli_classic.c	Wed Jan 11 03:10:11 2012	(r1484)
@@ -177,7 +177,7 @@
 	enum programmer prog = PROGRAMMER_INVALID;
 	int ret = 0;
 
-	static const char optstring[] = "r:Rw:v:nVEfc:m:l:i:p:Lzh";
+	static const char optstring[] = "r:Rw:v:nVEfc:l:i:p:Lzh";
 	static const struct option long_options[] = {
 		{"read",		1, NULL, 'r'},
 		{"write",		1, NULL, 'w'},
@@ -198,6 +198,7 @@
 	};
 
 	char *filename = NULL;
+	char *layoutfile = NULL;
 	char *tempstr = NULL;
 	char *pparam = NULL;
 
@@ -273,9 +274,12 @@
 			force = 1;
 			break;
 		case 'l':
-			tempstr = strdup(optarg);
-			if (read_romlayout(tempstr))
+			if (layoutfile) {
+				fprintf(stderr, "Error: --layout specified "
+					"more than once. Aborting.\n");
 				cli_classic_abort_usage();
+			}
+			layoutfile = strdup(optarg);
 			break;
 		case 'i':
 			tempstr = strdup(optarg);
@@ -373,9 +377,6 @@
 		cli_classic_abort_usage();
 	}
 
-	if (process_include_args())
-		cli_classic_abort_usage();
-
 	/* FIXME: Print the actions flashrom will take. */
 
 	if (list_supported) {
@@ -390,6 +391,11 @@
 	}
 #endif
 
+	if (layoutfile && read_romlayout(layoutfile))
+		cli_classic_abort_usage();
+	if (process_include_args())
+		cli_classic_abort_usage();
+
 	/* Does a chip with the requested name exist in the flashchips array? */
 	if (chip_to_probe) {
 		for (flash = flashchips; flash && flash->name; flash++)




More information about the flashrom mailing list