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

Diff for /mandoc/html.c between version 1.83 and 1.86

version 1.83, 2009/11/10 16:32:00 version 1.86, 2009/11/14 12:00:24
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  void              print_encode(struct html *, const char *);  static  int               print_encode(struct html *, const char *);
   
   
 void *  void *
Line 220  print_res(struct html *h, const char *p, size_t len)
Line 220  print_res(struct html *h, const char *p, size_t 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('>');
Line 365  print_text(struct html *h, const char *p)
Line 372  print_text(struct html *h, const char *p)
         if ( ! (h->flags & HTML_NOSPACE))          if ( ! (h->flags & HTML_NOSPACE))
                 putchar(' ');                  putchar(' ');
   
         h->flags &= ~HTML_NOSPACE;  
         h->flags &= ~HTML_NEWLINE;          h->flags &= ~HTML_NEWLINE;
   
         if (p)          assert(p);
                 print_encode(h, p);          if ( ! print_encode(h, p))
                   h->flags &= ~HTML_NOSPACE;
   
         if (*p && 0 == *(p + 1))          if (*p && 0 == *(p + 1))
                 switch (*p) {                  switch (*p) {

Legend:
Removed from v.1.83  
changed lines
  Added in v.1.86

CVSweb