aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mdoc_term.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-07-02 03:48:07 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-07-02 03:48:07 +0000
commit7b965f63cfd7d1b9474221bad812a9d975b94b46 (patch)
tree8ffe9afac6db5a64ab38eb92dfd41deabe0271ff /mdoc_term.c
parentc9939e9971e983553a2f3f786d124427b6d4e16e (diff)
downloadmandoc-7b965f63cfd7d1b9474221bad812a9d975b94b46.tar.gz
mandoc-7b965f63cfd7d1b9474221bad812a9d975b94b46.tar.zst
mandoc-7b965f63cfd7d1b9474221bad812a9d975b94b46.zip
Implement the obsolete macros .En .Es .Fr .Ot for backward compatibility,
since this is hardly more complicated than explicitly ignoring them as we did in the past. Of course, do not use them!
Diffstat (limited to 'mdoc_term.c')
-rw-r--r--mdoc_term.c35
1 files changed, 29 insertions, 6 deletions
diff --git a/mdoc_term.c b/mdoc_term.c
index 93bb05ea..0039525a 100644
--- a/mdoc_term.c
+++ b/mdoc_term.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_term.c,v 1.267 2014/04/23 16:08:33 schwarze Exp $ */
+/* $Id: mdoc_term.c,v 1.268 2014/07/02 03:48:07 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -95,6 +95,7 @@ static int termp_bt_pre(DECL_ARGS);
static int termp_bx_pre(DECL_ARGS);
static int termp_cd_pre(DECL_ARGS);
static int termp_d1_pre(DECL_ARGS);
+static int termp_es_pre(DECL_ARGS);
static int termp_ex_pre(DECL_ARGS);
static int termp_fa_pre(DECL_ARGS);
static int termp_fd_pre(DECL_ARGS);
@@ -158,7 +159,7 @@ static const struct termact termacts[MDOC_MAX] = {
{ termp_nd_pre, NULL }, /* Nd */
{ termp_nm_pre, termp_nm_post }, /* Nm */
{ termp_quote_pre, termp_quote_post }, /* Op */
- { NULL, NULL }, /* Ot */
+ { termp_ft_pre, NULL }, /* Ot */
{ termp_under_pre, NULL }, /* Pa */
{ termp_rv_pre, NULL }, /* Rv */
{ NULL, NULL }, /* St */
@@ -228,7 +229,7 @@ static const struct termact termacts[MDOC_MAX] = {
{ NULL, NULL }, /* Ek */
{ termp_bt_pre, NULL }, /* Bt */
{ NULL, NULL }, /* Hf */
- { NULL, NULL }, /* Fr */
+ { termp_under_pre, NULL }, /* Fr */
{ termp_ud_pre, NULL }, /* Ud */
{ NULL, termp_lb_post }, /* Lb */
{ termp_sp_pre, NULL }, /* Lp */
@@ -238,8 +239,8 @@ static const struct termact termacts[MDOC_MAX] = {
{ termp_quote_pre, termp_quote_post }, /* Bro */
{ NULL, NULL }, /* Brc */
{ NULL, termp____post }, /* %C */
- { NULL, NULL }, /* Es */ /* TODO */
- { NULL, NULL }, /* En */ /* TODO */
+ { termp_es_pre, NULL }, /* Es */
+ { termp_quote_pre, termp_quote_post }, /* En */
{ termp_xx_pre, NULL }, /* Dx */
{ NULL, termp____post }, /* %Q */
{ termp_sp_pre, NULL }, /* br */
@@ -1829,6 +1830,13 @@ termp_sp_pre(DECL_ARGS)
}
static int
+termp_es_pre(DECL_ARGS)
+{
+
+ return(0);
+}
+
+static int
termp_quote_pre(DECL_ARGS)
{
@@ -1860,6 +1868,12 @@ termp_quote_pre(DECL_ARGS)
case MDOC_Dq:
term_word(p, "\\(lq");
break;
+ case MDOC_En:
+ if (NULL == n->norm->Es ||
+ NULL == n->norm->Es->child)
+ return(1);
+ term_word(p, n->norm->Es->child->string);
+ break;
case MDOC_Eo:
break;
case MDOC_Po:
@@ -1897,7 +1911,8 @@ termp_quote_post(DECL_ARGS)
if (MDOC_BODY != n->type && MDOC_ELEM != n->type)
return;
- p->flags |= TERMP_NOSPACE;
+ if (MDOC_En != n->tok)
+ p->flags |= TERMP_NOSPACE;
switch (n->tok) {
case MDOC_Ao:
@@ -1924,6 +1939,14 @@ termp_quote_post(DECL_ARGS)
case MDOC_Dq:
term_word(p, "\\(rq");
break;
+ case MDOC_En:
+ if (NULL != n->norm->Es &&
+ NULL != n->norm->Es->child &&
+ NULL != n->norm->Es->child->next) {
+ p->flags |= TERMP_NOSPACE;
+ term_word(p, n->norm->Es->child->next->string);
+ }
+ break;
case MDOC_Eo:
break;
case MDOC_Po: