[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.277 and 1.281

version 1.277, 2017/03/15 11:29:53 version 1.281, 2017/05/04 17:48:29
Line 118  static int    mdoc_vt_pre(MDOC_ARGS);
Line 118  static int    mdoc_vt_pre(MDOC_ARGS);
 static  int               mdoc_xr_pre(MDOC_ARGS);  static  int               mdoc_xr_pre(MDOC_ARGS);
 static  int               mdoc_xx_pre(MDOC_ARGS);  static  int               mdoc_xx_pre(MDOC_ARGS);
   
 static  const struct htmlmdoc mdocs[MDOC_MAX] = {  static  const struct htmlmdoc __mdocs[MDOC_MAX - MDOC_Dd] = {
         {mdoc_ap_pre, NULL}, /* Ap */  
         {NULL, NULL}, /* Dd */          {NULL, NULL}, /* Dd */
         {NULL, NULL}, /* Dt */          {NULL, NULL}, /* Dt */
         {NULL, NULL}, /* Os */          {NULL, NULL}, /* Os */
Line 135  static const struct htmlmdoc mdocs[MDOC_MAX] = {
Line 134  static const struct htmlmdoc mdocs[MDOC_MAX] = {
         {mdoc_it_pre, NULL}, /* It */          {mdoc_it_pre, NULL}, /* It */
         {mdoc_ad_pre, NULL}, /* Ad */          {mdoc_ad_pre, NULL}, /* Ad */
         {mdoc_an_pre, NULL}, /* An */          {mdoc_an_pre, NULL}, /* An */
           {mdoc_ap_pre, NULL}, /* Ap */
         {mdoc_ar_pre, NULL}, /* Ar */          {mdoc_ar_pre, NULL}, /* Ar */
         {mdoc_cd_pre, NULL}, /* Cd */          {mdoc_cd_pre, NULL}, /* Cd */
         {mdoc_cm_pre, NULL}, /* Cm */          {mdoc_cm_pre, NULL}, /* Cm */
Line 237  static const struct htmlmdoc mdocs[MDOC_MAX] = {
Line 237  static const struct htmlmdoc mdocs[MDOC_MAX] = {
         {mdoc_quote_pre, mdoc_quote_post}, /* En */          {mdoc_quote_pre, mdoc_quote_post}, /* En */
         {mdoc_xx_pre, NULL}, /* Dx */          {mdoc_xx_pre, NULL}, /* Dx */
         {mdoc__x_pre, mdoc__x_post}, /* %Q */          {mdoc__x_pre, mdoc__x_post}, /* %Q */
         {mdoc_sp_pre, NULL}, /* br */  
         {mdoc_sp_pre, NULL}, /* sp */          {mdoc_sp_pre, NULL}, /* sp */
         {mdoc__x_pre, mdoc__x_post}, /* %U */          {mdoc__x_pre, mdoc__x_post}, /* %U */
         {NULL, NULL}, /* Ta */          {NULL, NULL}, /* Ta */
         {mdoc_skip_pre, NULL}, /* ll */          {mdoc_skip_pre, NULL}, /* ll */
 };  };
   static  const struct htmlmdoc *const mdocs = __mdocs - MDOC_Dd;
   
   
 /*  /*
Line 393  print_mdoc_node(MDOC_ARGS)
Line 393  print_mdoc_node(MDOC_ARGS)
                         t = h->tag;                          t = h->tag;
                 }                  }
                 assert(h->tblt == NULL);                  assert(h->tblt == NULL);
                 if (mdocs[n->tok].pre && (n->end == ENDBODY_NOT || n->child))                  if (n->tok < ROFF_MAX) {
                           switch(n->tok) {
                           case ROFF_br:
                                   mdoc_sp_pre(meta, n, h);
                                   break;
                           default:
                                   abort();
                           }
                           break;
                   }
                   assert(n->tok >= MDOC_Dd && n->tok < MDOC_MAX);
                   if (mdocs[n->tok].pre != NULL &&
                       (n->end == ENDBODY_NOT || n->child != NULL))
                         child = (*mdocs[n->tok].pre)(meta, n, h);                          child = (*mdocs[n->tok].pre)(meta, n, h);
                 break;                  break;
         }          }
Line 412  print_mdoc_node(MDOC_ARGS)
Line 424  print_mdoc_node(MDOC_ARGS)
         case ROFFT_EQN:          case ROFFT_EQN:
                 break;                  break;
         default:          default:
                 if ( ! mdocs[n->tok].post || n->flags & NODE_ENDED)                  if (n->tok < ROFF_MAX ||
                       mdocs[n->tok].post == NULL ||
                       n->flags & NODE_ENDED)
                         break;                          break;
                 (*mdocs[n->tok].post)(meta, n, h);                  (*mdocs[n->tok].post)(meta, n, h);
                 if (n->end != ENDBODY_NOT)                  if (n->end != ENDBODY_NOT)
Line 501  mdoc_sh_pre(MDOC_ARGS)
Line 515  mdoc_sh_pre(MDOC_ARGS)
         case ROFFT_HEAD:          case ROFFT_HEAD:
                 id = html_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);                  if (id != NULL)
                           print_otag(h, TAG_A, "chR", "selflink", id);
                 free(id);                  free(id);
                 break;                  break;
         case ROFFT_BODY:          case ROFFT_BODY:
Line 524  mdoc_ss_pre(MDOC_ARGS)
Line 539  mdoc_ss_pre(MDOC_ARGS)
   
         id = html_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);          if (id != NULL)
                   print_otag(h, TAG_A, "chR", "selflink", id);
         free(id);          free(id);
         return 1;          return 1;
 }  }
Line 1000  mdoc_bd_pre(MDOC_ARGS)
Line 1016  mdoc_bd_pre(MDOC_ARGS)
                  */                   */
                 switch (nn->tok) {                  switch (nn->tok) {
                 case MDOC_Sm:                  case MDOC_Sm:
                 case MDOC_br:                  case ROFF_br:
                 case MDOC_sp:                  case MDOC_sp:
                 case MDOC_Bl:                  case MDOC_Bl:
                 case MDOC_D1:                  case MDOC_D1:
Line 1344  mdoc_sp_pre(MDOC_ARGS)
Line 1360  mdoc_sp_pre(MDOC_ARGS)
 static int  static int
 mdoc_lk_pre(MDOC_ARGS)  mdoc_lk_pre(MDOC_ARGS)
 {  {
         if (NULL == (n = n->child))          struct tag      *t;
   
           if ((n = n->child) == NULL)
                 return 0;                  return 0;
   
         assert(n->type == ROFFT_TEXT);          /* Link target and link text. */
           t = print_otag(h, TAG_A, "cTh", "Lk", n->string);
         print_otag(h, TAG_A, "cTh", "Lk", n->string);          if (n->next == NULL || n->next->flags & NODE_DELIMC)
   
         if (NULL == n->next)  
                 print_text(h, n->string);                  print_text(h, n->string);
           for (n = n->next; n != NULL && !(n->flags & NODE_DELIMC); n = n->next)
         for (n = n->next; n; n = n->next)  
                 print_text(h, n->string);                  print_text(h, n->string);
           print_tagq(h, t);
   
           /* Trailing punctuation. */
           while (n != NULL) {
                   h->flags |= HTML_NOSPACE;
                   print_text(h, n->string);
                   n = n->next;
           }
         return 0;          return 0;
 }  }
   

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

CVSweb