[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.77 and 1.78

version 1.77, 2010/06/06 10:50:56 version 1.78, 2010/06/07 11:01:15
Line 53  static void    print_mdoc(MDOC_ARGS);
Line 53  static void    print_mdoc(MDOC_ARGS);
 static  void              print_mdoc_head(MDOC_ARGS);  static  void              print_mdoc_head(MDOC_ARGS);
 static  void              print_mdoc_node(MDOC_ARGS);  static  void              print_mdoc_node(MDOC_ARGS);
 static  void              print_mdoc_nodelist(MDOC_ARGS);  static  void              print_mdoc_nodelist(MDOC_ARGS);
   static  void              synopsis_pre(struct html *,
                                   const struct mdoc_node *);
   
 static  void              a2width(const char *, struct roffsu *);  static  void              a2width(const char *, struct roffsu *);
 static  void              a2offs(const char *, struct roffsu *);  static  void              a2offs(const char *, struct roffsu *);
Line 84  static void    mdoc_dq_post(MDOC_ARGS);
Line 86  static void    mdoc_dq_post(MDOC_ARGS);
 static  int               mdoc_dq_pre(MDOC_ARGS);  static  int               mdoc_dq_pre(MDOC_ARGS);
 static  int               mdoc_dv_pre(MDOC_ARGS);  static  int               mdoc_dv_pre(MDOC_ARGS);
 static  int               mdoc_fa_pre(MDOC_ARGS);  static  int               mdoc_fa_pre(MDOC_ARGS);
 static  void              mdoc_fd_post(MDOC_ARGS);  
 static  int               mdoc_fd_pre(MDOC_ARGS);  static  int               mdoc_fd_pre(MDOC_ARGS);
 static  int               mdoc_fl_pre(MDOC_ARGS);  static  int               mdoc_fl_pre(MDOC_ARGS);
 static  int               mdoc_fn_pre(MDOC_ARGS);  static  int               mdoc_fn_pre(MDOC_ARGS);
Line 159  static const struct htmlmdoc mdocs[MDOC_MAX] = {
Line 160  static const struct htmlmdoc mdocs[MDOC_MAX] = {
         {mdoc_ev_pre, NULL}, /* Ev */          {mdoc_ev_pre, NULL}, /* Ev */
         {mdoc_ex_pre, NULL}, /* Ex */          {mdoc_ex_pre, NULL}, /* Ex */
         {mdoc_fa_pre, NULL}, /* Fa */          {mdoc_fa_pre, NULL}, /* Fa */
         {mdoc_fd_pre, mdoc_fd_post}, /* Fd */          {mdoc_fd_pre, NULL}, /* Fd */
         {mdoc_fl_pre, NULL}, /* Fl */          {mdoc_fl_pre, NULL}, /* Fl */
         {mdoc_fn_pre, NULL}, /* Fn */          {mdoc_fn_pre, NULL}, /* Fn */
         {mdoc_ft_pre, NULL}, /* Ft */          {mdoc_ft_pre, NULL}, /* Ft */
Line 294  a2width(const char *p, struct roffsu *su)
Line 295  a2width(const char *p, struct roffsu *su)
   
   
 /*  /*
    * See the same function in mdoc_term.c for documentation.
    */
   static void
   synopsis_pre(struct html *h, const struct mdoc_node *n)
   {
           struct roffsu    su;
           struct htmlpair  tag;
   
           if (NULL == n->prev || SEC_SYNOPSIS != n->sec)
                   return;
   
           SCALE_VS_INIT(&su, 1);
           bufcat_su(h, "margin-top", &su);
           PAIR_STYLE_INIT(&tag, h);
   
           if (n->prev->tok == n->tok &&
                           MDOC_Fo != n->tok &&
                           MDOC_Ft != n->tok &&
                           MDOC_Fn != n->tok) {
                   print_otag(h, TAG_DIV, 0, NULL);
                   return;
           }
   
           switch (n->prev->tok) {
           case (MDOC_Fd):
                   /* FALLTHROUGH */
           case (MDOC_Fn):
                   /* FALLTHROUGH */
           case (MDOC_Fo):
                   /* FALLTHROUGH */
           case (MDOC_In):
                   /* FALLTHROUGH */
           case (MDOC_Vt):
                   print_otag(h, TAG_DIV, 1, &tag);
                   break;
           case (MDOC_Ft):
                   if (MDOC_Fn != n->tok && MDOC_Fo != n->tok) {
                           print_otag(h, TAG_DIV, 1, &tag);
                           break;
                   }
                   /* FALLTHROUGH */
           default:
                   print_otag(h, TAG_DIV, 0, NULL);
                   break;
           }
   }
   
   
   /*
  * Calculate the scaling unit passed in an `-offset' argument.  This   * Calculate the scaling unit passed in an `-offset' argument.  This
  * uses either a native scaling unit (e.g., 1i, 2m), one of a set of   * uses either a native scaling unit (e.g., 1i, 2m), one of a set of
  * predefined strings (indent, etc.), or the string length of the value.   * predefined strings (indent, etc.), or the string length of the value.
Line 690  mdoc_nm_pre(MDOC_ARGS)
Line 740  mdoc_nm_pre(MDOC_ARGS)
         if (NULL == n->child && NULL == m->name)          if (NULL == n->child && NULL == m->name)
                 return(1);                  return(1);
   
         if (SEC_SYNOPSIS == n->sec &&          synopsis_pre(h, n);
                         n->prev && MDOC_LINE & n->flags) {  
                 bufcat_style(h, "clear", "both");  
                 PAIR_STYLE_INIT(&tag, h);  
                 print_otag(h, TAG_BR, 1, &tag);  
         }  
   
         PAIR_CLASS_INIT(&tag, "name");          PAIR_CLASS_INIT(&tag, "name");
         print_otag(h, TAG_SPAN, 1, &tag);          print_otag(h, TAG_SPAN, 1, &tag);
         if (NULL == n->child)          if (NULL == n->child)
                 print_text(h, m->name);                  print_text(h, m->name);
   
         return(1);          return(1);
 }  }
   
Line 1438  mdoc_cd_pre(MDOC_ARGS)
Line 1482  mdoc_cd_pre(MDOC_ARGS)
 {  {
         struct htmlpair tag;          struct htmlpair tag;
   
         print_otag(h, TAG_DIV, 0, NULL);          synopsis_pre(h, n);
         PAIR_CLASS_INIT(&tag, "config");          PAIR_CLASS_INIT(&tag, "config");
         print_otag(h, TAG_SPAN, 1, &tag);          print_otag(h, TAG_SPAN, 1, &tag);
         return(1);          return(1);
Line 1511  mdoc_fa_pre(MDOC_ARGS)
Line 1555  mdoc_fa_pre(MDOC_ARGS)
   
   
 /* ARGSUSED */  /* ARGSUSED */
 static void  
 mdoc_fd_post(MDOC_ARGS)  
 {  
   
         print_otag(h, TAG_BR, 0, NULL);  
 }  
   
   
 /* ARGSUSED */  
 static int  static int
 mdoc_fd_pre(MDOC_ARGS)  mdoc_fd_pre(MDOC_ARGS)
 {  {
         struct htmlpair  tag;          struct htmlpair  tag;
   
           synopsis_pre(h, n);
   
         PAIR_CLASS_INIT(&tag, "macro");          PAIR_CLASS_INIT(&tag, "macro");
         print_otag(h, TAG_SPAN, 1, &tag);          print_otag(h, TAG_SPAN, 1, &tag);
         return(1);          return(1);
Line 1536  static int
Line 1573  static int
 mdoc_vt_pre(MDOC_ARGS)  mdoc_vt_pre(MDOC_ARGS)
 {  {
         struct htmlpair  tag;          struct htmlpair  tag;
         struct roffsu    su;  
   
         if (SEC_SYNOPSIS == n->sec && MDOC_BLOCK == n->type) {          if (MDOC_BLOCK == n->type) {
                 if (n->next && MDOC_Vt != n->next->tok) {                  synopsis_pre(h, n);
                         SCALE_VS_INIT(&su, 1);  
                         bufcat_su(h, "margin-bottom", &su);  
                         PAIR_STYLE_INIT(&tag, h);  
                         print_otag(h, TAG_DIV, 1, &tag);  
                 } else  
                         print_otag(h, TAG_DIV, 0, NULL);  
   
                 return(1);                  return(1);
           } else if (MDOC_ELEM == n->type) {
                   synopsis_pre(h, n);
         } else if (MDOC_HEAD == n->type)          } else if (MDOC_HEAD == n->type)
                 return(0);                  return(0);
   
Line 1563  mdoc_ft_pre(MDOC_ARGS)
Line 1594  mdoc_ft_pre(MDOC_ARGS)
 {  {
         struct htmlpair  tag;          struct htmlpair  tag;
   
         if (SEC_SYNOPSIS == n->sec && n->prev)          synopsis_pre(h, n);
                 print_otag(h, TAG_BR, 0, NULL);  
   
         PAIR_CLASS_INIT(&tag, "ftype");          PAIR_CLASS_INIT(&tag, "ftype");
         print_otag(h, TAG_SPAN, 1, &tag);          print_otag(h, TAG_SPAN, 1, &tag);
         return(1);          return(1);
Line 1582  mdoc_fn_pre(MDOC_ARGS)
Line 1611  mdoc_fn_pre(MDOC_ARGS)
         char                     nbuf[BUFSIZ];          char                     nbuf[BUFSIZ];
         const char              *sp, *ep;          const char              *sp, *ep;
         int                      sz, i;          int                      sz, i;
         struct roffsu            su;  
   
         /* NB: MDOC_LINE has no effect on this macro! */          synopsis_pre(h, n);
         if (SEC_SYNOPSIS == n->sec) {  
                 SCALE_HS_INIT(&su, INDENT);  
                 bufcat_su(h, "margin-left", &su);  
                 su.scale = -su.scale;  
                 bufcat_su(h, "text-indent", &su);  
                 if (n->prev && MDOC_Ft != n->prev->tok) {  
                         SCALE_VS_INIT(&su, 1);  
                         bufcat_su(h, "margin-top", &su);  
                 }  
                 PAIR_STYLE_INIT(&tag[0], h);  
                 print_otag(h, TAG_DIV, 1, tag);  
         }  
   
         /* Split apart into type and name. */          /* Split apart into type and name. */
         assert(n->child->string);          assert(n->child->string);
Line 1782  static int
Line 1798  static int
 mdoc_fo_pre(MDOC_ARGS)  mdoc_fo_pre(MDOC_ARGS)
 {  {
         struct htmlpair  tag;          struct htmlpair  tag;
         struct roffsu    su;  
         struct tag      *t;          struct tag      *t;
   
         if (MDOC_BODY == n->type) {          if (MDOC_BODY == n->type) {
Line 1791  mdoc_fo_pre(MDOC_ARGS)
Line 1806  mdoc_fo_pre(MDOC_ARGS)
                 h->flags |= HTML_NOSPACE;                  h->flags |= HTML_NOSPACE;
                 return(1);                  return(1);
         } else if (MDOC_BLOCK == n->type) {          } else if (MDOC_BLOCK == n->type) {
                 if (SEC_SYNOPSIS != n->sec)                  synopsis_pre(h, n);
                         return(1);  
                 if (NULL == n->prev || MDOC_Ft == n->prev->tok) {  
                         print_otag(h, TAG_DIV, 0, NULL);  
                         return(1);  
                 }  
                 SCALE_VS_INIT(&su, 1);  
                 bufcat_su(h, "margin-top", &su);  
                 PAIR_STYLE_INIT(&tag, h);  
                 print_otag(h, TAG_DIV, 1, &tag);  
                 return(1);                  return(1);
         }          }
   
Line 1821  mdoc_fo_pre(MDOC_ARGS)
Line 1827  mdoc_fo_pre(MDOC_ARGS)
 static void  static void
 mdoc_fo_post(MDOC_ARGS)  mdoc_fo_post(MDOC_ARGS)
 {  {
   
         if (MDOC_BODY != n->type)          if (MDOC_BODY != n->type)
                 return;                  return;
         h->flags |= HTML_NOSPACE;          h->flags |= HTML_NOSPACE;
Line 1839  mdoc_in_pre(MDOC_ARGS)
Line 1846  mdoc_in_pre(MDOC_ARGS)
         struct htmlpair          tag[2];          struct htmlpair          tag[2];
         int                      i;          int                      i;
   
           synopsis_pre(h, n);
   
         PAIR_CLASS_INIT(&tag[0], "includes");          PAIR_CLASS_INIT(&tag[0], "includes");
         print_otag(h, TAG_SPAN, 1, tag);          print_otag(h, TAG_SPAN, 1, tag);
   
Line 1864  mdoc_in_pre(MDOC_ARGS)
Line 1873  mdoc_in_pre(MDOC_ARGS)
   
         h->flags |= HTML_NOSPACE;          h->flags |= HTML_NOSPACE;
         print_text(h, ">");          print_text(h, ">");
   
         if (SEC_SYNOPSIS == n->sec && MDOC_LINE & n->flags)  
                 print_otag(h, TAG_BR, 0, NULL);  
   
         return(0);          return(0);
 }  }

Legend:
Removed from v.1.77  
changed lines
  Added in v.1.78

CVSweb