]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_html.c
The bufcat() function in -T[x]html was eating one byte off the end of its
[mandoc.git] / mdoc_html.c
index 1e766b04dc6cef4a0e7cabd0433b10b8b701dce4..33cebdacc11d42d56aef1ced4b5f6c946116d280 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_html.c,v 1.168 2011/05/17 11:34:31 kristaps Exp $ */
+/*     $Id: mdoc_html.c,v 1.172 2011/07/04 09:42:38 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -610,6 +610,7 @@ mdoc_sh_pre(MDOC_ARGS)
                return(1);
 
        bufinit(h);
+       bufcat(h, "x");
        for (n = n->child; n; n = n->next) {
                bufcat_id(h, n->string);
                if (n->next)
@@ -636,6 +637,7 @@ mdoc_ss_pre(MDOC_ARGS)
                return(1);
 
        bufinit(h);
+       bufcat(h, "x");
        for (n = n->child; n; n = n->next) {
                bufcat_id(h, n->string);
                if (n->next)
@@ -1171,6 +1173,7 @@ mdoc_sx_pre(MDOC_ARGS)
        struct htmlpair  tag[2];
 
        bufinit(h);
+       bufcat(h, "#x");
        for (n = n->child; n; n = n->next) {
                bufcat_id(h, n->string);
                if (n->next)
@@ -1632,8 +1635,9 @@ mdoc_sp_pre(MDOC_ARGS)
        SCALE_VS_INIT(&su, 1);
 
        if (MDOC_sp == n->tok) {
-               if (n->child)
-                       a2roffsu(n->child->string, &su, SCALE_VS);
+               if (NULL != (n = n->child))
+                       if ( ! a2roffsu(n->string, &su, SCALE_VS))
+                               SCALE_VS_INIT(&su, atoi(n->string));
        } else
                su.scale = 0;
 
@@ -1665,10 +1669,11 @@ mdoc_lk_pre(MDOC_ARGS)
 
        print_otag(h, TAG_A, 2, tag);
 
-       for (n = n->next; n; n = n->next) {
-               assert(MDOC_TEXT == n->type);
+       if (NULL == n->next)
+               print_text(h, n->string);
+
+       for (n = n->next; n; n = n->next)
                print_text(h, n->string);
-       }
 
        return(0);
 }