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

Diff for /mandoc/html.c between version 1.87 and 1.88

version 1.87, 2009/11/14 12:04:59 version 1.88, 2009/11/14 19:23:58
Line 91  extern int    getsubopt(char **, char * const *, char 
Line 91  extern int    getsubopt(char **, char * const *, char 
 static  void              print_spec(struct html *, const char *, size_t);  static  void              print_spec(struct html *, const char *, size_t);
 static  void              print_res(struct html *, const char *, size_t);  static  void              print_res(struct html *, const char *, size_t);
 static  void              print_ctag(struct html *, enum htmltag);  static  void              print_ctag(struct html *, enum htmltag);
 static  int               print_encode(struct html *, const char *);  static  int               print_encode(struct html *, const char *, int);
   static  void              print_metaf(struct html *, enum roffdeco);
   
   
 void *  void *
Line 220  print_res(struct html *h, const char *p, size_t len)
Line 221  print_res(struct html *h, const char *p, size_t len)
 }  }
   
   
   static void
   print_metaf(struct html *h, enum roffdeco deco)
   {
           const char      *class;
           struct htmlpair  tag;
   
           switch (deco) {
           case (DECO_BOLD):
                   class = "bold";
                   break;
           case (DECO_ITALIC):
                   class = "italic";
                   break;
           case (DECO_ROMAN):
                   class = "roman";
                   break;
           default:
                   abort();
                   /* NOTREACHED */
           }
   
           if (h->metaf) {
                   assert(h->tags.head);
                   assert(h->metaf == h->tags.head);
                   print_tagq(h, h->metaf);
           }
   
           PAIR_CLASS_INIT(&tag, class);
           h->metaf = print_otag(h, TAG_SPAN, 1, &tag);
   }
   
   
 static int  static int
 print_encode(struct html *h, const char *p)  print_encode(struct html *h, const char *p, int norecurse)
 {  {
         size_t           sz;          size_t           sz;
         int              len, nospace;          int              len, nospace;
Line 259  print_encode(struct html *h, const char *p)
Line 292  print_encode(struct html *h, const char *p)
                 case (DECO_SPECIAL):                  case (DECO_SPECIAL):
                         print_spec(h, seq, sz);                          print_spec(h, seq, sz);
                         break;                          break;
                   case (DECO_BOLD):
                           /* FALLTHROUGH */
                   case (DECO_ITALIC):
                           /* FALLTHROUGH */
                   case (DECO_ROMAN):
                           if (norecurse)
                                   break;
                           print_metaf(h, deco);
                           break;
                 default:                  default:
                         break;                          break;
                 }                  }
Line 300  print_otag(struct html *h, enum htmltag tag, 
Line 342  print_otag(struct html *h, enum htmltag tag, 
         for (i = 0; i < sz; i++) {          for (i = 0; i < sz; i++) {
                 printf(" %s=\"", htmlattrs[p[i].key]);                  printf(" %s=\"", htmlattrs[p[i].key]);
                 assert(p->val);                  assert(p->val);
                 (void)print_encode(h, p[i].val);                  (void)print_encode(h, p[i].val, 1);
                 putchar('\"');                  putchar('\"');
         }          }
         putchar('>');          putchar('>');
Line 366  print_text(struct html *h, const char *p)
Line 408  print_text(struct html *h, const char *p)
                 putchar(' ');                  putchar(' ');
   
         assert(p);          assert(p);
         if ( ! print_encode(h, p))          if ( ! print_encode(h, p, 0))
                 h->flags &= ~HTML_NOSPACE;                  h->flags &= ~HTML_NOSPACE;
   
         if (*p && 0 == *(p + 1))          if (*p && 0 == *(p + 1))

Legend:
Removed from v.1.87  
changed lines
  Added in v.1.88

CVSweb