http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/pcrelib/config.h?r1=1.2.2.5&r2=1.2.2.6&diff_format=u Index: php-src/ext/pcre/pcrelib/config.h diff -u php-src/ext/pcre/pcrelib/config.h:1.2.2.5 php-src/ext/pcre/pcrelib/config.h:1.2.2.6 --- php-src/ext/pcre/pcrelib/config.h:1.2.2.5 Mon Jan 14 09:39:40 2008 +++ php-src/ext/pcre/pcrelib/config.h Tue Jan 29 20:25:47 2008 @@ -251,13 +251,13 @@ #define PACKAGE_NAME "PCRE" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "PCRE 7.5" +#define PACKAGE_STRING "PCRE 7.6" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "pcre" /* Define to the version of this package. */ -#define PACKAGE_VERSION "7.5" +#define PACKAGE_VERSION "7.6" /* If you are compiling for a system other than a Unix-like system or @@ -310,7 +310,7 @@ /* Version number of package */ #ifndef VERSION -#define VERSION "7.5" +#define VERSION "7.6" #endif /* Define to empty if `const' does not conform to ANSI C. */ http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/pcrelib/pcre.h?r1=1.18.2.1.2.8&r2=1.18.2.1.2.9&diff_format=u Index: php-src/ext/pcre/pcrelib/pcre.h diff -u php-src/ext/pcre/pcrelib/pcre.h:1.18.2.1.2.8 php-src/ext/pcre/pcrelib/pcre.h:1.18.2.1.2.9 --- php-src/ext/pcre/pcrelib/pcre.h:1.18.2.1.2.8 Mon Jan 14 09:39:40 2008 +++ php-src/ext/pcre/pcrelib/pcre.h Tue Jan 29 20:25:47 2008 @@ -42,9 +42,9 @@ /* The current PCRE version information. */ #define PCRE_MAJOR 7 -#define PCRE_MINOR 5 +#define PCRE_MINOR 6 #define PCRE_PRERELEASE -#define PCRE_DATE 2008-01-10 +#define PCRE_DATE 2008-01-28 /* When an application links to a PCRE DLL in Windows, the symbols that are imported have to be identified as such. When building PCRE, the appropriate http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/pcrelib/pcre_compile.c?r1=1.1.2.1.2.7&r2=1.1.2.1.2.8&diff_format=u Index: php-src/ext/pcre/pcrelib/pcre_compile.c diff -u php-src/ext/pcre/pcrelib/pcre_compile.c:1.1.2.1.2.7 php-src/ext/pcre/pcrelib/pcre_compile.c:1.1.2.1.2.8 --- php-src/ext/pcre/pcrelib/pcre_compile.c:1.1.2.1.2.7 Mon Jan 14 09:39:40 2008 +++ php-src/ext/pcre/pcrelib/pcre_compile.c Tue Jan 29 20:25:47 2008 @@ -2374,6 +2374,7 @@ BOOL class_utf8; BOOL utf8 = (options & PCRE_UTF8) != 0; uschar *class_utf8data; +uschar *class_utf8data_base; uschar utf8_char[6]; #else BOOL utf8 = FALSE; @@ -2685,6 +2686,7 @@ #ifdef SUPPORT_UTF8 class_utf8 = FALSE; /* No chars >= 256 */ class_utf8data = code + LINK_SIZE + 2; /* For UTF-8 items */ + class_utf8data_base = class_utf8data; /* For resetting in pass 1 */ #endif /* Process characters until ] is reached. By writing this as a "do" it @@ -2700,6 +2702,18 @@ { /* Braces are required because the */ GETCHARLEN(c, ptr, ptr); /* macro generates multiple statements */ } + + /* In the pre-compile phase, accumulate the length of any UTF-8 extra + data and reset the pointer. This is so that very large classes that + contain a zillion UTF-8 characters no longer overwrite the work space + (which is on the stack). */ + + if (lengthptr != NULL) + { + *lengthptr += class_utf8data - class_utf8data_base; + class_utf8data = class_utf8data_base; + } + #endif /* Inside \Q...\E everything is literal except \E */