[BACK]Return to mdoc_html.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/mdoc_html.c between version 1.276 and 1.277

version 1.276, 2017/03/14 01:35:15 version 1.277, 2017/03/15 11:29:53
Line 49  struct htmlmdoc {
Line 49  struct htmlmdoc {
 };  };
   
 static  char             *cond_id(const struct roff_node *);  static  char             *cond_id(const struct roff_node *);
 static  char             *make_id(const struct roff_node *);  
 static  void              print_mdoc_head(MDOC_ARGS);  static  void              print_mdoc_head(MDOC_ARGS);
 static  void              print_mdoc_node(MDOC_ARGS);  static  void              print_mdoc_node(MDOC_ARGS);
 static  void              print_mdoc_nodelist(MDOC_ARGS);  static  void              print_mdoc_nodelist(MDOC_ARGS);
Line 478  mdoc_root_pre(MDOC_ARGS)
Line 477  mdoc_root_pre(MDOC_ARGS)
 }  }
   
 static char *  static char *
 make_id(const struct roff_node *n)  
 {  
         const struct roff_node  *nch;  
         char                    *buf, *cp;  
   
         for (nch = n->child; nch != NULL; nch = nch->next)  
                 if (nch->type != ROFFT_TEXT)  
                         return NULL;  
   
         buf = NULL;  
         deroff(&buf, n);  
   
         /* http://www.w3.org/TR/html5/dom.html#the-id-attribute */  
   
         for (cp = buf; *cp != '\0'; cp++)  
                 if (*cp == ' ')  
                         *cp = '_';  
   
         return buf;  
 }  
   
 static char *  
 cond_id(const struct roff_node *n)  cond_id(const struct roff_node *n)
 {  {
         if (n->child != NULL &&          if (n->child != NULL &&
Line 511  cond_id(const struct roff_node *n)
Line 488  cond_id(const struct roff_node *n)
              (n->parent->tok == MDOC_Xo &&               (n->parent->tok == MDOC_Xo &&
               n->parent->parent->prev == NULL &&                n->parent->parent->prev == NULL &&
               n->parent->parent->parent->tok == MDOC_It)))                n->parent->parent->parent->tok == MDOC_It)))
                 return make_id(n);                  return html_make_id(n);
         return NULL;          return NULL;
 }  }
   
Line 522  mdoc_sh_pre(MDOC_ARGS)
Line 499  mdoc_sh_pre(MDOC_ARGS)
   
         switch (n->type) {          switch (n->type) {
         case ROFFT_HEAD:          case ROFFT_HEAD:
                 id = make_id(n);                  id = html_make_id(n);
                 print_otag(h, TAG_H1, "cTi", "Sh", id);                  print_otag(h, TAG_H1, "cTi", "Sh", id);
                 print_otag(h, TAG_A, "chR", "selflink", id);                  print_otag(h, TAG_A, "chR", "selflink", id);
                 free(id);                  free(id);
Line 545  mdoc_ss_pre(MDOC_ARGS)
Line 522  mdoc_ss_pre(MDOC_ARGS)
         if (n->type != ROFFT_HEAD)          if (n->type != ROFFT_HEAD)
                 return 1;                  return 1;
   
         id = make_id(n);          id = html_make_id(n);
         print_otag(h, TAG_H2, "cTi", "Ss", id);          print_otag(h, TAG_H2, "cTi", "Ss", id);
         print_otag(h, TAG_A, "chR", "selflink", id);          print_otag(h, TAG_A, "chR", "selflink", id);
         free(id);          free(id);
Line 955  mdoc_sx_pre(MDOC_ARGS)
Line 932  mdoc_sx_pre(MDOC_ARGS)
 {  {
         char    *id;          char    *id;
   
         id = make_id(n);          id = html_make_id(n);
         print_otag(h, TAG_A, "cThR", "Sx", id);          print_otag(h, TAG_A, "cThR", "Sx", id);
         free(id);          free(id);
         return 1;          return 1;
Line 1128  mdoc_er_pre(MDOC_ARGS)
Line 1105  mdoc_er_pre(MDOC_ARGS)
             (n->parent->tok == MDOC_It ||              (n->parent->tok == MDOC_It ||
              (n->parent->tok == MDOC_Bq &&               (n->parent->tok == MDOC_Bq &&
               n->parent->parent->parent->tok == MDOC_It)) ?                n->parent->parent->parent->tok == MDOC_It)) ?
             make_id(n) : NULL;              html_make_id(n) : NULL;
   
         if (id != NULL)          if (id != NULL)
                 print_otag(h, TAG_A, "chR", "selflink", id);                  print_otag(h, TAG_A, "chR", "selflink", id);

Legend:
Removed from v.1.276  
changed lines
  Added in v.1.277

CVSweb