Correct a comment.
[sgt/halibut] / error.c
diff --git a/error.c b/error.c
index 3635f0f..6b4254d 100644 (file)
--- a/error.c
+++ b/error.c
@@ -19,8 +19,8 @@ static void do_error(int code, va_list ap) {
     int i, j;
     char *sp, *sp2;
     wchar_t *wsp, *wsp2;
-    filepos fpos, fpos2;
-    int flags;
+    filepos fpos, fpos2, *fposp;
+    int flags = 0;
 
     switch(code) {
       case err_nomemory:              /* no arguments */
@@ -248,11 +248,14 @@ static void do_error(int code, va_list ap) {
        flags = FILEPOS;
        break;
       case err_infonodechar:
-       fpos = *va_arg(ap, filepos *);
+       fposp = va_arg(ap, filepos *);
        c = (char)va_arg(ap, int);
        sprintf(error, "info output format does not support '%c' in"
                " node names; removing", c);
-       flags = FILEPOS;
+       if (fposp) {
+           flags = FILEPOS;
+           fpos = *fposp;
+       }
        break;
       case err_text_codeline:
        fpos = *va_arg(ap, filepos *);
@@ -278,6 +281,66 @@ 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_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_whatever:
        sp = va_arg(ap, char *);
         vsprintf(error, sp, ap);