[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.118 and 1.121

version 1.118, 2010/12/15 16:08:18 version 1.121, 2010/12/15 23:44:02
Line 103  static int    mdoc_nm_pre(MDOC_ARGS);
Line 103  static int    mdoc_nm_pre(MDOC_ARGS);
 static  int               mdoc_ns_pre(MDOC_ARGS);  static  int               mdoc_ns_pre(MDOC_ARGS);
 static  int               mdoc_pa_pre(MDOC_ARGS);  static  int               mdoc_pa_pre(MDOC_ARGS);
 static  void              mdoc_pf_post(MDOC_ARGS);  static  void              mdoc_pf_post(MDOC_ARGS);
   static  int               mdoc_pp_pre(MDOC_ARGS);
 static  void              mdoc_quote_post(MDOC_ARGS);  static  void              mdoc_quote_post(MDOC_ARGS);
 static  int               mdoc_quote_pre(MDOC_ARGS);  static  int               mdoc_quote_pre(MDOC_ARGS);
 static  int               mdoc_rs_pre(MDOC_ARGS);  static  int               mdoc_rs_pre(MDOC_ARGS);
Line 126  static const struct htmlmdoc mdocs[MDOC_MAX] = {
Line 127  static const struct htmlmdoc mdocs[MDOC_MAX] = {
         {NULL, NULL}, /* Os */          {NULL, NULL}, /* Os */
         {mdoc_sh_pre, NULL }, /* Sh */          {mdoc_sh_pre, NULL }, /* Sh */
         {mdoc_ss_pre, NULL }, /* Ss */          {mdoc_ss_pre, NULL }, /* Ss */
         {mdoc_sp_pre, NULL}, /* Pp */          {mdoc_pp_pre, NULL}, /* Pp */
         {mdoc_d1_pre, NULL}, /* D1 */          {mdoc_d1_pre, NULL}, /* D1 */
         {mdoc_d1_pre, NULL}, /* Dl */          {mdoc_d1_pre, NULL}, /* Dl */
         {mdoc_bd_pre, NULL}, /* Bd */          {mdoc_bd_pre, NULL}, /* Bd */
Line 227  static const struct htmlmdoc mdocs[MDOC_MAX] = {
Line 228  static const struct htmlmdoc mdocs[MDOC_MAX] = {
         {NULL, NULL}, /* Fr */          {NULL, NULL}, /* Fr */
         {mdoc_ud_pre, NULL}, /* Ud */          {mdoc_ud_pre, NULL}, /* Ud */
         {mdoc_lb_pre, NULL}, /* Lb */          {mdoc_lb_pre, NULL}, /* Lb */
         {mdoc_sp_pre, NULL}, /* Lp */          {mdoc_pp_pre, NULL}, /* Lp */
         {mdoc_lk_pre, NULL}, /* Lk */          {mdoc_lk_pre, NULL}, /* Lk */
         {mdoc_mt_pre, NULL}, /* Mt */          {mdoc_mt_pre, NULL}, /* Mt */
         {mdoc_quote_pre, mdoc_quote_post}, /* Brq */          {mdoc_quote_pre, mdoc_quote_post}, /* Brq */
Line 375  print_mdoc(MDOC_ARGS)
Line 376  print_mdoc(MDOC_ARGS)
         print_tagq(h, t);          print_tagq(h, t);
   
         t = print_otag(h, TAG_BODY, 0, NULL);          t = print_otag(h, TAG_BODY, 0, NULL);
   
         print_mdoc_nodelist(m, n, h);          print_mdoc_nodelist(m, n, h);
         print_tagq(h, t);          print_tagq(h, t);
 }  }
Line 474  mdoc_root_post(MDOC_ARGS)
Line 474  mdoc_root_post(MDOC_ARGS)
   
         time2a(m->date, b, DATESIZ);          time2a(m->date, b, DATESIZ);
   
         /*  
          * XXX: this should use divs, but in Firefox, divs with nested  
          * divs for some reason puke when trying to put a border line  
          * below.  So I use tables, instead.  
          */  
   
         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);
Line 513  mdoc_root_pre(MDOC_ARGS)
Line 507  mdoc_root_pre(MDOC_ARGS)
         struct tag      *t, *tt;          struct tag      *t, *tt;
         char             b[BUFSIZ], title[BUFSIZ];          char             b[BUFSIZ], title[BUFSIZ];
   
         (void)strlcpy(b, m->vol, BUFSIZ);          strlcpy(b, m->vol, BUFSIZ);
   
         if (m->arch) {          if (m->arch) {
                 (void)strlcat(b, " (", BUFSIZ);                  strlcat(b, " (", BUFSIZ);
                 (void)strlcat(b, m->arch, BUFSIZ);                  strlcat(b, m->arch, BUFSIZ);
                 (void)strlcat(b, ")", BUFSIZ);                  strlcat(b, ")", BUFSIZ);
         }          }
   
         (void)snprintf(title, BUFSIZ - 1,          snprintf(title, BUFSIZ - 1, "%s(%s)", m->title, m->msec);
                         "%s(%s)", m->title, m->msec);  
   
         /* XXX: see note in mdoc_root_post() about divs. */  
   
         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);
Line 993  static int
Line 984  static int
 mdoc_bl_pre(MDOC_ARGS)  mdoc_bl_pre(MDOC_ARGS)
 {  {
         size_t           i;          size_t           i;
         struct htmlpair  tag[2];          struct htmlpair  tag[3];
         struct roffsu    su;          struct roffsu    su;
   
         if (MDOC_BODY == n->type) {          if (MDOC_BODY == n->type) {
Line 1027  mdoc_bl_pre(MDOC_ARGS)
Line 1018  mdoc_bl_pre(MDOC_ARGS)
                 return(0);                  return(0);
         }          }
   
           SCALE_VS_INIT(&su, 0);
           bufcat_su(h, "margin-top", &su);
           bufcat_su(h, "margin-bottom", &su);
           PAIR_STYLE_INIT(&tag[0], h);
   
         assert(lists[n->data.Bl->type]);          assert(lists[n->data.Bl->type]);
         PAIR_CLASS_INIT(&tag[0], lists[n->data.Bl->type]);          PAIR_CLASS_INIT(&tag[1], lists[n->data.Bl->type]);
         i = 1;          i = 2;
   
         /* Set the block's left-hand margin. */          /* Set the block's left-hand margin. */
   
         if (n->data.Bl->offs) {          if (n->data.Bl->offs) {
                 a2offs(n->data.Bl->offs, &su);                  a2offs(n->data.Bl->offs, &su);
                 bufcat_su(h, "margin-left", &su);                  bufcat_su(h, "margin-left", &su);
                 PAIR_STYLE_INIT(&tag[1], h);                  PAIR_STYLE_INIT(&tag[2], h);
                 i = 2;                  i = 3;
         }          }
   
         switch (n->data.Bl->type) {          switch (n->data.Bl->type) {
Line 1137  mdoc_d1_pre(MDOC_ARGS)
Line 1133  mdoc_d1_pre(MDOC_ARGS)
         bufcat_su(h, "margin-top", &su);          bufcat_su(h, "margin-top", &su);
         bufcat_su(h, "margin-bottom", &su);          bufcat_su(h, "margin-bottom", &su);
         PAIR_STYLE_INIT(&tag[0], h);          PAIR_STYLE_INIT(&tag[0], h);
           print_otag(h, TAG_BLOCKQUOTE, 1, tag);
   
           /* BLOCKQUOTE needs a block body. */
   
         if (MDOC_Dl == n->tok) {          if (MDOC_Dl == n->tok) {
                 PAIR_CLASS_INIT(&tag[1], "lit");                  PAIR_CLASS_INIT(&tag[1], "lit");
                 print_otag(h, TAG_BLOCKQUOTE, 2, tag);                  print_otag(h, TAG_DIV, 1, tag);
         } else          } else
                 print_otag(h, TAG_BLOCKQUOTE, 1, tag);                  print_otag(h, TAG_DIV, 0, tag);
   
         return(1);          return(1);
 }  }
Line 1538  mdoc_sm_pre(MDOC_ARGS)
Line 1537  mdoc_sm_pre(MDOC_ARGS)
         return(0);          return(0);
 }  }
   
   /* ARGSUSED */
   static int
   mdoc_pp_pre(MDOC_ARGS)
   {
   
           print_otag(h, TAG_P, 0, NULL);
           return(0);
   
   }
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  static int
 mdoc_sp_pre(MDOC_ARGS)  mdoc_sp_pre(MDOC_ARGS)
 {  {
         int              len;  
         struct htmlpair  tag;  
         struct roffsu    su;          struct roffsu    su;
           struct htmlpair  tag;
   
         switch (n->tok) {          SCALE_VS_INIT(&su, 1);
         case (MDOC_sp):  
                 /* FIXME: can this have a scaling indicator? */  
                 len = n->child ? atoi(n->child->string) : 1;  
                 break;  
         case (MDOC_br):  
                 len = 0;  
                 break;  
         default:  
                 assert(n->parent);  
                 if ((NULL == n->next || NULL == n->prev) &&  
                                 (MDOC_Ss == n->parent->tok ||  
                                  MDOC_Sh == n->parent->tok))  
                         return(0);  
                 len = 1;  
                 break;  
         }  
   
         SCALE_VS_INIT(&su, len);          if (MDOC_sp == n->tok) {
                   if (n->child)
                           a2roffsu(n->child->string, &su, SCALE_VS);
           } else
                   su.scale = 0;
   
         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: */          /* So the div isn't empty: */
         print_text(h, "\\~");          print_text(h, "\\~");
   
Line 1576  mdoc_sp_pre(MDOC_ARGS)
Line 1573  mdoc_sp_pre(MDOC_ARGS)
   
 }  }
   
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  static int
 mdoc_lk_pre(MDOC_ARGS)  mdoc_lk_pre(MDOC_ARGS)
Line 1863  mdoc_rs_pre(MDOC_ARGS)
Line 1859  mdoc_rs_pre(MDOC_ARGS)
         if (MDOC_BLOCK != n->type)          if (MDOC_BLOCK != n->type)
                 return(1);                  return(1);
   
         if (n->prev && SEC_SEE_ALSO == n->sec) {          if (n->prev && SEC_SEE_ALSO == n->sec)
                 print_otag(h, TAG_BR, 0, NULL);                  print_otag(h, TAG_P, 0, NULL);
                 print_otag(h, TAG_BR, 0, NULL);  
         }  
   
         PAIR_CLASS_INIT(&tag, "ref");          PAIR_CLASS_INIT(&tag, "ref");
         print_otag(h, TAG_SPAN, 1, &tag);          print_otag(h, TAG_SPAN, 1, &tag);

Legend:
Removed from v.1.118  
changed lines
  Added in v.1.121

CVSweb