]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_html.c
Do not write duplicate id= attributes, they violate HTML syntax.
[mandoc.git] / mdoc_html.c
index 58eb71b619254c21cf60e727a001f5d804c3538c..9bdcd426a26318aecad731c26b10f62f100afe58 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_html.c,v 1.303 2018/05/21 01:11:31 schwarze Exp $ */
+/*     $Id: mdoc_html.c,v 1.304 2018/05/25 20:23:51 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2014,2015,2016,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -502,7 +502,7 @@ cond_id(const struct roff_node *n)
             (n->parent->tok == MDOC_Xo &&
              n->parent->parent->prev == NULL &&
              n->parent->parent->parent->tok == MDOC_It)))
-               return html_make_id(n);
+               return html_make_id(n, 1);
        return NULL;
 }
 
@@ -513,11 +513,10 @@ mdoc_sh_pre(MDOC_ARGS)
 
        switch (n->type) {
        case ROFFT_HEAD:
-               id = html_make_id(n);
+               id = html_make_id(n, 1);
                print_otag(h, TAG_H1, "cTi", "Sh", id);
                if (id != NULL)
                        print_otag(h, TAG_A, "chR", "permalink", id);
-               free(id);
                break;
        case ROFFT_BODY:
                if (n->sec == SEC_AUTHORS)
@@ -537,11 +536,10 @@ mdoc_ss_pre(MDOC_ARGS)
        if (n->type != ROFFT_HEAD)
                return 1;
 
-       id = html_make_id(n);
+       id = html_make_id(n, 1);
        print_otag(h, TAG_H2, "cTi", "Ss", id);
        if (id != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
-       free(id);
        return 1;
 }
 
@@ -553,7 +551,6 @@ mdoc_fl_pre(MDOC_ARGS)
        if ((id = cond_id(n)) != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
        print_otag(h, TAG_CODE, "cTi", "Fl", id);
-       free(id);
 
        print_text(h, "\\-");
        if (!(n->child == NULL &&
@@ -573,7 +570,6 @@ mdoc_cm_pre(MDOC_ARGS)
        if ((id = cond_id(n)) != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
        print_otag(h, TAG_CODE, "cTi", "Cm", id);
-       free(id);
        return 1;
 }
 
@@ -882,7 +878,7 @@ mdoc_sx_pre(MDOC_ARGS)
 {
        char    *id;
 
-       id = html_make_id(n);
+       id = html_make_id(n, 0);
        print_otag(h, TAG_A, "cThR", "Sx", id);
        free(id);
        return 1;
@@ -1030,7 +1026,6 @@ mdoc_dv_pre(MDOC_ARGS)
        if ((id = cond_id(n)) != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
        print_otag(h, TAG_CODE, "cTi", "Dv", id);
-       free(id);
        return 1;
 }
 
@@ -1042,7 +1037,6 @@ mdoc_ev_pre(MDOC_ARGS)
        if ((id = cond_id(n)) != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
        print_otag(h, TAG_CODE, "cTi", "Ev", id);
-       free(id);
        return 1;
 }
 
@@ -1055,12 +1049,11 @@ mdoc_er_pre(MDOC_ARGS)
            (n->parent->tok == MDOC_It ||
             (n->parent->tok == MDOC_Bq &&
              n->parent->parent->parent->tok == MDOC_It)) ?
-           html_make_id(n) : NULL;
+           html_make_id(n, 1) : NULL;
 
        if (id != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
        print_otag(h, TAG_CODE, "cTi", "Er", id);
-       free(id);
        return 1;
 }
 
@@ -1411,7 +1404,6 @@ mdoc_ic_pre(MDOC_ARGS)
        if ((id = cond_id(n)) != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
        print_otag(h, TAG_CODE, "cTi", "Ic", id);
-       free(id);
        return 1;
 }
 
@@ -1464,7 +1456,6 @@ mdoc_ms_pre(MDOC_ARGS)
        if ((id = cond_id(n)) != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
        print_otag(h, TAG_SPAN, "cTi", "Ms", id);
-       free(id);
        return 1;
 }
 
@@ -1505,7 +1496,6 @@ mdoc_no_pre(MDOC_ARGS)
        if ((id = cond_id(n)) != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
        print_otag(h, TAG_SPAN, "ci", "No", id);
-       free(id);
        return 1;
 }
 
@@ -1517,7 +1507,6 @@ mdoc_li_pre(MDOC_ARGS)
        if ((id = cond_id(n)) != NULL)
                print_otag(h, TAG_A, "chR", "permalink", id);
        print_otag(h, TAG_CODE, "ci", "Li", id);
-       free(id);
        return 1;
 }