From ede2fa4d1e5620978f5d630f0b241b613a5992d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Date: Tue, 23 Oct 2012 13:06:46 +0000 Subject: [PATCH] Remove exit calls from print_supported_chips MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Acked-by: Stefan Tauner --- cli_classic.c | 5 ++--- flash.h | 2 +- print.c | 14 +++++++++----- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/cli_classic.c b/cli_classic.c index 4ae375cfa..ccf75e91d 100644 --- a/cli_classic.c +++ b/cli_classic.c @@ -357,14 +357,13 @@ int main(int argc, char *argv[]) #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 49135360a..0bb6c2ba8 100644 --- a/flash.h +++ b/flash.h @@ -214,7 +214,7 @@ void chip_readn(const struct flashctx *flash, uint8_t *buf, const chipaddr addr, /* 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 bca861a06..5a273205a 100644 --- a/print.c +++ b/print.c @@ -58,7 +58,7 @@ char *flashbuses_to_text(enum chipbustype bustype) 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 @@ static void print_supported_chips(void) 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 @@ static void print_supported_chips(void) 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 @@ static void print_supported_chips(void) } msg_ginfo("\n"); } + + return 0; } #if CONFIG_INTERNAL == 1 @@ -431,9 +433,10 @@ static void print_supported_boards_helper(const struct board_info *boards, } #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 @@ void print_supported(void) programmer_table[PROGRAMMER_LINUX_SPI].name); msg_ginfo("Device files /dev/spidev*.*\n"); #endif + return 0; } #if CONFIG_INTERNAL == 1