]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_term.c
Fix to auto-closing of LINK tag in -Txhtml (thanks to Daniel Friesel).
[mandoc.git] / mdoc_term.c
index 6197f10d4bf56c45b01a404fe357f2f3a5d53865..7c1c6661852f9a3b2987cf2a2a073aa74461de24 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_term.c,v 1.113 2010/04/03 14:25:12 kristaps Exp $ */
+/*     $Id: mdoc_term.c,v 1.117 2010/04/08 08:17:55 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -93,12 +93,12 @@ static      void      termp_sq_post(DECL_ARGS);
 static void      termp_ss_post(DECL_ARGS);
 static void      termp_vt_post(DECL_ARGS);
 
-static int       termp__t_pre(DECL_ARGS);
 static int       termp_an_pre(DECL_ARGS);
 static int       termp_ap_pre(DECL_ARGS);
 static int       termp_aq_pre(DECL_ARGS);
 static int       termp_bd_pre(DECL_ARGS);
 static int       termp_bf_pre(DECL_ARGS);
+static int       termp_bl_pre(DECL_ARGS);
 static int       termp_bold_pre(DECL_ARGS);
 static int       termp_bq_pre(DECL_ARGS);
 static int       termp_brq_pre(DECL_ARGS);
@@ -148,7 +148,7 @@ static      const struct termact termacts[MDOC_MAX] = {
        { termp_d1_pre, termp_d1_post }, /* Dl */
        { termp_bd_pre, termp_bd_post }, /* Bd */
        { NULL, NULL }, /* Ed */
-       { NULL, termp_bl_post }, /* Bl */
+       { termp_bl_pre, termp_bl_post }, /* Bl */
        { NULL, NULL }, /* El */
        { termp_it_pre, termp_it_post }, /* It */
        { NULL, NULL }, /* Ad */ 
@@ -187,7 +187,7 @@ static      const struct termact termacts[MDOC_MAX] = {
        { NULL, termp____post }, /* %O */
        { NULL, termp____post }, /* %P */
        { NULL, termp____post }, /* %R */
-       { termp__t_pre, termp____post }, /* %T */
+       { termp_under_pre, termp____post }, /* %T */
        { NULL, termp____post }, /* %V */
        { NULL, NULL }, /* Ac */
        { termp_aq_pre, termp_aq_post }, /* Ao */
@@ -1070,10 +1070,10 @@ termp_fl_pre(DECL_ARGS)
        term_fontpush(p, TERMFONT_BOLD);
        term_word(p, "\\-");
 
-       /* A blank `Fl' should incur a subsequent space. */
-
        if (n->child)
                p->flags |= TERMP_NOSPACE;
+       else if (n->next && n->next->line == n->line)
+               p->flags |= TERMP_NOSPACE;
 
        return(1);
 }
@@ -1249,6 +1249,15 @@ termp_nd_pre(DECL_ARGS)
 }
 
 
+/* ARGSUSED */
+static int
+termp_bl_pre(DECL_ARGS)
+{
+
+       return(MDOC_HEAD != n->type);
+}
+
+
 /* ARGSUSED */
 static void
 termp_bl_post(DECL_ARGS)
@@ -1594,8 +1603,8 @@ termp_bd_pre(DECL_ARGS)
        if (MDOC_BLOCK == n->type) {
                print_bvspace(p, n, n);
                return(1);
-       } else if (MDOC_BODY != n->type)
-               return(1);
+       } else if (MDOC_HEAD == n->type)
+               return(0);
 
        nn = n->parent;
 
@@ -2070,14 +2079,6 @@ termp____post(DECL_ARGS)
        /* TODO: %U. */
 
        p->flags |= TERMP_NOSPACE;
-       switch (n->tok) {
-       case (MDOC__T):
-               term_word(p, "\\(rq");
-               p->flags |= TERMP_NOSPACE;
-               break;
-       default:
-               break;
-       }
        term_word(p, n->next ? "," : ".");
 }
 
@@ -2127,14 +2128,3 @@ termp_under_pre(DECL_ARGS)
        term_fontpush(p, TERMFONT_UNDER);
        return(1);
 }
-
-
-/* ARGSUSED */
-static int
-termp__t_pre(DECL_ARGS)
-{
-
-       term_word(p, "\\(lq");
-       p->flags |= TERMP_NOSPACE;
-       return(1);
-}