[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.14 and 1.21

version 1.14, 2009/10/26 08:18:16 version 1.21, 2009/11/15 06:45:31
Line 18 
Line 18 
   
 #include <assert.h>  #include <assert.h>
 #include <ctype.h>  #include <ctype.h>
 #include <err.h>  
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
Line 189  print_man_node(MAN_ARGS)
Line 188  print_man_node(MAN_ARGS)
                 break;                  break;
         case (MAN_TEXT):          case (MAN_TEXT):
                 print_text(h, n->string);                  print_text(h, n->string);
                 break;                  return;
         default:          default:
                   /*
                    * Close out scope of font prior to opening a macro
                    * scope.  Assert that the metafont is on the top of the
                    * stack (it's never nested).
                    */
                   if (h->metaf) {
                           assert(h->metaf == t);
                           print_tagq(h, h->metaf);
                           assert(NULL == h->metaf);
                           t = h->tags.head;
                   }
                 if (mans[n->tok].pre)                  if (mans[n->tok].pre)
                         child = (*mans[n->tok].pre)(m, n, h);                          child = (*mans[n->tok].pre)(m, n, h);
                 break;                  break;
Line 234  a2width(const struct man_node *n, struct roffsu *su)
Line 244  a2width(const struct man_node *n, struct roffsu *su)
 static int  static int
 man_root_pre(MAN_ARGS)  man_root_pre(MAN_ARGS)
 {  {
         struct htmlpair  tag[2];          struct htmlpair  tag[3];
         struct tag      *t, *tt;          struct tag      *t, *tt;
         char             b[BUFSIZ], title[BUFSIZ];          char             b[BUFSIZ], title[BUFSIZ];
   
Line 248  man_root_pre(MAN_ARGS)
Line 258  man_root_pre(MAN_ARGS)
         PAIR_CLASS_INIT(&tag[0], "header");          PAIR_CLASS_INIT(&tag[0], "header");
         bufcat_style(h, "width", "100%");          bufcat_style(h, "width", "100%");
         PAIR_STYLE_INIT(&tag[1], h);          PAIR_STYLE_INIT(&tag[1], h);
         t = print_otag(h, TAG_TABLE, 2, tag);          PAIR_SUMMARY_INIT(&tag[2], "header");
   
           t = print_otag(h, TAG_TABLE, 3, tag);
         tt = print_otag(h, TAG_TR, 0, NULL);          tt = print_otag(h, TAG_TR, 0, NULL);
   
         bufinit(h);          bufinit(h);
Line 282  man_root_pre(MAN_ARGS)
Line 294  man_root_pre(MAN_ARGS)
 static void  static void
 man_root_post(MAN_ARGS)  man_root_post(MAN_ARGS)
 {  {
         struct htmlpair  tag[2];          struct htmlpair  tag[3];
         struct tag      *t, *tt;          struct tag      *t, *tt;
         char             b[DATESIZ];          char             b[DATESIZ];
   
Line 291  man_root_post(MAN_ARGS)
Line 303  man_root_post(MAN_ARGS)
         PAIR_CLASS_INIT(&tag[0], "footer");          PAIR_CLASS_INIT(&tag[0], "footer");
         bufcat_style(h, "width", "100%");          bufcat_style(h, "width", "100%");
         PAIR_STYLE_INIT(&tag[1], h);          PAIR_STYLE_INIT(&tag[1], h);
         t = print_otag(h, TAG_TABLE, 2, tag);          PAIR_SUMMARY_INIT(&tag[2], "footer");
   
           t = print_otag(h, TAG_TABLE, 3, tag);
         tt = print_otag(h, TAG_TR, 0, NULL);          tt = print_otag(h, TAG_TR, 0, NULL);
   
         bufinit(h);          bufinit(h);
Line 330  man_br_pre(MAN_ARGS)
Line 344  man_br_pre(MAN_ARGS)
         bufcat_su(h, "height", &su);          bufcat_su(h, "height", &su);
         PAIR_STYLE_INIT(&tag, h);          PAIR_STYLE_INIT(&tag, h);
         print_otag(h, TAG_DIV, 1, &tag);          print_otag(h, TAG_DIV, 1, &tag);
           /* So the div isn't empty: */
           print_text(h, "\\~");
   
         return(0);          return(0);
 }  }
   
Line 378  man_alt_pre(MAN_ARGS)
Line 395  man_alt_pre(MAN_ARGS)
         const struct man_node   *nn;          const struct man_node   *nn;
         struct tag              *t;          struct tag              *t;
         int                      i;          int                      i;
         struct htmlpair          tagi, tagb, *tagp;          struct htmlpair          tagi, tagb, tagr, *tagp;
   
         PAIR_CLASS_INIT(&tagi, "italic");          PAIR_CLASS_INIT(&tagi, "italic");
         PAIR_CLASS_INIT(&tagb, "bold");          PAIR_CLASS_INIT(&tagb, "bold");
           PAIR_CLASS_INIT(&tagr, "roman");
   
         for (i = 0, nn = n->child; nn; nn = nn->next, i++) {          for (i = 0, nn = n->child; nn; nn = nn->next, i++) {
                 switch (n->tok) {                  switch (n->tok) {
Line 392  man_alt_pre(MAN_ARGS)
Line 410  man_alt_pre(MAN_ARGS)
                         tagp = i % 2 ? &tagb : &tagi;                          tagp = i % 2 ? &tagb : &tagi;
                         break;                          break;
                 case (MAN_RI):                  case (MAN_RI):
                         tagp = i % 2 ? &tagi : NULL;                          tagp = i % 2 ? &tagi : &tagr;
                         break;                          break;
                 case (MAN_IR):                  case (MAN_IR):
                         tagp = i % 2 ? NULL : &tagi;                          tagp = i % 2 ? &tagr : &tagi;
                         break;                          break;
                 case (MAN_BR):                  case (MAN_BR):
                         tagp = i % 2 ? NULL : &tagb;                          tagp = i % 2 ? &tagr : &tagb;
                         break;                          break;
                 case (MAN_RB):                  case (MAN_RB):
                         tagp = i % 2 ? &tagb : NULL;                          tagp = i % 2 ? &tagb : &tagr;
                         break;                          break;
                 default:                  default:
                         abort();                          abort();
Line 411  man_alt_pre(MAN_ARGS)
Line 429  man_alt_pre(MAN_ARGS)
                 if (i)                  if (i)
                         h->flags |= HTML_NOSPACE;                          h->flags |= HTML_NOSPACE;
   
                 if (tagp) {                  t = print_otag(h, TAG_SPAN, 1, tagp);
                         t = print_otag(h, TAG_SPAN, 1, tagp);                  print_man_node(m, nn, h);
                         print_man_node(m, nn, h);                  print_tagq(h, t);
                         print_tagq(h, t);  
                 } else  
                         print_man_node(m, nn, h);  
         }          }
   
         return(0);          return(0);

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.21

CVSweb