+ case err_charset:
+ fpos = *va_arg(ap, filepos *);
+ wsp = va_arg(ap, wchar_t *);
+ sp = utoa_locale_dup(wsp);
+ sprintf(error, "character set `%.200s' not recognised", sp);
+ flags = FILEPOS;
+ sfree(sp);
+ break;
+ case err_nofont:
+ fpos = *va_arg(ap, filepos *);
+ wsp = va_arg(ap, wchar_t *);
+ sp = utoa_locale_dup(wsp);
+ sprintf(error, "font `%.200s' not recognised", sp);
+ flags = FILEPOS;
+ sfree(sp);
+ break;
+ case err_afmeof:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "AFM file ended unexpectedly");
+ flags = FILEPOS;
+ break;
+ case err_afmkey:
+ fpos = *va_arg(ap, filepos *);
+ sp = va_arg(ap, char *);
+ sprintf(error, "required AFM key '%.200s' missing", sp);
+ flags = FILEPOS;
+ break;
+ case err_afmvers:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "unsupported AFM version");
+ flags = FILEPOS;
+ break;
+ case err_afmval:
+ fpos = *va_arg(ap, filepos *);
+ sp = va_arg(ap, char *);
+ i = va_arg(ap, int);
+ if (i == 1)
+ sprintf(error, "AFM key '%.200s' requires a value", sp);
+ else
+ sprintf(error, "AFM key '%.200s' requires %d values", sp, i);
+ flags = FILEPOS;
+ break;
+ case err_pfeof:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "Type 1 font file ended unexpectedly");
+ flags = FILEPOS;
+ break;
+ case err_pfhead:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "Type 1 font file header line invalid");
+ flags = FILEPOS;
+ break;
+ case err_pfbad:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "Type 1 font file invalid");
+ flags = FILEPOS;
+ break;
+ case err_pfnoafm:
+ fpos = *va_arg(ap, filepos *);
+ sp = va_arg(ap, char *);
+ sprintf(error, "no metrics available for Type 1 font '%.200s'", sp);
+ flags = FILEPOS;
+ break;
+ case err_chmnames:
+ sprintf(error, "only one of html-mshtmlhelp-chm and "
+ "html-mshtmlhelp-hhp found");
+ flags = PREFIX;
+ break;
+ case err_sfntnotable:
+ fpos = *va_arg(ap, filepos *);
+ sp = va_arg(ap, char *);
+ sprintf(error, "font has no '%.4s' table", sp);
+ flags = FILEPOS;
+ break;
+ case err_sfntnopsname:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "font has no PostScript name");
+ flags = FILEPOS;
+ break;
+ case err_sfntbadtable:
+ fpos = *va_arg(ap, filepos *);
+ sp = va_arg(ap, char *);
+ sprintf(error, "font has an invalid '%.4s' table", sp);
+ flags = FILEPOS;
+ break;
+ case err_sfntnounicmap:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "font has no UCS-2 character map");
+ flags = FILEPOS;
+ break;
+ case err_sfnttablevers:
+ fpos = *va_arg(ap, filepos *);
+ sp = va_arg(ap, char *);
+ sprintf(error, "font has an unsupported '%.4s' table version", sp);
+ flags = FILEPOS;
+ break;
+ case err_sfntbadhdr:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "font has an invalid header");
+ flags = FILEPOS;
+ break;
+ case err_sfntbadglyph:
+ fpos = *va_arg(ap, filepos *);
+ wc = va_arg(ap, unsigned);
+ sprintf(error,
+ "warning: character U+%04X references an non-existent glyph",
+ wc);
+ flags = FILEPOS;
+ break;