Remove exit calls from print_supported_chips

Propagate the error code using return values instead, but let cli_classic.c
still decide the ultimate return value of the process.
Also, remove setting the ret value again after print_supported_wiki() - 
success is the default.

Corresponding to flashrom svn r1614.

Signed-off-by: Niklas Söderlund <niso@kth.se>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
diff --git a/cli_classic.c b/cli_classic.c
index 4ae375c..ccf75e9 100644
--- a/cli_classic.c
+++ b/cli_classic.c
@@ -357,14 +357,13 @@
 #if CONFIG_PRINT_WIKI == 1
 	if (list_supported_wiki) {
 		print_supported_wiki();
-		ret = 0;
 		goto out;
 	}
 #endif
 
 	if (list_supported) {
-		print_supported();
-		ret = 0;
+		if (print_supported())
+			ret = 1;
 		goto out;
 	}
 
diff --git a/flash.h b/flash.h
index 4913536..0bb6c2b 100644
--- a/flash.h
+++ b/flash.h
@@ -214,7 +214,7 @@
 
 /* print.c */
 char *flashbuses_to_text(enum chipbustype bustype);
-void print_supported(void);
+int print_supported(void);
 void print_supported_wiki(void);
 
 /* flashrom.c */
diff --git a/print.c b/print.c
index bca861a..5a27320 100644
--- a/print.c
+++ b/print.c
@@ -58,7 +58,7 @@
 	return ret;
 }
 
-static void print_supported_chips(void)
+static int print_supported_chips(void)
 {
 	const char *delim = "/";
 	const int mintoklen = 5;
@@ -182,7 +182,7 @@
 		tmpven = malloc(strlen(chip->vendor) + 1);
 		if (tmpven == NULL) {
 			msg_gerr("Out of memory!\n");
-			exit(1);
+			return 1;
 		}
 		strcpy(tmpven, chip->vendor);
 
@@ -206,7 +206,7 @@
 		tmpdev = malloc(strlen(chip->name) + 1);
 		if (tmpdev == NULL) {
 			msg_gerr("Out of memory!\n");
-			exit(1);
+			return 1;
 		}
 		strcpy(tmpdev, chip->name);
 
@@ -320,6 +320,8 @@
 		}
 		msg_ginfo("\n");
 	}
+
+	return 0;
 }
 
 #if CONFIG_INTERNAL == 1
@@ -431,9 +433,10 @@
 }
 #endif
 
-void print_supported(void)
+int print_supported(void)
 {
-	print_supported_chips();
+	if (print_supported_chips())
+		return 1;
 
 	msg_ginfo("\nSupported programmers:\n");
 	list_programmers_linebreak(0, 80, 0);
@@ -547,6 +550,7 @@
 	       programmer_table[PROGRAMMER_LINUX_SPI].name);
 	msg_ginfo("Device files /dev/spidev*.*\n");
 #endif
+	return 0;
 }
 
 #if CONFIG_INTERNAL == 1