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

Diff for /mandoc/html.c between version 1.179 and 1.183

version 1.179, 2014/10/27 16:29:06 version 1.183, 2014/12/02 10:08:06
Line 30 
Line 30 
   
 #include "mandoc.h"  #include "mandoc.h"
 #include "mandoc_aux.h"  #include "mandoc_aux.h"
 #include "libmandoc.h"  
 #include "out.h"  #include "out.h"
 #include "html.h"  #include "html.h"
 #include "main.h"  #include "main.h"
Line 127  static int  print_escape(char);
Line 126  static int  print_escape(char);
 static  int      print_encode(struct html *, const char *, int);  static  int      print_encode(struct html *, const char *, int);
 static  void     print_metaf(struct html *, enum mandoc_esc);  static  void     print_metaf(struct html *, enum mandoc_esc);
 static  void     print_attr(struct html *, const char *, const char *);  static  void     print_attr(struct html *, const char *, const char *);
 static  void     *ml_alloc(char *);  
   
   
 static void *  void *
 ml_alloc(char *outopts)  html_alloc(const struct mchars *mchars, char *outopts)
 {  {
         struct html     *h;          struct html     *h;
         const char      *toks[5];          const char      *toks[5];
Line 146  ml_alloc(char *outopts)
Line 144  ml_alloc(char *outopts)
         h = mandoc_calloc(1, sizeof(struct html));          h = mandoc_calloc(1, sizeof(struct html));
   
         h->tags.head = NULL;          h->tags.head = NULL;
         h->symtab = mchars_alloc();          h->symtab = mchars;
   
         while (outopts && *outopts)          while (outopts && *outopts)
                 switch (getsubopt(&outopts, UNCONST(toks), &v)) {                  switch (getsubopt(&outopts, UNCONST(toks), &v)) {
Line 169  ml_alloc(char *outopts)
Line 167  ml_alloc(char *outopts)
         return(h);          return(h);
 }  }
   
 void *  
 html_alloc(char *outopts)  
 {  
   
         return(ml_alloc(outopts));  
 }  
   
 void *  
 xhtml_alloc(char *outopts)  
 {  
   
         return(ml_alloc(outopts));  
 }  
   
 void  void
 html_free(void *p)  html_free(void *p)
 {  {
Line 196  html_free(void *p)
Line 180  html_free(void *p)
                 free(tag);                  free(tag);
         }          }
   
         if (h->symtab)  
                 mchars_free(h->symtab);  
   
         free(h);          free(h);
 }  }
   
Line 440  print_encode(struct html *h, const char *p, int norecu
Line 421  print_encode(struct html *h, const char *p, int norecu
                         break;                          break;
                 case ESCAPE_NUMBERED:                  case ESCAPE_NUMBERED:
                         c = mchars_num2char(seq, len);                          c = mchars_num2char(seq, len);
                           if (c < 0)
                                   continue;
                         break;                          break;
                 case ESCAPE_SPECIAL:                  case ESCAPE_SPECIAL:
                         c = mchars_spec2cp(h->symtab, seq, len);                          c = mchars_spec2cp(h->symtab, seq, len);
                           if (c <= 0)
                                   continue;
                         break;                          break;
                 case ESCAPE_NOSPACE:                  case ESCAPE_NOSPACE:
                         if ('\0' == *p)                          if ('\0' == *p)
Line 451  print_encode(struct html *h, const char *p, int norecu
Line 436  print_encode(struct html *h, const char *p, int norecu
                 default:                  default:
                         continue;                          continue;
                 }                  }
                 if (c <= 0)                  if ((c < 0x20 && c != 0x09) ||
                         continue;                      (c > 0x7E && c < 0xA0))
                 if (c < 0x20 || (c > 0x7E && c < 0xA0))  
                         c = 0xFFFD;                          c = 0xFFFD;
                 if (c > 0x7E)                  if (c > 0x7E)
                         printf("&#%d;", c);                          printf("&#%d;", c);
Line 578  print_text(struct html *h, const char *word)
Line 562  print_text(struct html *h, const char *word)
         if ( ! print_encode(h, word, 0)) {          if ( ! print_encode(h, word, 0)) {
                 if ( ! (h->flags & HTML_NONOSPACE))                  if ( ! (h->flags & HTML_NONOSPACE))
                         h->flags &= ~HTML_NOSPACE;                          h->flags &= ~HTML_NOSPACE;
                   h->flags &= ~HTML_NONEWLINE;
         } else          } else
                 h->flags |= HTML_NOSPACE;                  h->flags |= HTML_NOSPACE | HTML_NONEWLINE;
   
         if (h->metaf) {          if (h->metaf) {
                 print_tagq(h, h->metaf);                  print_tagq(h, h->metaf);

Legend:
Removed from v.1.179  
changed lines
  Added in v.1.183

CVSweb