From e66d87fde0e3a88ba92a0f8282eef35b452968dd Mon Sep 17 00:00:00 2001 From: Pali Rohár Date: Sun, 23 Sep 2012 17:09:27 +0200 Subject: Added macro PRINTF_ERROR_RETURN which working with progressbar --- src/cold-flash.c | 4 ++-- src/nolo.c | 6 +++--- src/printf-utils.h | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/cold-flash.c b/src/cold-flash.c index 16cdcbc..85ce0e4 100644 --- a/src/cold-flash.c +++ b/src/cold-flash.c @@ -211,7 +211,7 @@ static int send_2nd(usb_dev_handle * udev, struct image * image) { if ( ret == 0 ) break; if ( usb_bulk_write(udev, WRITE_DEV, (char *)buffer, ret, WRITE_TIMEOUT) != ret ) - ERROR_RETURN("Sending 2nd X-Loader image failed", -1); + PRINTF_ERROR_RETURN("Sending 2nd X-Loader image failed", -1); readed += ret; printf_progressbar(readed, image->size); } @@ -253,7 +253,7 @@ static int send_secondary(usb_dev_handle * udev, struct image * image) { if ( ret == 0 ) break; if ( usb_bulk_write(udev, WRITE_DEV, (char *)buffer, ret, WRITE_TIMEOUT) != ret ) - ERROR_RETURN("Sending Secondary image failed", -1); + PRINTF_ERROR_RETURN("Sending Secondary image failed", -1); readed += ret; printf_progressbar(readed, image->size); } diff --git a/src/nolo.c b/src/nolo.c index 22a1704..13a61b8 100644 --- a/src/nolo.c +++ b/src/nolo.c @@ -336,7 +336,7 @@ static int nolo_send_image(struct usb_device_info * dev, struct image * image, i if ( ret == 0 ) break; if ( usb_bulk_write(dev->udev, 2, buf, ret, 5000) != ret ) - ERROR_RETURN("Sending image failed", -1); + PRINTF_ERROR_RETURN("Sending image failed", -1); readed += ret; printf_progressbar(readed, image->size); } @@ -420,7 +420,7 @@ int nolo_flash_image(struct usb_device_info * dev, struct image * image) { while ( state != 4 ) { if ( nolo_get_string(dev, "cmt:status", buf, sizeof(buf)) < 0 ) - ERROR_RETURN("cmt:status failed", -1); + PRINTF_ERROR_RETURN("cmt:status failed", -1); if ( strncmp(buf, "finished", strlen("finished")) == 0 ) { @@ -440,7 +440,7 @@ int nolo_flash_image(struct usb_device_info * dev, struct image * image) { } else { if ( sscanf(buf, "%s:%llu/%llu", status, &part, &total) != 3 ) - ERROR_RETURN("cmt:status unknown", -1); + PRINTF_ERROR_RETURN("cmt:status unknown", -1); if ( strcmp(status, "program") == 0 && state <= 0 ) { printf_progressbar(last_total, last_total); diff --git a/src/printf-utils.h b/src/printf-utils.h index f475214..9255c9c 100644 --- a/src/printf-utils.h +++ b/src/printf-utils.h @@ -20,6 +20,8 @@ #ifndef PRINTF_UTILS_H #define PRINTF_UTILS_H +#include "global.h" + extern int printf_prev; #define PRINTF_BACK() do { if ( printf_prev ) { printf("\r%-*s\r", printf_prev, ""); printf_prev = 0; } } while (0) @@ -27,6 +29,7 @@ extern int printf_prev; #define PRINTF_LINE(...) do { PRINTF_BACK(); PRINTF_ADD(__VA_ARGS__); fflush(stdout); } while (0) #define PRINTF_END() do { if ( printf_prev ) { printf("\n"); printf_prev = 0; } } while (0) #define PRINTF_ERROR(...) do { PRINTF_END(); ERROR_INFO(__VA_ARGS__); } while (0) +#define PRINTF_ERROR_RETURN(str, ...) do { PRINTF_ERROR("%s", str); return __VA_ARGS__; } while (0) void printf_progressbar(unsigned long long part, unsigned long long total); void printf_and_wait(const char * format, ...); -- cgit v1.2.3