]> 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 064153085d71295ec6342ef50616c5fc54113a88..7fd17c53481baae9ece3328f99e31087fecaeed8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_macro.c,v 1.112 2015/10/06 18:32:19 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;
                }
@@ -356,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.,
@@ -379,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
@@ -408,6 +393,7 @@ man_endparse(struct roff_man *man)
 {
 
        man_unscope(man, man->first);
+       man->flags &= ~MAN_LITERAL;
 }
 
 static int