X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/c885c2ffbb3aea5c255d3b2e767d4450b2bebcc6..6e6747065dd221528a52a383f0f99712c8cd82e4:/error.c diff --git a/error.c b/error.c index 2dae220..2a2c6cd 100644 --- a/error.c +++ b/error.c @@ -18,9 +18,9 @@ static void do_error(int code, va_list ap) { char c; int i, j; char *sp, *sp2; - wchar_t *wsp, *wsp2; + wchar_t *wsp, *wsp2, wc; filepos fpos, fpos2, *fposp; - int flags; + int flags = 0; switch(code) { case err_nomemory: /* no arguments */ @@ -333,7 +333,53 @@ static void do_error(int code, va_list ap) { case err_pfnoafm: fpos = *va_arg(ap, filepos *); sp = va_arg(ap, char *); - sprintf(error, "No metrics available for Type 1 font '%.200s'", sp); + 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, wchar_t); + sprintf(error, + "warning: character U+%04X references an non-existent glyph", + wc); flags = FILEPOS; break; case err_whatever: