Diff for /embedaddon/pcre/pcre_maketables.c between versions 1.1.1.3 and 1.1.1.4

version 1.1.1.3, 2013/07/22 08:25:55 version 1.1.1.4, 2014/06/15 19:46:04
Line 98  for (i = 0; i < 256; i++) *p++ = tolower(i); Line 98  for (i = 0; i < 256; i++) *p++ = tolower(i);
 for (i = 0; i < 256; i++) *p++ = islower(i)? toupper(i) : tolower(i);  for (i = 0; i < 256; i++) *p++ = islower(i)? toupper(i) : tolower(i);
   
 /* Then the character class tables. Don't try to be clever and save effort on  /* Then the character class tables. Don't try to be clever and save effort on
exclusive ones - in some locales things may be different. Note that the tableexclusive ones - in some locales things may be different.
for "space" includes everything "isspace" gives, including VT in the default 
locale. This makes it work for the POSIX class [:space:]. Note also that it is 
possible for a character to be alnum or alpha without being lower or upper, 
such as "male and female ordinals" (\xAA and \xBA) in the fr_FR locale (at 
least under Debian Linux's locales as of 12/2005). So we must test for alnum 
specially. */ 
   
   Note that the table for "space" includes everything "isspace" gives, including
   VT in the default locale. This makes it work for the POSIX class [:space:].
   From release 8.34 is is also correct for Perl space, because Perl added VT at
   release 5.18.
   
   Note also that it is possible for a character to be alnum or alpha without
   being lower or upper, such as "male and female ordinals" (\xAA and \xBA) in the
   fr_FR locale (at least under Debian Linux's locales as of 12/2005). So we must
   test for alnum specially. */
   
 memset(p, 0, cbit_length);  memset(p, 0, cbit_length);
 for (i = 0; i < 256; i++)  for (i = 0; i < 256; i++)
   {    {
Line 123  for (i = 0; i < 256; i++) Line 127  for (i = 0; i < 256; i++)
   }    }
 p += cbit_length;  p += cbit_length;
   
/* Finally, the character type table. In this, we exclude VT from the white/* Finally, the character type table. In this, we used to exclude VT from the
space chars, because Perl doesn't recognize it as such for \s and for commentswhite space chars, because Perl didn't recognize it as such for \s and for
within regexes. */comments within regexes. However, Perl changed at release 5.18, so PCRE changed
 at release 8.34. */
   
 for (i = 0; i < 256; i++)  for (i = 0; i < 256; i++)
   {    {
   int x = 0;    int x = 0;
  if (i != CHAR_VT && isspace(i)) x += ctype_space;  if (isspace(i)) x += ctype_space;
   if (isalpha(i)) x += ctype_letter;    if (isalpha(i)) x += ctype_letter;
   if (isdigit(i)) x += ctype_digit;    if (isdigit(i)) x += ctype_digit;
   if (isxdigit(i)) x += ctype_xdigit;    if (isxdigit(i)) x += ctype_xdigit;

Removed from v.1.1.1.3  
changed lines
  Added in v.1.1.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>