]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_macro.c
Fix mdoc bug found by Claus Assmann: `Pf' should be callable.
[mandoc.git] / mdoc_macro.c
index f7019106c4b3256edad0a02e89cf4667335ebef0..d58825f735d50e50c3dd60b5b36af33c1ee579b2 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_macro.c,v 1.50 2010/04/05 08:38:37 kristaps Exp $ */
+/*     $Id: mdoc_macro.c,v 1.52 2010/04/06 07:17:51 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
 
 #include "libmdoc.h"
 
-#define        REWIND_REWIND   (1 << 0)
-#define        REWIND_NOHALT   (1 << 1)
-#define        REWIND_HALT     (1 << 2)
+enum   rew {
+       REWIND_REWIND,
+       REWIND_NOHALT,
+       REWIND_HALT
+};
 
 static int       ctx_synopsis(MACRO_PROT_ARGS);
 static int       obsolete(MACRO_PROT_ARGS);
@@ -42,7 +44,7 @@ static        int       blk_exp_close(MACRO_PROT_ARGS);
 static int       blk_part_imp(MACRO_PROT_ARGS);
 
 static int       phrase(struct mdoc *, int, int, char *);
-static int       rew_dohalt(enum mdoct, enum mdoc_type, 
+static enum rew  rew_dohalt(enum mdoct, enum mdoc_type, 
                        const struct mdoc_node *);
 static enum mdoct rew_alt(enum mdoct);
 static int       rew_dobreak(enum mdoct, const struct mdoc_node *);
@@ -137,7 +139,7 @@ const       struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
        { in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* Nx */
        { in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* Ox */
        { blk_exp_close, MDOC_EXPLICIT | MDOC_CALLABLE | MDOC_PARSED }, /* Pc */
-       { in_line_argn, MDOC_PARSED | MDOC_IGNDELIM }, /* Pf */
+       { in_line_argn, MDOC_CALLABLE | MDOC_PARSED | MDOC_IGNDELIM }, /* Pf */
        { blk_part_exp, MDOC_CALLABLE | MDOC_PARSED | MDOC_EXPLICIT }, /* Po */
        { blk_part_imp, MDOC_CALLABLE | MDOC_PARSED }, /* Pq */
        { blk_exp_close, MDOC_EXPLICIT | MDOC_CALLABLE | MDOC_PARSED }, /* Qc */
@@ -368,7 +370,7 @@ rew_alt(enum mdoct tok)
  * close our current scope (REWIND_REWIND), or continue (REWIND_NOHALT).
  * The scope-closing and so on occurs in the various rew_* routines.
  */
-static int 
+static enum rew
 rew_dohalt(enum mdoct tok, enum mdoc_type type, 
                const struct mdoc_node *p)
 {
@@ -574,7 +576,7 @@ rew_sub(enum mdoc_type t, struct mdoc *m,
                enum mdoct tok, int line, int ppos)
 {
        struct mdoc_node *n;
-       int               c;
+       enum rew          c;
 
        /* LINTED */
        for (n = m->last; n; n = n->parent) {