dvd-sector-copy.c: Introduce `moan' function for printing warnings.
authorMark Wooding <mdw@distorted.org.uk>
Wed, 16 Feb 2022 18:02:16 +0000 (18:02 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Wed, 16 Feb 2022 23:29:33 +0000 (23:29 +0000)
dvd-sector-copy.c

index 01dd6a5..354d962 100644 (file)
@@ -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");