- msg (SE, _("Output format %s requires minimum width %d to allow "
- "%d decimal places. Try %s%d.%d instead of %s."),
- f->name, f->Omin_w + 1 + spec->d, spec->d, f->name,
- f->Omin_w + 1 + spec->d, spec->d, str);
- return 0;
- }
- if ((f->cat & FCAT_EVEN_WIDTH) && spec->w % 2)
- {
- msg (SE, _("Output format %s specifies an odd width %d, but "
- "output format %s requires an even width between %d and "
- "%d."), str, spec->w, f->name, f->Omin_w, f->Omax_w);
- return 0;
- }
- if (f->n_args > 1 && (spec->d < 0 || spec->d > 16))
- {
- msg (SE, _("Output format %s specifies a bad number of "
- "implied decimal places %d. Output format %s allows "
- "a number of implied decimal places between 1 "
- "and 16."), str, spec->d, f->name);
+ if (emit_error)
+ msg (SE, _("Output format %s requires minimum width %d to allow "
+ "%d decimal places. Try %s%d.%d instead of %s."),
+ f->name, f->Omin_w + 1 + spec->d, spec->d, f->name,
+ f->Omin_w + 1 + spec->d, spec->d, str);