| 26 |
assertion subpattern, including such a pattern used as a condition, |
assertion subpattern, including such a pattern used as a condition, |
| 27 |
unpredictable results occurred, instead of the error return |
unpredictable results occurred, instead of the error return |
| 28 |
PCRE_ERROR_DFA_UITEM. |
PCRE_ERROR_DFA_UITEM. |
| 29 |
|
|
| 30 |
5. The C++ GlobalReplace function was not working like Perl for the special |
5. The C++ GlobalReplace function was not working like Perl for the special |
| 31 |
situation when an empty string is matched. It now does the fancy magic |
situation when an empty string is matched. It now does the fancy magic |
| 32 |
stuff that is necessary. |
stuff that is necessary. |
| 33 |
|
|
| 34 |
6. In pcre_internal.h, obsolete includes to setjmp.h and stdarg.h have been |
6. In pcre_internal.h, obsolete includes to setjmp.h and stdarg.h have been |
| 35 |
removed. (These were left over from very, very early versions of PCRE.) |
removed. (These were left over from very, very early versions of PCRE.) |
| 36 |
|
|
| 37 |
7. Some cosmetic changes to the code to make life easier when compiling it |
7. Some cosmetic changes to the code to make life easier when compiling it |
| 38 |
as part of something else: |
as part of something else: |
| 39 |
|
|
| 40 |
(a) Change DEBUG to PCRE_DEBUG. |
(a) Change DEBUG to PCRE_DEBUG. |
| 41 |
|
|
| 42 |
(b) In pcre_compile(), rename the member of the "branch_chain" structure |
(b) In pcre_compile(), rename the member of the "branch_chain" structure |
| 43 |
called "current" as "current_branch", to prevent a collision with the |
called "current" as "current_branch", to prevent a collision with the |
| 44 |
Linux macro when compiled as a kernel module. |
Linux macro when compiled as a kernel module. |
| 45 |
|
|
| 46 |
(c) In pcre_study(), rename the function set_bit() as set_table_bit(), to |
(c) In pcre_study(), rename the function set_bit() as set_table_bit(), to |
| 47 |
prevent a collision with the Linux macro when compiled as a kernel |
prevent a collision with the Linux macro when compiled as a kernel |
| 48 |
module. |
module. |
| 49 |
|
|
| 50 |
8. In pcre_compile() there are some checks for integer overflows that used to |
8. In pcre_compile() there are some checks for integer overflows that used to |
| 51 |
cast potentially large values to (double). This has been changed to that |
cast potentially large values to (double). This has been changed to that |
| 52 |
when building, a check for int64_t is made, and if it is found, it is used |
when building, a check for int64_t is made, and if it is found, it is used |
| 53 |
instead, thus avoiding the use of floating point arithmetic. (There is no |
instead, thus avoiding the use of floating point arithmetic. (There is no |
| 54 |
other use of FP in PCRE.) If int64_t is not found, the fallback is to |
other use of FP in PCRE.) If int64_t is not found, the fallback is to |
| 55 |
double. |
double. |
| 56 |
|
|
| 57 |
9. Added two casts to avoid signed/unsigned warnings from VS Studio Express |
9. Added two casts to avoid signed/unsigned warnings from VS Studio Express |
| 58 |
2005 (difference between two addresses compared to an unsigned value). |
2005 (difference between two addresses compared to an unsigned value). |
| 59 |
|
|
| 60 |
|
10. Change the standard AC_CHECK_LIB test for libbz2 in configure.ac to a |
| 61 |
|
custom one, because of the following reported problem in Windows: |
| 62 |
|
|
| 63 |
|
- libbz2 uses the Pascal calling convention (WINAPI) for the functions |
| 64 |
|
under Win32. |
| 65 |
|
- The standard autoconf AC_CHECK_LIB fails to include "bzlib.h", |
| 66 |
|
therefore missing the function definition. |
| 67 |
|
- The compiler thus generates a "C" signature for the test function. |
| 68 |
|
- The linker fails to find the "C" function. |
| 69 |
|
- PCRE fails to configure if asked to do so against libbz2. |
| 70 |
|
|
| 71 |
|
|
| 72 |
Version 8.00 19-Oct-09 |
Version 8.00 19-Oct-09 |