Propagate the error code using return values instead.
Signed-off-by: Niklas Söderlund niso@kth.se --- cli_classic.c | 3 +-- flash.h | 2 +- print.c | 14 +++++++++----- 3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/cli_classic.c b/cli_classic.c index 4ae375c..7bcd4a6 100644 --- a/cli_classic.c +++ b/cli_classic.c @@ -363,8 +363,7 @@ int main(int argc, char *argv[]) #endif
if (list_supported) { - print_supported(); - ret = 0; + ret = print_supported(); goto out; }
diff --git a/flash.h b/flash.h index 4913536..0bb6c2b 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 eb99c07..49e9441 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