diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2014-07-02 03:48:07 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2014-07-02 03:48:07 +0000 |
commit | 6953ebc600f2fbc755c081f62f54e09e92399d68 (patch) | |
tree | 1e47ae2fa2358a5af6a9ee8178e35fff7d034614 /mdoc_term.c | |
parent | 86806389168051f6ba486c442c442708d5e0fa73 (diff) | |
download | mandoc-6953ebc600f2fbc755c081f62f54e09e92399d68.tar.gz |
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.c | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/mdoc_term.c b/mdoc_term.c index 280c0aaf..98eafa4f 100644 --- a/mdoc_term.c +++ b/mdoc_term.c @@ -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: |