diff options
Diffstat (limited to 'futility/updater_utils.c')
-rw-r--r-- | futility/updater_utils.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/futility/updater_utils.c b/futility/updater_utils.c index dec0dab9..a20a026b 100644 --- a/futility/updater_utils.c +++ b/futility/updater_utils.c @@ -609,31 +609,25 @@ static int host_flashrom(enum flashrom_ops op, const char *image_path, return r; } +// global to allow verbosity level to be injected into callback. +static enum flashrom_log_level g_verbose_screen = FLASHROM_MSG_INFO; + static int flashrom_print_cb(enum flashrom_log_level level, const char *fmt, va_list ap) { int ret = 0; - enum flashrom_log_level verbose_screen = FLASHROM_MSG_INFO; - FILE *output_type = (level < verbose_screen) ? stderr : stdout; + FILE *output_type = (level < FLASHROM_MSG_INFO) ? stderr : stdout; - if (level > verbose_screen) + if (level > g_verbose_screen) return ret; -#define COLOUR_RESET "\033[0;m" -#define MAGENTA_TEXT "\033[35;1m" - - if (level != FLASHROM_MSG_SPEW) - fprintf(output_type, MAGENTA_TEXT); - ret = vfprintf(output_type, fmt, ap); /* msg_*spew often happens inside chip accessors * in possibly time-critical operations. * Don't slow them down by flushing. */ - if (level != FLASHROM_MSG_SPEW) { - fprintf(output_type, COLOUR_RESET); + if (level != FLASHROM_MSG_SPEW) fflush(output_type); - } return ret; } @@ -776,6 +770,7 @@ int load_system_firmware(struct firmware_image *image, { int r; + g_verbose_screen = verbosity + 1; r = host_flashrom_read(image); if (!r) r = parse_firmware_image(image); @@ -793,6 +788,7 @@ int write_system_firmware(const struct firmware_image *image, struct tempfile *tempfiles, int verbosity) { + g_verbose_screen = verbosity + 1; return host_flashrom_write(image, section_name, diff_image); } |