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

Diff for /mandoc/html.c between version 1.44 and 1.48

version 1.44, 2009/09/21 13:42:01 version 1.48, 2009/09/21 14:07:07
Line 23 
Line 23 
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
   #include <unistd.h>
   
 #include "chars.h"  #include "chars.h"
 #include "mdoc.h"  #include "mdoc.h"
Line 219  static int    mdoc_ns_pre(MDOC_ARGS);
Line 220  static int    mdoc_ns_pre(MDOC_ARGS);
 static  void              mdoc_op_post(MDOC_ARGS);  static  void              mdoc_op_post(MDOC_ARGS);
 static  int               mdoc_op_pre(MDOC_ARGS);  static  int               mdoc_op_pre(MDOC_ARGS);
 static  int               mdoc_pa_pre(MDOC_ARGS);  static  int               mdoc_pa_pre(MDOC_ARGS);
 static  int               mdoc_pp_pre(MDOC_ARGS);  
 static  void              mdoc_pq_post(MDOC_ARGS);  static  void              mdoc_pq_post(MDOC_ARGS);
 static  int               mdoc_pq_pre(MDOC_ARGS);  static  int               mdoc_pq_pre(MDOC_ARGS);
 static  void              mdoc_qq_post(MDOC_ARGS);  static  void              mdoc_qq_post(MDOC_ARGS);
 static  int               mdoc_qq_pre(MDOC_ARGS);  static  int               mdoc_qq_pre(MDOC_ARGS);
 static  int               mdoc_sh_pre(MDOC_ARGS);  static  int               mdoc_sh_pre(MDOC_ARGS);
   static  int               mdoc_sp_pre(MDOC_ARGS);
 static  void              mdoc_sq_post(MDOC_ARGS);  static  void              mdoc_sq_post(MDOC_ARGS);
 static  int               mdoc_sq_pre(MDOC_ARGS);  static  int               mdoc_sq_pre(MDOC_ARGS);
 static  int               mdoc_ss_pre(MDOC_ARGS);  static  int               mdoc_ss_pre(MDOC_ARGS);
