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

Diff for /mandoc/man_html.c between version 1.167 and 1.171

version 1.167, 2019/01/07 07:26:29 version 1.171, 2019/02/28 16:36:13
Line 119  html_man(void *arg, const struct roff_meta *man)
Line 119  html_man(void *arg, const struct roff_meta *man)
         if ((h->oflags & HTML_FRAGMENT) == 0) {          if ((h->oflags & HTML_FRAGMENT) == 0) {
                 print_gen_decls(h);                  print_gen_decls(h);
                 print_otag(h, TAG_HTML, "");                  print_otag(h, TAG_HTML, "");
                 if (n->type == ROFFT_COMMENT)                  if (n != NULL && n->type == ROFFT_COMMENT)
                         print_gen_comment(h, n);                          print_gen_comment(h, n);
                 t = print_otag(h, TAG_HEAD, "");                  t = print_otag(h, TAG_HEAD, "");
                 print_man_head(man, h);                  print_man_head(man, h);
Line 168  print_man_node(MAN_ARGS)
Line 168  print_man_node(MAN_ARGS)
         html_fillmode(h, n->flags & NODE_NOFILL ? ROFF_nf : ROFF_fi);          html_fillmode(h, n->flags & NODE_NOFILL ? ROFF_nf : ROFF_fi);
   
         child = 1;          child = 1;
         t = h->tag;  
         if (t->tag == TAG_P || t->tag == TAG_PRE)  
                 t = t->next;  
   
         switch (n->type) {          switch (n->type) {
         case ROFFT_TEXT:          case ROFFT_TEXT:
                 if (*n->string == '\0') {                  if (*n->string == '\0') {
Line 183  print_man_node(MAN_ARGS)
Line 179  print_man_node(MAN_ARGS)
                         print_endline(h);                          print_endline(h);
                 else if (n->flags & NODE_DELIMC)                  else if (n->flags & NODE_DELIMC)
                         h->flags |= HTML_NOSPACE;                          h->flags |= HTML_NOSPACE;
                   t = h->tag;
                   t->refcnt++;
                 print_text(h, n->string);                  print_text(h, n->string);
                 break;                  break;
         case ROFFT_EQN:          case ROFFT_EQN:
                   t = h->tag;
                   t->refcnt++;
                 print_eqn(h, n->eqn);                  print_eqn(h, n->eqn);
                 break;                  break;
         case ROFFT_TBL:          case ROFFT_TBL:
Line 211  print_man_node(MAN_ARGS)
Line 211  print_man_node(MAN_ARGS)
                  * the "meta" table state.  This will be reopened on the                   * the "meta" table state.  This will be reopened on the
                  * next table element.                   * next table element.
                  */                   */
                 if (h->tblt != NULL) {                  if (h->tblt != NULL)
                         print_tblclose(h);                          print_tblclose(h);
                         t = h->tag;                  t = h->tag;
                 }                  t->refcnt++;
                 if (n->tok < ROFF_MAX) {                  if (n->tok < ROFF_MAX) {
                         roff_html_pre(h, n);                          roff_html_pre(h, n);
                           t->refcnt--;
                         print_stagq(h, t);                          print_stagq(h, t);
                         return;                          return;
                 }                  }
Line 231  print_man_node(MAN_ARGS)
Line 232  print_man_node(MAN_ARGS)
                 print_man_nodelist(man, n->child, h);                  print_man_nodelist(man, n->child, h);
   
         /* This will automatically close out any font scope. */          /* This will automatically close out any font scope. */
         print_stagq(h, t);          t->refcnt--;
           if (n->type == ROFFT_BLOCK &&
               (n->tok == MAN_IP || n->tok == MAN_TP || n->tok == MAN_TQ)) {
                   t = h->tag;
                   while (t->tag != TAG_DL)
                           t = t->next;
                   /*
                    * Close the list if no further item of the same type
                    * follows; otherwise, close the item only.
                    */
                   if (n->next == NULL ||
                       (n->tok == MAN_IP && n->next->tok != MAN_IP) ||
                       (n->tok != MAN_IP &&
                        n->next->tok != MAN_TP && n->next->tok != MAN_TQ)) {
                           print_tagq(h, t);
                           t = NULL;
                   }
           }
           if (t != NULL)
                   print_stagq(h, t);
   
         if (n->flags & NODE_NOFILL && n->tok != MAN_YS &&          if (n->flags & NODE_NOFILL && n->tok != MAN_YS &&
             (n->next != NULL && n->next->flags & NODE_LINE)) {              (n->next != NULL && n->next->flags & NODE_LINE)) {
Line 299  man_SH_pre(MAN_ARGS)
Line 319  man_SH_pre(MAN_ARGS)
         case ROFFT_HEAD:          case ROFFT_HEAD:
                 id = html_make_id(n, 1);                  id = html_make_id(n, 1);
                 if (n->tok == MAN_SH)                  if (n->tok == MAN_SH)
                         print_otag(h, TAG_H1, "cTi", "Sh", id);                          print_otag(h, TAG_H1, "ci", "Sh", id);
                 else                  else
                         print_otag(h, TAG_H2, "cTi", "Ss", id);                          print_otag(h, TAG_H2, "ci", "Ss", id);
                 if (id != NULL)                  if (id != NULL)
                         print_otag(h, TAG_A, "chR", "permalink", id);                          print_otag(h, TAG_A, "chR", "permalink", id);
                 break;                  break;
Line 397  man_IP_pre(MAN_ARGS)
Line 417  man_IP_pre(MAN_ARGS)
         switch (n->type) {          switch (n->type) {
         case ROFFT_BLOCK:          case ROFFT_BLOCK:
                 html_close_paragraph(h);                  html_close_paragraph(h);
                 print_otag(h, TAG_DL, "c", "Bl-tag");                  /*
                    * Open a new list unless there is an immediately
                    * preceding item of the same type.
                    */
                   if (n->prev == NULL ||
                       (n->tok == MAN_IP && n->prev->tok != MAN_IP) ||
                       (n->tok != MAN_IP &&
                        n->prev->tok != MAN_TP && n->prev->tok != MAN_TQ))
                           print_otag(h, TAG_DL, "c", "Bl-tag");
                 return 1;                  return 1;
         case ROFFT_HEAD:          case ROFFT_HEAD:
                 print_otag(h, TAG_DT, "");                  print_otag(h, TAG_DT, "");
Line 513  man_SY_pre(MAN_ARGS)
Line 541  man_SY_pre(MAN_ARGS)
                 break;                  break;
         case ROFFT_HEAD:          case ROFFT_HEAD:
                 print_otag(h, TAG_TD, "");                  print_otag(h, TAG_TD, "");
                 print_otag(h, TAG_CODE, "cT", "Nm");                  print_otag(h, TAG_CODE, "c", "Nm");
                 break;                  break;
         case ROFFT_BODY:          case ROFFT_BODY:
                 print_otag(h, TAG_TD, "");                  print_otag(h, TAG_TD, "");
Line 535  man_UR_pre(MAN_ARGS)
Line 563  man_UR_pre(MAN_ARGS)
                 assert(n->child->type == ROFFT_TEXT);                  assert(n->child->type == ROFFT_TEXT);
                 if (n->tok == MAN_MT) {                  if (n->tok == MAN_MT) {
                         mandoc_asprintf(&cp, "mailto:%s", n->child->string);                          mandoc_asprintf(&cp, "mailto:%s", n->child->string);
                         print_otag(h, TAG_A, "cTh", "Mt", cp);                          print_otag(h, TAG_A, "ch", "Mt", cp);
                         free(cp);                          free(cp);
                 } else                  } else
                         print_otag(h, TAG_A, "cTh", "Lk", n->child->string);                          print_otag(h, TAG_A, "ch", "Lk", n->child->string);
         }          }
   
         assert(n->next->type == ROFFT_BODY);          assert(n->next->type == ROFFT_BODY);

Legend:
Removed from v.1.167  
changed lines
  Added in v.1.171

CVSweb