Unify programmer parameter extraction

Make programmer_param static by converting all users to extract_programmer_param.
Programmer parameters can no longer be separated with a
colon, they have to be separated with a comma.

Corresponding to flashrom svn r1072.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
diff --git a/buspirate_spi.c b/buspirate_spi.c
index 4dceca5..e0683ec 100644
--- a/buspirate_spi.c
+++ b/buspirate_spi.c
@@ -101,14 +101,14 @@
 	char *speed = NULL;
 	int spispeed = 0x7;
 
-	dev = extract_param(&programmer_param, "dev", ",:");
+	dev = extract_programmer_param("dev");
 	if (!dev || !strlen(dev)) {
 		msg_perr("No serial device given. Use flashrom -p "
 			"buspirate_spi:dev=/dev/ttyUSB0\n");
 		return 1;
 	}
 
-	speed = extract_param(&programmer_param, "spispeed", ",:");
+	speed = extract_programmer_param("spispeed");
 	if (speed) {
 		for (i = 0; spispeeds[i].name; i++)
 			if (!strncasecmp(spispeeds[i].name, speed,
diff --git a/chipset_enable.c b/chipset_enable.c
index 855cd2b..5c16259 100644
--- a/chipset_enable.c
+++ b/chipset_enable.c
@@ -300,7 +300,7 @@
 	int max_decode_fwh_decode = 0;
 	int contiguous = 1;
 
-	idsel = extract_param(&programmer_param, "fwh_idsel", ",:");
+	idsel = extract_programmer_param("fwh_idsel");
 	if (idsel && strlen(idsel)) {
 		fwh_conf = (uint32_t)strtoul(idsel, NULL, 0);
 
diff --git a/dummyflasher.c b/dummyflasher.c
index 456e22d..5f88fc4 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -37,7 +37,7 @@
 
 	msg_pspew("%s\n", __func__);
 
-	bustext = extract_param(&programmer_param, "bus", ",:");
+	bustext = extract_programmer_param("bus");
 	msg_pdbg("Requested buses are: %s\n", bustext ? bustext : "default");
 	if (!bustext)
 		bustext = strdup("parallel+lpc+fwh+spi");
diff --git a/flash.h b/flash.h
index 4e3c9b9..351505c 100644
--- a/flash.h
+++ b/flash.h
@@ -570,7 +570,6 @@
 };
 extern struct decode_sizes max_rom_decode;
 extern int programmer_may_write;
-extern char *programmer_param;
 extern unsigned long flashbase;
 extern int verbose;
 extern const char * const flashrom_version;
@@ -585,6 +584,7 @@
 int min(int a, int b);
 int max(int a, int b);
 char *extract_param(char **haystack, char *needle, char *delim);
+char *extract_programmer_param(char *param_name);
 int check_erased_range(struct flashchip *flash, int start, int len);
 int verify_range(struct flashchip *flash, uint8_t *cmpbuf, int start, int len, char *message);
 int need_erase(uint8_t *have, uint8_t *want, int len, enum write_granularity gran);
diff --git a/flashrom.c b/flashrom.c
index db15ae5..fc78198 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -89,7 +89,7 @@
 ;
 #endif
 
-char *programmer_param = NULL;
+static char *programmer_param = NULL;
 
 /* Supported buses for the current programmer. */
 enum chipbustype buses_supported;
@@ -641,6 +641,11 @@
 	return opt;
 }
 
+char *extract_programmer_param(char *param_name)
+{
+	return extract_param(&programmer_param, param_name, ",");
+}
+
 /* start is an offset to the base address of the flash chip */
 int check_erased_range(struct flashchip *flash, int start, int len)
 {
diff --git a/ft2232_spi.c b/ft2232_spi.c
index 0245c53..1dd2e0c 100644
--- a/ft2232_spi.c
+++ b/ft2232_spi.c
@@ -80,7 +80,7 @@
 	enum ftdi_interface ft2232_interface = INTERFACE_B;
 	char *arg;
 
-	arg = extract_param(&programmer_param, "type", ",:");
+	arg = extract_programmer_param("type");
 	if (arg) {
 		if (!strcasecmp(arg, "2232H"))
 			ft2232_type = FTDI_FT2232H;
@@ -93,7 +93,7 @@
 		}
 	}
 	free(arg);
-	arg = extract_param(&programmer_param, "port", ",:");
+	arg = extract_programmer_param("port");
 	if (arg) {
 		switch (toupper(*arg)) {
 		case 'A':
diff --git a/internal.c b/internal.c
index 188fd5d..7b31e79 100644
--- a/internal.c
+++ b/internal.c
@@ -121,7 +121,7 @@
 	int force_laptop = 0;
 	char *arg;
 
-	arg = extract_param(&programmer_param, "boardenable", ",:");
+	arg = extract_programmer_param("boardenable");
 	if (arg && !strcmp(arg,"force")) {
 		force_boardenable = 1;
 	} else if (arg && !strlen(arg)) {
@@ -135,7 +135,7 @@
 	}
 	free(arg);
 
-	arg = extract_param(&programmer_param, "boardmismatch", ",:");
+	arg = extract_programmer_param("boardmismatch");
 	if (arg && !strcmp(arg,"force")) {
 		force_boardmismatch = 1;
 	} else if (arg && !strlen(arg)) {
@@ -149,7 +149,7 @@
 	}
 	free(arg);
 
-	arg = extract_param(&programmer_param, "laptop", ",:");
+	arg = extract_programmer_param("laptop");
 	if (arg && !strcmp(arg,"force_I_want_a_brick")) {
 		force_laptop = 1;
 	} else if (arg && !strlen(arg)) {
diff --git a/it87spi.c b/it87spi.c
index d314856..eccee0e 100644
--- a/it87spi.c
+++ b/it87spi.c
@@ -143,7 +143,7 @@
 		flashport |= sio_read(port, 0x65);
 		msg_pdbg("Serial flash port 0x%04x\n", flashport);
 		/* Non-default port requested? */
-		portpos = extract_param(&programmer_param, "it87spiport", ",:");
+		portpos = extract_programmer_param("it87spiport");
 		if (portpos && strlen(portpos)) {
 			flashport = strtol(portpos, (char **)NULL, 0);
 			msg_pinfo("Forcing serial flash port 0x%04x\n",
diff --git a/pcidev.c b/pcidev.c
index 4cb629d..cc08a65 100644
--- a/pcidev.c
+++ b/pcidev.c
@@ -94,7 +94,7 @@
 
 	/* Filter by vendor and also bb:dd.f (if supplied by the user). */
 	filter.vendor = vendor_id;
-	pcidev_bdf = extract_param(&programmer_param, "pci", ",");
+	pcidev_bdf = extract_programmer_param("pci");
 	if (pcidev_bdf != NULL) {
 		if ((msg = pci_filter_parse_slot(&filter, pcidev_bdf))) {
 			msg_perr("Error: %s\n", msg);
diff --git a/serprog.c b/serprog.c
index b2f5787..b1c4cef 100644
--- a/serprog.c
+++ b/serprog.c
@@ -306,7 +306,7 @@
 	int have_device = 0;
 
 	/* the parameter is either of format "dev=/dev/device:baud" or "ip=ip:port" */
-	device = extract_param(&programmer_param, "dev", ",");
+	device = extract_programmer_param("dev");
 	if (device && strlen(device)) {
 		baudport = strstr(device, ":");
 		if (baudport) {
@@ -333,7 +333,7 @@
 	}
 	free(device);
 
-	device = extract_param(&programmer_param, "ip", ",");
+	device = extract_programmer_param("ip");
 	if (have_device && device) {
 		msg_perr("Error: Both host and device specified.\n"
 			 "Please use either dev= or ip= but not both.\n");