Line 240  extern size_t      strlcat(char *, const char *, size_
Line 241  extern size_t      strlcat(char *, const char *, size_
 #endif  #endif
   
 static  const struct htmlmdoc mdocs[MDOC_MAX] = {  static  const struct htmlmdoc mdocs[MDOC_MAX] = {
         {mdoc_pp_pre, NULL}, /* Ap */          {NULL, NULL}, /* Ap */
         {NULL, NULL}, /* Dd */          {NULL, NULL}, /* Dd */
         {NULL, NULL}, /* Dt */          {NULL, NULL}, /* Dt */
         {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_pp_pre, NULL}, /* Pp */          {mdoc_sp_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 347  static const struct htmlmdoc mdocs[MDOC_MAX] = {
Line 348  static const struct htmlmdoc mdocs[MDOC_MAX] = {
         {NULL, NULL}, /* Fr */          {NULL, NULL}, /* Fr */
         {NULL, NULL}, /* Ud */          {NULL, NULL}, /* Ud */
         {NULL, NULL}, /* Lb */          {NULL, NULL}, /* Lb */
         {NULL, NULL}, /* Lp */          {mdoc_sp_pre, NULL}, /* Lp */
         {NULL, NULL}, /* Lk */          {NULL, NULL}, /* Lk */
         {NULL, NULL}, /* Mt */          {NULL, NULL}, /* Mt */
         {NULL, NULL}, /* Brq */          {NULL, NULL}, /* Brq */
Line 358  static const struct htmlmdoc mdocs[MDOC_MAX] = {
Line 359  static const struct htmlmdoc mdocs[MDOC_MAX] = {
         {NULL, NULL}, /* En */          {NULL, NULL}, /* En */
         {mdoc_xx_pre, NULL}, /* Dx */          {mdoc_xx_pre, NULL}, /* Dx */
         {NULL, NULL}, /* %Q */          {NULL, NULL}, /* %Q */
         {NULL, NULL}, /* br */          {mdoc_sp_pre, NULL}, /* br */
         {NULL, NULL}, /* sp */          {mdoc_sp_pre, NULL}, /* sp */
 };  };
   
 static  char              buf[BUFSIZ]; /* XXX */  static  char              buf[BUFSIZ]; /* XXX */
Line 423  html_alloc(char *outopts)
Line 424  html_alloc(char *outopts)
                 return(NULL);                  return(NULL);
         }          }
   
         while (*outopts)          while (outopts && *outopts)
                 switch (getsubopt(&outopts, toks, &v)) {                  switch (getsubopt(&outopts, toks, &v)) {
                 case (0):                  case (0):
                         h->style = v;                          h->style = v;
Line 557  static void
Line 558  static void
 print_mdoc(MDOC_ARGS)  print_mdoc(MDOC_ARGS)
 {  {
         struct tag      *t;          struct tag      *t;
           struct htmlpair  tag;
   
         t = print_otag(h, TAG_HEAD, 0, NULL);          t = print_otag(h, TAG_HEAD, 0, NULL);
         print_mdoc_head(m, n, h);          print_mdoc_head(m, n, h);
         print_tagq(h, t);          print_tagq(h, t);
   
         t = print_otag(h, TAG_BODY, 0, NULL);          t = print_otag(h, TAG_BODY, 0, NULL);
   
           tag.key = ATTR_CLASS;
           tag.val = "body";
           print_otag(h, TAG_DIV, 1, &tag);
   
         print_mdoc_nodelist(m, n, h);          print_mdoc_nodelist(m, n, h);
         print_tagq(h, t);          print_tagq(h, t);
 }  }
Line 914  static void
Line 921  static void
 print_gen_doctype(struct html *h)  print_gen_doctype(struct html *h)
 {  {
   
         printf("<!DOCTYPE HTML PUBLIC \"%s\" \"%s\">\n", DOCTYPE, DTD);          printf("<!DOCTYPE HTML PUBLIC \"%s\" \"%s\">", DOCTYPE, DTD);
 }  }
   
   
Line 1058  mdoc_root_pre(MDOC_ARGS)
Line 1065  mdoc_root_pre(MDOC_ARGS)
                         "%s(%d)", m->title, m->msec);                          "%s(%d)", m->title, m->msec);
   
         tag[0].key = ATTR_CLASS;          tag[0].key = ATTR_CLASS;
         tag[0].val = "body";  
         t = print_otag(h, TAG_DIV, 1, tag);  
   
         tag[0].key = ATTR_CLASS;  
         tag[0].val = "header";          tag[0].val = "header";
         tag[1].key = ATTR_STYLE;          tag[1].key = ATTR_STYLE;
         tag[1].val = "width: 100%;";          tag[1].val = "width: 100%;";
         print_otag(h, TAG_TABLE, 2, tag);          t = print_otag(h, TAG_TABLE, 2, tag);
         tt = print_otag(h, TAG_TR, 0, NULL);          tt = print_otag(h, TAG_TR, 0, NULL);
   
         tag[0].key = ATTR_STYLE;          tag[0].key = ATTR_STYLE;
Line 1084  mdoc_root_pre(MDOC_ARGS)
Line 1087  mdoc_root_pre(MDOC_ARGS)
         tag[0].val = "width: 33%; text-align: right;";          tag[0].val = "width: 33%; text-align: right;";
         print_otag(h, TAG_TD, 1, tag);          print_otag(h, TAG_TD, 1, tag);
         print_text(h, b);          print_text(h, b);
         print_stagq(h, t);          print_tagq(h, t);
   
         return(1);          return(1);
 }  }
Line 1220  mdoc_fl_pre(MDOC_ARGS)
Line 1223  mdoc_fl_pre(MDOC_ARGS)
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  static int
 mdoc_pp_pre(MDOC_ARGS)  
 {  
         struct htmlpair tag;  
   
         tag.key = ATTR_STYLE;  
         tag.val = "clear: both; height: 1em;";  
         print_otag(h, TAG_DIV, 1, &tag);  
         return(0);  
 }  
   
   
 /* ARGSUSED */  
 static int  
 mdoc_nd_pre(MDOC_ARGS)  mdoc_nd_pre(MDOC_ARGS)
 {  {
         struct htmlpair  tag;          struct htmlpair  tag;
Line 1260  mdoc_op_pre(MDOC_ARGS)
Line 1250  mdoc_op_pre(MDOC_ARGS)
   
         /* XXX - this can contain block elements! */          /* XXX - this can contain block elements! */
         print_text(h, "\\(lB");          print_text(h, "\\(lB");
           h->flags |= HTML_NOSPACE;
         tag.key = ATTR_CLASS;          tag.key = ATTR_CLASS;
         tag.val = "opt";          tag.val = "opt";
         print_otag(h, TAG_SPAN, 1, &tag);          print_otag(h, TAG_SPAN, 1, &tag);
Line 1421  mdoc_tbl_block_pre(MDOC_ARGS, int t, int w, int o, int
Line 1412  mdoc_tbl_block_pre(MDOC_ARGS, int t, int w, int o, int
                 break;                  break;
         }          }
   
         if ( ! c && n->prev && n->prev->body->child)          if ( ! c && MDOC_Column != t) {
                 bufcat("padding-top: 1em;");                 if (n->prev && n->prev->body->child)
                          bufcat("padding-top: 1em;");
                  else if (NULL == n->prev)
                          bufcat("padding-top: 1em;");
           }
   
         tag.key = ATTR_STYLE;          tag.key = ATTR_STYLE;
         tag.val = buf;          tag.val = buf;
Line 2163  mdoc_fn_pre(MDOC_ARGS)
Line 2158  mdoc_fn_pre(MDOC_ARGS)
                 print_text(h, ";");                  print_text(h, ";");
   
         return(0);          return(0);
   }
   
   
   /* ARGSUSED */
   static int
   mdoc_sp_pre(MDOC_ARGS)
   {
           int             len;
           struct htmlpair tag;
   
           if (MDOC_sp == n->tok)
                   len = n->child ? atoi(n->child->string) : 1;
           else
                   len = 1;
   
           buffmt("height: %dem", len);
   
           tag.key = ATTR_STYLE;
           tag.val = buf;
           print_otag(h, TAG_DIV, 1, &tag);
           return(1);
   
 }  }

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.48

CVSweb