]> git.cameronkatri.com Git - mandoc.git/blobdiff - main.c
Ugly fix for `Bl' or `Bd' causing badness when nested in `Bl -hang' lists.
[mandoc.git] / main.c
diff --git a/main.c b/main.c
index b9120ef2a58a8038a1715339ff13957a8b632ecb..26988773e7bf647641613f7338ba8750fd7e60e9 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/*     $Id: main.c,v 1.33 2009/07/04 09:01:55 kristaps Exp $ */
+/*     $Id: main.c,v 1.38 2009/07/07 09:52:08 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -65,9 +65,7 @@ struct        curparse {
        const char       *file;         /* Current parse. */
        int               fd;           /* Current parse. */
        int               wflags;
-#define        WARN_WALL         0x03          /* All-warnings mask. */
-#define        WARN_WCOMPAT     (1 << 0)       /* Compatibility warnings. */
-#define        WARN_WSYNTAX     (1 << 1)       /* Syntax warnings. */
+#define        WARN_WALL        (1 << 0)       /* All-warnings mask. */
 #define        WARN_WERR        (1 << 2)       /* Warnings->errors. */
        int               fflags;
 #define        IGN_SCOPE        (1 << 0)       /* Ignore scope errors. */
@@ -98,9 +96,7 @@ static        int               toptions(enum outt *, char *);
 static int               moptions(enum intt *, char *);
 static int               woptions(int *, char *);
 static int               merr(void *, int, int, const char *);
-static int               manwarn(void *, int, int, const char *);
-static int               mdocwarn(void *, int, int, 
-                               enum mdoc_warn, const char *);
+static int               mwarn(void *, int, int, const char *);
 static int               ffile(struct buf *, struct buf *, 
                                const char *, struct curparse *);
 static int               fdesc(struct buf *, struct buf *,
@@ -228,7 +224,7 @@ man_init(struct curparse *curp)
        struct man_cb    mancb;
 
        mancb.man_err = merr;
-       mancb.man_warn = manwarn;
+       mancb.man_warn = mwarn;
 
        /* Defaults from mandoc.1. */
 
@@ -256,7 +252,7 @@ mdoc_init(struct curparse *curp)
        struct mdoc_cb   mdoccb;
 
        mdoccb.mdoc_err = merr;
-       mdoccb.mdoc_warn = mdocwarn;
+       mdoccb.mdoc_warn = mwarn;
 
        /* Defaults from mandoc.1. */
 
@@ -554,7 +550,7 @@ toptions(enum outt *tflags, char *arg)
 static int
 foptions(int *fflags, char *arg)
 {
-       char            *v;
+       char            *v, *o;
        char            *toks[6];
 
        toks[0] = "ign-scope";
@@ -564,7 +560,8 @@ foptions(int *fflags, char *arg)
        toks[4] = "strict";
        toks[5] = NULL;
 
-       while (*arg) 
+       while (*arg) {
+               o = arg;
                switch (getsubopt(&arg, toks, &v)) {
                case (0):
                        *fflags |= IGN_SCOPE;
@@ -583,9 +580,10 @@ foptions(int *fflags, char *arg)
                                   NO_IGN_MACRO | NO_IGN_CHARS;
                        break;
                default:
-                       warnx("bad argument: -f%s", suboptarg);
+                       warnx("bad argument: -f%s", o);
                        return(0);
                }
+       }
 
        return(1);
 }
@@ -594,33 +592,27 @@ foptions(int *fflags, char *arg)
 static int
 woptions(int *wflags, char *arg)
 {
-       char            *v;
-       char            *toks[5]; 
+       char            *v, *o;
+       char            *toks[3]; 
 
        toks[0] = "all";
-       toks[1] = "compat";
-       toks[2] = "syntax";
-       toks[3] = "error";
-       toks[4] = NULL;
+       toks[1] = "error";
+       toks[2] = NULL;
 
-       while (*arg) 
+       while (*arg) {
+               o = arg;
                switch (getsubopt(&arg, toks, &v)) {
                case (0):
                        *wflags |= WARN_WALL;
                        break;
                case (1):
-                       *wflags |= WARN_WCOMPAT;
-                       break;
-               case (2):
-                       *wflags |= WARN_WSYNTAX;
-                       break;
-               case (3):
                        *wflags |= WARN_WERR;
                        break;
                default:
-                       warnx("bad argument: -W%s", suboptarg);
+                       warnx("bad argument: -W%s", o);
                        return(0);
                }
+       }
 
        return(1);
 }
@@ -633,6 +625,7 @@ merr(void *arg, int line, int col, const char *msg)
        struct curparse *curp;
 
        curp = (struct curparse *)arg;
+
        warnx("%s:%d: error: %s (column %d)", 
                        curp->file, line, msg, col);
 
@@ -641,31 +634,17 @@ merr(void *arg, int line, int col, const char *msg)
 
 
 static int
-mdocwarn(void *arg, int line, int col, 
-               enum mdoc_warn type, const char *msg)
+mwarn(void *arg, int line, int col, const char *msg)
 {
        struct curparse *curp;
-       char            *wtype;
 
        curp = (struct curparse *)arg;
-       wtype = NULL;
 
-       switch (type) {
-       case (WARN_COMPAT):
-               wtype = "compat";
-               if (curp->wflags & WARN_WCOMPAT)
-                       break;
+       if ( ! (curp->wflags & WARN_WALL))
                return(1);
-       case (WARN_SYNTAX):
-               wtype = "syntax";
-               if (curp->wflags & WARN_WSYNTAX)
-                       break;
-               return(1);
-       }
 
-       assert(wtype);
-       warnx("%s:%d: %s warning: %s (column %d)", 
-                       curp->file, line, wtype, msg, col);
+       warnx("%s:%d: warning: %s (column %d)", 
+                       curp->file, line, msg, col);
 
        if ( ! (curp->wflags & WARN_WERR))
                return(1);
@@ -674,23 +653,3 @@ mdocwarn(void *arg, int line, int col,
        return(0);
 }
 
-
-static int
-manwarn(void *arg, int line, int col, const char *msg)
-{
-       struct curparse *curp;
-
-       curp = (struct curparse *)arg;
-
-       if ( ! (curp->wflags & WARN_WSYNTAX))
-               return(1);
-
-       warnx("%s:%d: syntax warning: %s (column %d)", 
-                       curp->file, line, msg, col);
-
-       if ( ! (curp->wflags & WARN_WERR))
-               return(1);
-
-       warnx("considering warnings as errors");
-       return(0);
-}