- if (!parse_format_specifier (lexer, &f)
- || !fmt_check_output (&f)
- || !fmt_check_width_compat (&f, width))
- goto fail;
+ if (!parse_format_specifier (lexer, &f))
+ goto fail;
+ char *error = fmt_check_output__ (&f);
+ if (!error)
+ error = fmt_check_width_compat__ (&f, var_get_name (v[0]), width);
+ if (error)
+ {
+ lex_next_error (lexer, -1, -1, "%s", error);
+ free (error);
+ goto fail;
+ }