static double wsum, wcount;
static struct file *file;
+static const char throbber[] = "|<-<|>->";
+static unsigned throbix = 0;
+
static void report_progress(secaddr pos)
{
char etastr[32];
if (flags&F_ALLPROGRESS) percent = pos*100.0/limit;
else percent = ndone*100.0/nsectors;
print_progress
- ("copied %.1f%% (%"PRIuSEC" of %"PRIuSEC"; %.1f %sB/s, ETA %s)",
- percent, pos, limit, rate, unit, etastr);
+ ("%c copied %.1f%% (%"PRIuSEC" of %"PRIuSEC"; %.1f %sB/s, ETA %s)",
+ throbber[throbix], percent, pos, limit, rate, unit, etastr);
+ throbix++; if (!throbber[throbix]) throbix = 0;
if (file && id_kind(file->id) == VOB) {
append_progress(" -- %s %d %.1f%%",
id_part(file->id) ? "title" : "menu",
if (mapfile) {
open_file_on_demand(mapfile, &mapfp, "bad-sector region map");
fprintf(mapfp, "%"PRIuSEC" %"PRIuSEC"", bad_lo, bad_hi);
- if (file)
+ if (file && id_kind(file->id) != RAW)
fprintf(mapfp, " # %s #%d %"PRIuSEC"..%"PRIuSEC" of %"PRIuSEC" (%.1f%%)",
id_part(file->id) ? "title" : "menu",
id_title(file->id),
}
if (lseek(outfd, (off_t)(bad_hi - bad_lo)*SECTORSZ, SEEK_CUR) < 0)
bail_syserr(errno, "failed to seek past bad sectors");
- status = 1;
}
struct recoverybuf {
{ rc = -1; goto end; }
if (!(f&PRF_HYPHEN)) while (ISSPACE(*p)) p++;
- if (*p && ((f&PRF_HYPHEN) || *p != '=')) { rc = -1; goto end; }
+ if (*p && ((f&PRF_HYPHEN) || *p != '#')) { rc = -1; goto end; }
rc = 0;
end: