Info backend now takes care to avoid magic characters in node names
[sgt/halibut] / error.c
diff --git a/error.c b/error.c
index efa0eb8..3bfa78b 100644 (file)
--- a/error.c
+++ b/error.c
@@ -16,6 +16,7 @@
 static void do_error(int code, va_list ap) {
     char error[1024];
     char auxbuf[256];
+    char c;
     char *sp, *sp2;
     wchar_t *wsp;
     filepos fpos, fpos2;
@@ -207,6 +208,19 @@ static void do_error(int code, va_list ap) {
                " parameters");
        flags = FILEPOS;
        break;
+      case err_infoindexcolon:
+       fpos = *va_arg(ap, filepos *);
+       sprintf(error, "info output format does not support colons in"
+               " index terms; removing");
+       flags = FILEPOS;
+       break;
+      case err_infonodechar:
+       fpos = *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;
+       break;
       case err_whatever:
        sp = va_arg(ap, char *);
         vsprintf(error, sp, ap);