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

Diff for /mandoc/mandoc.c between version 1.50 and 1.54

version 1.50, 2011/05/14 16:06:09 version 1.54, 2011/07/21 15:21:13
Line 125  mandoc_escape(const char **end, const char **start, in
Line 125  mandoc_escape(const char **end, const char **start, in
                 break;                  break;
         case ('['):          case ('['):
                 gly = ESCAPE_SPECIAL;                  gly = ESCAPE_SPECIAL;
                   /*
                    * Unicode escapes are defined in groff as \[uXXXX] to
                    * \[u10FFFF], where the contained value must be a valid
                    * Unicode codepoint.  Here, however, only check whether
                    * it's not a zero-width escape.
                    */
                   if ('u' == cp[i] && ']' != cp[i + 1])
                           gly = ESCAPE_UNICODE;
                 term = ']';                  term = ']';
                 break;                  break;
         case ('C'):          case ('C'):
Line 156  mandoc_escape(const char **end, const char **start, in
Line 164  mandoc_escape(const char **end, const char **start, in
                 if (ESCAPE_ERROR == gly)                  if (ESCAPE_ERROR == gly)
                         gly = ESCAPE_IGNORE;                          gly = ESCAPE_IGNORE;
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case ('*'):  
                 if (ESCAPE_ERROR == gly)  
                         gly = ESCAPE_PREDEF;  
                 /* FALLTHROUGH */  
         case ('f'):          case ('f'):
                 if (ESCAPE_ERROR == gly)                  if (ESCAPE_ERROR == gly)
                         gly = ESCAPE_FONT;                          gly = ESCAPE_FONT;
Line 694  mandoc_getcontrol(const char *cp, int *ppos)
Line 698  mandoc_getcontrol(const char *cp, int *ppos)
  * If the string is invalid, or is less than 0, return -1.   * If the string is invalid, or is less than 0, return -1.
  */   */
 int  int
 mandoc_strntou(const char *p, size_t sz, int base)  mandoc_strntoi(const char *p, size_t sz, int base)
 {  {
         char             buf[32];          char             buf[32];
         char            *ep;          char            *ep;
Line 704  mandoc_strntou(const char *p, size_t sz, int base)
Line 708  mandoc_strntou(const char *p, size_t sz, int base)
                 return(-1);                  return(-1);
   
         memcpy(buf, p, sz);          memcpy(buf, p, sz);
         buf[sz] = '\0';          buf[(int)sz] = '\0';
   
         errno = 0;          errno = 0;
         v = strtol(buf, &ep, base);          v = strtol(buf, &ep, base);
Line 712  mandoc_strntou(const char *p, size_t sz, int base)
Line 716  mandoc_strntou(const char *p, size_t sz, int base)
         if (buf[0] == '\0' || *ep != '\0')          if (buf[0] == '\0' || *ep != '\0')
                 return(-1);                  return(-1);
   
         if ((errno == ERANGE &&          if (v > INT_MAX)
                         (v == LONG_MAX || v == LONG_MIN)) ||                  v = INT_MAX;
                         (v > INT_MAX || v < 0))          if (v < INT_MIN)
                 return(-1);                  v = INT_MIN;
   
         return((int)v);          return((int)v);
 }  }
   

Legend:
Removed from v.1.50  
changed lines
  Added in v.1.54

CVSweb