X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/675958c383f1dfc9c2c5a7455654c0961fdf6a65..faaa472f80570868bcc5469be639ea69875f3fac:/error.c diff --git a/error.c b/error.c index 0011b18..f7461ef 100644 --- a/error.c +++ b/error.c @@ -239,10 +239,12 @@ static void do_error(int code, va_list ap) { sp); flags = FILEPOS; break; - case err_infodirentry: + case err_cfginsufarg: fpos = *va_arg(ap, filepos *); - sprintf(error, "\\cfg{info-dir-entry} expects at least three" - " parameters"); + sp = va_arg(ap, char *); + i = va_arg(ap, int); + sprintf(error, "\\cfg{%s} expects at least %d parameter%s", sp, + i, (i==1)?"":"s"); flags = FILEPOS; break; case err_infonodechar: @@ -276,6 +278,40 @@ static void do_error(int code, va_list ap) { 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_whatever: sp = va_arg(ap, char *); vsprintf(error, sp, ap);