=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_man.c,v retrieving revision 1.62 retrieving revision 1.63 diff -u -r1.62 -r1.63 --- src/usr.bin/mandoc/mdoc_man.c 2014/04/20 19:39:35 1.62 +++ src/usr.bin/mandoc/mdoc_man.c 2014/07/02 03:47:07 1.63 @@ -1,4 +1,4 @@ -/* $Id: mdoc_man.c,v 1.62 2014/04/20 19:39:35 schwarze Exp $ */ +/* $Id: mdoc_man.c,v 1.63 2014/07/02 03:47:07 schwarze Exp $ */ /* * Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze * @@ -47,6 +47,7 @@ static void post_bk(DECL_ARGS); static void post_bl(DECL_ARGS); static void post_dl(DECL_ARGS); +static void post_en(DECL_ARGS); static void post_enc(DECL_ARGS); static void post_eo(DECL_ARGS); static void post_fa(DECL_ARGS); @@ -74,8 +75,10 @@ static int pre_br(DECL_ARGS); static int pre_bx(DECL_ARGS); static int pre_dl(DECL_ARGS); +static int pre_en(DECL_ARGS); static int pre_enc(DECL_ARGS); static int pre_em(DECL_ARGS); +static int pre_es(DECL_ARGS); static int pre_fa(DECL_ARGS); static int pre_fd(DECL_ARGS); static int pre_fl(DECL_ARGS); @@ -146,7 +149,7 @@ { cond_head, pre_enc, NULL, "\\- ", NULL }, /* Nd */ { NULL, pre_nm, post_nm, NULL, NULL }, /* Nm */ { cond_body, pre_enc, post_enc, "[", "]" }, /* Op */ - { NULL, NULL, NULL, NULL, NULL }, /* Ot */ + { NULL, pre_ft, post_font, NULL, NULL }, /* Ot */ { NULL, pre_em, post_font, NULL, NULL }, /* Pa */ { NULL, pre_enc, post_enc, "The \\fB", "\\fP\nfunction returns the value 0 if successful;\n" @@ -220,7 +223,7 @@ { NULL, NULL, NULL, NULL, NULL }, /* Ek */ { NULL, pre_ux, NULL, "is currently in beta test.", NULL }, /* Bt */ { NULL, NULL, NULL, NULL, NULL }, /* Hf */ - { NULL, NULL, NULL, NULL, NULL }, /* Fr */ + { NULL, pre_em, post_font, NULL, NULL }, /* Fr */ { NULL, pre_ux, NULL, "currently under development.", NULL }, /* Ud */ { NULL, NULL, post_lb, NULL, NULL }, /* Lb */ { NULL, pre_pp, NULL, NULL, NULL }, /* Lp */ @@ -230,8 +233,8 @@ { cond_body, pre_enc, post_enc, "{", "}" }, /* Bro */ { NULL, NULL, NULL, NULL, NULL }, /* Brc */ { NULL, NULL, post_percent, NULL, NULL }, /* %C */ - { NULL, NULL, NULL, NULL, NULL }, /* Es */ - { NULL, NULL, NULL, NULL, NULL }, /* En */ + { NULL, pre_es, NULL, NULL, NULL }, /* Es */ + { cond_body, pre_en, post_en, NULL, NULL }, /* En */ { NULL, pre_ux, NULL, "DragonFly", NULL }, /* Dx */ { NULL, NULL, post_percent, NULL, NULL }, /* %Q */ { NULL, pre_br, NULL, NULL, NULL }, /* br */ @@ -1031,12 +1034,46 @@ return(1); } +static int +pre_en(DECL_ARGS) +{ + + if (NULL == n->norm->Es || + NULL == n->norm->Es->child) + return(1); + + print_word(n->norm->Es->child->string); + outflags &= ~MMAN_spc; + return(1); +} + static void +post_en(DECL_ARGS) +{ + + if (NULL == n->norm->Es || + NULL == n->norm->Es->child || + NULL == n->norm->Es->child->next) + return; + + outflags &= ~MMAN_spc; + print_word(n->norm->Es->child->next->string); + return; +} + +static void post_eo(DECL_ARGS) { if (MDOC_HEAD == n->type || MDOC_BODY == n->type) outflags &= ~MMAN_spc; +} + +static int +pre_es(DECL_ARGS) +{ + + return(0); } static int