-/*
- * These functions implement a generalized progress meter.
- */
-struct progress_struct {
- char format[20];
- char backup[80];
- __u32 max;
- int skip_progress;
-};
-
-static void progress_init(struct progress_struct *progress,
- const char *label,__u32 max)
-{
- int i;
-
- memset(progress, 0, sizeof(struct progress_struct));
- if (quiet)
- return;
-
- /*
- * Figure out how many digits we need
- */
- i = int_log10(max);
- sprintf(progress->format, "%%%dd/%%%dld", i, i);
- memset(progress->backup, '\b', sizeof(progress->backup)-1);
- progress->backup[sizeof(progress->backup)-1] = 0;
- if ((2*i)+1 < (int) sizeof(progress->backup))
- progress->backup[(2*i)+1] = 0;
- progress->max = max;
-
- progress->skip_progress = 0;
- if (getenv("MKE2FS_SKIP_PROGRESS"))
- progress->skip_progress++;
-
- fputs(label, stdout);
- fflush(stdout);
-}
-
-static void progress_update(struct progress_struct *progress, __u32 val)
-{
- if ((progress->format[0] == 0) || progress->skip_progress)
- return;
- printf(progress->format, val, progress->max);
- fputs(progress->backup, stdout);
-}
-
-static void progress_close(struct progress_struct *progress)
-{
- if (progress->format[0] == 0)
- return;
- fputs(_("done \n"), stdout);
-}
-