Add stuff to butCmd para so that constructs like \c don't break inside
[sgt/halibut] / error.c
diff --git a/error.c b/error.c
index 6d8dd13..5819e00 100644 (file)
--- a/error.c
+++ b/error.c
@@ -119,6 +119,11 @@ static void do_error(int code, va_list ap) {
        sprintf(error, "unclosed braces at end of paragraph");
        flags = FILEPOS;
        break;
+      case err_missingrbrace2:
+       fpos = *va_arg(ap, filepos *);
+       sprintf(error, "unclosed braces at end of input file");
+       flags = FILEPOS;
+       break;
       case err_nestedstyles:
        fpos = *va_arg(ap, filepos *);
        sprintf(error, "unable to nest text styles");
@@ -184,6 +189,18 @@ static void do_error(int code, va_list ap) {
        sprintf(error + strlen(error), "%s:%d", fpos2.filename, fpos2.line);
        flags = FILEPOS;
        break;
+      case err_misplacedlcont:
+       fpos = *va_arg(ap, filepos *);
+       sprintf(error, "\\lcont is only expected after a list item");
+       flags = FILEPOS;
+       break;
+      case err_sectmarkerinblock:
+       fpos = *va_arg(ap, filepos *);
+       sp = va_arg(ap, char *);
+       sprintf(error, "section headings are not supported within \\%.100s",
+               sp);
+       flags = FILEPOS;
+       break; 
       case err_whatever:
        sp = va_arg(ap, char *);
         vsprintf(error, sp, ap);
@@ -194,7 +211,9 @@ static void do_error(int code, va_list ap) {
     if (flags & PREFIX)
        fputs("halibut: ", stderr);
     if (flags & FILEPOS) {
-       fprintf(stderr, "%s:%d:", fpos.filename, fpos.line);
+       fprintf(stderr, "%s:", fpos.filename);
+       if (fpos.line > 0)
+           fprintf(stderr, "%d:", fpos.line);
        if (fpos.col > 0)
            fprintf(stderr, "%d:", fpos.col);
        fputc(' ', stderr);