]> git.cameronkatri.com Git - mandoc.git/commitdiff
implement tagging for .Er
authorIngo Schwarze <schwarze@openbsd.org>
Sat, 25 Jul 2015 14:23:08 +0000 (14:23 +0000)
committerIngo Schwarze <schwarze@openbsd.org>
Sat, 25 Jul 2015 14:23:08 +0000 (14:23 +0000)
mdoc_term.c

index 7486fa4424031567ecf996357cd721dcbde38118..3eea9d1341f4646cb1a8c54b756a3be025479b76 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_term.c,v 1.322 2015/07/25 14:18:04 schwarze Exp $ */
+/*     $Id: mdoc_term.c,v 1.323 2015/07/25 14:23:08 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2012-2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -95,6 +95,7 @@ static        int       termp_bx_pre(DECL_ARGS);
 static int       termp_cd_pre(DECL_ARGS);
 static int       termp_d1_pre(DECL_ARGS);
 static int       termp_eo_pre(DECL_ARGS);
+static int       termp_er_pre(DECL_ARGS);
 static int       termp_ex_pre(DECL_ARGS);
 static int       termp_fa_pre(DECL_ARGS);
 static int       termp_fd_pre(DECL_ARGS);
@@ -146,7 +147,7 @@ static      const struct termact termacts[MDOC_MAX] = {
        { termp_cd_pre, NULL }, /* Cd */
        { termp_bold_pre, NULL }, /* Cm */
        { NULL, NULL }, /* Dv */
-       { NULL, NULL }, /* Er */
+       { termp_er_pre, NULL }, /* Er */
        { termp_tag_pre, NULL }, /* Ev */
        { termp_ex_pre, NULL }, /* Ex */
        { termp_fa_pre, NULL }, /* Fa */
@@ -2272,6 +2273,19 @@ termp_under_pre(DECL_ARGS)
        return(1);
 }
 
+static int
+termp_er_pre(DECL_ARGS)
+{
+
+       if (n->sec == SEC_ERRORS &&
+           (n->parent->tok == MDOC_It ||
+            (n->parent->tok == MDOC_Bq &&
+             n->parent->parent->parent->tok == MDOC_It)) &&
+           ! tag_get(n->child->string, 0, 1))
+               tag_put(n->child->string, 0, 1, p->line);
+       return(1);
+}
+
 static int
 termp_tag_pre(DECL_ARGS)
 {