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

Diff for /mandoc/html.c between version 1.82 and 1.85

version 1.82, 2009/11/09 05:11:46 version 1.85, 2009/11/14 11:58:36
Line 88  extern int    getsubopt(char **, char * const *, char 
Line 88  extern int    getsubopt(char **, char * const *, char 
 #endif  #endif
   
   
 static  void              print_spec(struct html *, const char *, int);  static  void              print_spec(struct html *, const char *, size_t);
 static  void              print_res(struct html *, const char *, int);  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  void              print_encode(struct html *, const char *);  static  int               print_encode(struct html *, const char *);
   
   
 void *  void *
Line 193  print_gen_head(struct html *h)
Line 193  print_gen_head(struct html *h)
   
   
 static void  static void
 print_spec(struct html *h, const char *p, int len)  print_spec(struct html *h, const char *p, size_t len)
 {  {
         const char      *rhs;          const char      *rhs;
         size_t           sz;          size_t           sz;
   
         rhs = chars_a2ascii(h->symtab, p, (size_t)len, &sz);          rhs = chars_a2ascii(h->symtab, p, len, &sz);
   
         if (NULL == rhs)          if (NULL == rhs)
                 return;                  return;
Line 207  print_spec(struct html *h, const char *p, int len)
Line 207  print_spec(struct html *h, const char *p, int len)
   
   
 static void  static void
 print_res(struct html *h, const char *p, int len)  print_res(struct html *h, const char *p, size_t len)
 {  {
         const char      *rhs;          const char      *rhs;
         size_t           sz;          size_t           sz;
   
         rhs = chars_a2res(h->symtab, p, (size_t)len, &sz);          rhs = chars_a2res(h->symtab, p, len, &sz);
   
         if (NULL == rhs)          if (NULL == rhs)
                 return;                  return;
Line 220  print_res(struct html *h, const char *p, int len)
Line 220  print_res(struct html *h, const char *p, int len)
 }  }
   
   
 static void  static int
 print_encode(struct html *h, const char *p)  print_encode(struct html *h, const char *p)
 {  {
         size_t           sz;          size_t           sz;
         int              len;          int              len, nospace;
         const char      *seq;          const char      *seq;
         enum roffdeco    deco;          enum roffdeco    deco;
   
           nospace = 0;
   
         for (; *p; p++) {          for (; *p; p++) {
                 sz = strcspn(p, "\\<>&");                  sz = strcspn(p, "\\<>&");
   
Line 262  print_encode(struct html *h, const char *p)
Line 264  print_encode(struct html *h, const char *p)
                 }                  }
   
                 p += len - 1;                  p += len - 1;
   
                   if (DECO_NOSPACE == deco && '\0' == *(p + 1))
                           nospace = 1;
         }          }
   
           return(nospace);
 }  }
   
   
Line 293  print_otag(struct html *h, enum htmltag tag, 
Line 300  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);
                 print_encode(h, p[i].val);                  (void)print_encode(h, p[i].val);
                 putchar('\"');                  putchar('\"');
         }          }
         putchar('>');          putchar('>');

Legend:
Removed from v.1.82  
changed lines
  Added in v.1.85

CVSweb