- } else if (!dfn || strcmp(dfn, "-") == 0)
- m->fp = stdin;
- else if ((m->fp = fopen(dfn, "r")) == 0)
- die(EXIT_FAILURE, "can't read file `%s': %s", dfn, strerror(errno));
- else
- m->f &= ~F_NOCLOSE;
+ if (m->f & F_PROGRESS) {
+ if (fprogress_init(&m->ff, fn, m->fp)) {
+ die(EXIT_FAILURE, "failed to initialize progress indicator: %s",
+ strerror(errno));
+ }
+ }
+ } else {
+ if (!dfn || strcmp(dfn, "-") == 0)
+ m->fp = stdin;
+ else if ((m->fp = fopen(dfn, "r")) == 0)
+ die(EXIT_FAILURE, "can't read file `%s': %s", dfn, strerror(errno));
+ else
+ m->f &= ~F_NOCLOSE;
+ if (m->f & F_PROGRESS) {
+ if (fprogress_init(&m->ff, dfn, m->fp)) {
+ die(EXIT_FAILURE, "failed to initialize progress indicator: %s",
+ strerror(errno));
+ }
+ }
+ }