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

Diff for /mandoc/html.c between version 1.69 and 1.70

version 1.69, 2009/10/28 06:54:12 version 1.70, 2009/10/28 08:00:18
Line 651  bufcat_su(struct html *h, const char *p, const struct 
Line 651  bufcat_su(struct html *h, const char *p, const struct 
   
   
 void  void
 html_idcpy(char *dst, const char *src, int sz)  html_idcat(char *dst, const char *src, int sz)
 {  {
           int              ssz;
   
         assert(sz);          assert(sz);
         dst[0] = '\0';  
         html_idcat(dst, src, sz);  
 }  
   
   
 void  
 html_idcat(char *dst, const char *src, int sz)  
 {  
         int              i;  
   
         /* Cf. <http://www.w3.org/TR/html4/types.html#h-6.2>. */          /* Cf. <http://www.w3.org/TR/html4/types.html#h-6.2>. */
   
         for (i = 0; *dst != '\0' && i < sz - 1; dst++, i++)          for ( ; *dst != '\0' && sz; dst++, sz--)
                 /* Jump to end. */ ;                  /* Jump to end. */ ;
   
         for ( ; *src != '\0' && i < sz - 1; src++, i++, dst++) {          assert(sz > 2);
                 if (isalnum((u_char)*src)) {  
                         *dst = *src;  
                         continue;  
                 }  
   
                 switch (*src) {          /* We can't start with a number (bah). */
                 case (';'):  
                         *dst = ';';  
                         break;  
                 case ('-'):  
                         *dst = '-';  
                         break;  
                 case (':'):  
                         *dst = ':';  
                         break;  
                 default:  
                         *dst = '_';  
                         break;  
                 }  
         }  
   
           *dst++ = 'x';
         *dst = '\0';          *dst = '\0';
           sz--;
   
           for ( ; *src != '\0' && sz > 1; src++) {
                   ssz = snprintf(dst, sz, "%.2x", *src);
                   sz -= ssz;
                   dst += ssz;
           }
 }  }

Legend:
Removed from v.1.69  
changed lines
  Added in v.1.70

CVSweb