]> git.cameronkatri.com Git - mandoc.git/blobdiff - roff.c
document the semantics of operation keywords
[mandoc.git] / roff.c
diff --git a/roff.c b/roff.c
index 1d8a3991ba396e2af7e3d09f5054eae3c24c26b7..5fcde6e4490965d6923a6c41cd4b2dc09d64cb92 100644 (file)
--- a/roff.c
+++ b/roff.c
@@ -1,4 +1,4 @@
-/*     $Id: roff.c,v 1.227 2014/09/06 22:39:36 schwarze Exp $ */
+/*     $Id: roff.c,v 1.229 2014/09/07 00:21:53 schwarze Exp $ */
 /*
  * Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -60,6 +60,7 @@ enum  rofft {
        ROFF_nh,
        ROFF_nr,
        ROFF_ns,
+       ROFF_pl,
        ROFF_ps,
        ROFF_rm,
        ROFF_rr,
@@ -256,6 +257,7 @@ static      struct roffmac   roffs[ROFF_MAX] = {
        { "nh", roff_line_ignore, NULL, NULL, 0, NULL },
        { "nr", roff_nr, NULL, NULL, 0, NULL },
        { "ns", roff_line_ignore, NULL, NULL, 0, NULL },
+       { "pl", roff_line_ignore, NULL, NULL, 0, NULL },
        { "ps", roff_line_ignore, NULL, NULL, 0, NULL },
        { "rm", roff_rm, NULL, NULL, 0, NULL },
        { "rr", roff_rr, NULL, NULL, 0, NULL },
@@ -759,6 +761,15 @@ roff_parseln(struct roff *r, int ln, char **bufp,
                return(roff_parsetext(bufp, szp, pos, offs));
        }
 
+       /* Skip empty request lines. */
+
+       if ((*bufp)[pos] == '"') {
+               mandoc_msg(MANDOCERR_COMMENT_BAD, r->parse,
+                   ln, pos, NULL);
+               return(ROFF_IGN);
+       } else if ((*bufp)[pos] == '\0')
+               return(ROFF_IGN);
+
        /*
         * If a scope is open, go to the child handler for that macro,
         * as it may want to preprocess before doing anything with it.