]> git.cameronkatri.com Git - mandoc.git/blobdiff - man_macro.c
No need to cast NULL when assigning it to a variable;
[mandoc.git] / man_macro.c
index 5d0a22ef990d44207ff7e43a5fb2d110e1f3a13e..7fd17c53481baae9ece3328f99e31087fecaeed8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_macro.c,v 1.110 2015/09/04 21:25:00 schwarze Exp $ */
+/*     $Id: man_macro.c,v 1.115 2017/01/10 13:47:00 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2012, 2013, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -95,7 +95,7 @@ man_unscope(struct roff_man *man, const struct roff_node *to)
 
                /* Reached the end of the document? */
 
-               if (to == NULL && ! (n->flags & MAN_VALID)) {
+               if (to == NULL && ! (n->flags & NODE_VALID)) {
                        if (man->flags & (MAN_BLINE | MAN_ELINE) &&
                            man_macros[n->tok].flags & MAN_SCOPED) {
                                mandoc_vmsg(MANDOCERR_BLK_LINE,
@@ -130,7 +130,7 @@ man_unscope(struct roff_man *man, const struct roff_node *to)
 
                man->last = n;
                n = n->parent;
-               man_valid_post(man);
+               man->last->flags |= NODE_VALID;
        }
 
        /*
@@ -157,14 +157,14 @@ rew_scope(struct roff_man *man, int tok)
        /* Preserve empty paragraphs before RS. */
 
        n = man->last;
-       if (tok == MAN_RS && n->nchild == 0 &&
+       if (tok == MAN_RS && n->child == NULL &&
            (n->tok == MAN_P || n->tok == MAN_PP || n->tok == MAN_LP))
                return;
 
        for (;;) {
                if (n->type == ROFFT_ROOT)
                        return;
-               if (n->flags & MAN_VALID) {
+               if (n->flags & NODE_VALID) {
                        n = n->parent;
                        continue;
                }
@@ -225,7 +225,6 @@ blk_close(MACRO_PROT_ARGS)
                break;
        default:
                abort();
-               /* NOTREACHED */
        }
 
        for (nn = man->last->parent; nn; nn = nn->parent)
@@ -357,13 +356,13 @@ in_line_eoln(MACRO_PROT_ARGS)
        }
 
        /*
-        * Append MAN_EOS in case the last snipped argument
+        * Append NODE_EOS in case the last snipped argument
         * ends with a dot, e.g. `.IR syslog (3).'
         */
 
        if (n != man->last &&
            mandoc_eos(man->last->string, strlen(man->last->string)))
-               man->last->flags |= MAN_EOS;
+               man->last->flags |= NODE_EOS;
 
        /*
         * If no arguments are specified and this is MAN_SCOPED (i.e.,
@@ -380,28 +379,13 @@ in_line_eoln(MACRO_PROT_ARGS)
        assert(man->last->type != ROFFT_ROOT);
        man->next = ROFF_NEXT_SIBLING;
 
-       /*
-        * Rewind our element scope.  Note that when TH is pruned, we'll
-        * be back at the root, so make sure that we don't clobber as
-        * its sibling.
-        */
+       /* Rewind our element scope. */
 
        for ( ; man->last; man->last = man->last->parent) {
+               man_state(man, man->last);
                if (man->last == n)
                        break;
-               if (man->last->type == ROFFT_ROOT)
-                       break;
-               man_valid_post(man);
        }
-
-       assert(man->last);
-
-       /*
-        * Same here regarding whether we're back at the root.
-        */
-
-       if (man->last->type != ROFFT_ROOT)
-               man_valid_post(man);
 }
 
 void
@@ -409,6 +393,7 @@ man_endparse(struct roff_man *man)
 {
 
        man_unscope(man, man->first);
+       man->flags &= ~MAN_LITERAL;
 }
 
 static int
@@ -421,8 +406,8 @@ man_args(struct roff_man *man, int line, int *pos, char *buf, char **v)
        assert(' ' != *start);
 
        if ('\0' == *start)
-               return(0);
+               return 0;
 
        *v = mandoc_getarg(man->parse, v, line, pos);
-       return(1);
+       return 1;
 }