From dae431c1490f94281b045d1458cb422152649b34 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Wed, 16 Feb 2022 18:02:16 +0000 Subject: [PATCH] dvd-sector-copy.c: Introduce `moan' function for printing warnings. --- dvd-sector-copy.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/dvd-sector-copy.c b/dvd-sector-copy.c index 01dd6a5..354d962 100644 --- a/dvd-sector-copy.c +++ b/dvd-sector-copy.c @@ -59,6 +59,16 @@ static void usage(FILE *fp) static void vmoan(const char *fmt, va_list ap) { fprintf(stderr, "%s: ", prog); vfprintf(stderr, fmt, ap); } + +__attribute__((format(printf, 1, 2))) +static void moan(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); vmoan(fmt, ap); va_end(ap); + fputc('\n', stderr); +} + __attribute__((noreturn, format(printf, 1, 2))) static void bail(const char *fmt, ...) { @@ -68,6 +78,7 @@ static void bail(const char *fmt, ...) fputc('\n', stderr); exit(2); } + __attribute__((noreturn, format(printf, 2, 3))) static void bail_syserr(int err, const char *fmt, ...) { @@ -469,8 +480,7 @@ static void emit(struct source *src, int outfd, secaddr start, secaddr end) n = read_sectors(src, pos, buf, 1); if (n > 0) { clear_progress(); - fprintf(stderr, "%s: sector %"PRIuSEC" read ok after retry\n", - prog, pos); + moan("sector %"PRIuSEC" read ok after retry", pos); bad_lo = bad_hi = pos; goto recovered; } @@ -481,7 +491,7 @@ static void emit(struct source *src, int outfd, secaddr start, secaddr end) report_bad_blocks_progress(src, bad_lo, bad_hi, errno); if (bad_hi >= end) { clear_progress(); - fprintf(stderr, "%s: giving up on this extent\n", prog); + moan("giving up on this extent"); n = 0; goto recovered; } step *= 2; @@ -503,9 +513,8 @@ static void emit(struct source *src, int outfd, secaddr start, secaddr end) recovered: if (bad_hi > bad_lo) { clear_progress(); - fprintf(stderr, "%s: skipping %"PRIuSEC" bad sectors " - "(%"PRIuSEC" .. %"PRIuSEC")\n", - prog, bad_hi - bad_lo, bad_lo, bad_hi); + moan("skipping %"PRIuSEC" bad sectors (%"PRIuSEC" .. %"PRIuSEC")", + bad_hi - bad_lo, bad_lo, bad_hi); if (src->mapfile) { if (!src->mapfp) { src->mapfp = fopen(src->mapfile, "w"); -- 2.11.0