Parent Directory
|
Revision Log
Links to HEAD: | (view) (annotate) |
Sticky Revision: |
File tidies, preparing for 8.32-RC1.
Support (*UTF) in all libraries.
Last minute fixes and some documentation update in the JIT compiler.
Temporarily remove 32-bit masking Remove the masking via the PCRE_NO_UTF32_CHECK. It will be reintroduced as a dedicated runtime option later, with support for JIT and non-JIT cases.
Fix compile-time assertion to test the right thing The assertion needs to test that the *public* definition of the 32-bit character is a 32-bit integer type, not the *private* definition.
Rewrite 32-bit GETCHAR* macros Move the high-bit masking to a dedicated macro, and use that in the GETCHAR* and RAWUCHAR* macros.
Add more safety parentheses to macros
JIT native interface.
Use CHAR_NULL in pcre_compile when checking for character zero.
Add a definition for CHAR_NULL (helpful for the z/OS port).
Fix -Wundef warnings when stdint.h is not available Pointed out by Daniel Richard G. on the mailing list.
valgrind: Add --support-valgrind configure option When --enable-valgrind is passed, PCRE will annotate some memory regions as unaddressable, aiding in finding invalid memory accesses when running under valgrind. This is useful mostly for debugging PCRE itself, and thus probably should not be enabled in release builds.
Clean up compiler warnings for pcre_exec.c in all modes.
Get rid of compiler warnings from pcre_compile.c in all modes.
Change comment.
pcre32: Fix signed-unsigned compare
Make ucp_gentype unsigned int It's compared against unsigned values, so change it to unsigned to quit a few -Wsign-compare warnings.
pcre32: Remove unnecessary ifdefing Just define HAS_EXTRALEN etc to 0. This reduces the amount of #ifdef COMPILE_PCRE32.
pcre32: Remove unnecessary space
pcre32: exec: Mask bits > 21 in 32-bit UTF mode Allow passing characters with high bits set in UTF-32 mode.
pcre32: pcretest: Don't convert data line to UTF-8 first While reading the data lines, directly put them into the 8, 16 or 32 bit buffers instead of first converting them into UTF-8 and only afterwards converting that buffer to 16/32 bit. This is necessary so the in 32 bit mode the \x{} escapes can use the full 32-bit range (while the non-standard 5/6 byte UTF-8 sequences can only express characters up to 31-bits).
pcre32: Mask out bits >= 22 on 32-bit characters in UTF-32 mode UTF-32 only uses 21 bits, so the upper bits may be used to store flags etc. To allow passing the unmodified internal buffers to pcre32, make pcre32 mask out those upper bits. TODO: do the same for the JIT compiler, and add tests
pcre32: compile: Separate first/req char flags from the character itself This is necessary so that 32-bit characters in non-UTF-32 mode can be from the whole 32-bit range.
pcre32: compile: Fix signed/unsigned mismatch in GET_UCD
pcre32: compile: Encode back references as negative numbers Return the back reference as negative numbers from check_escape(), instead of adding them to ESC_REF. This way, there will never be an overflow.
pcre32: compile: Make check_escape return the data character in an out param check_escape needs to return both the escape code and possibly a data character. Return the data character in an out param instead of mixing it with the escape code; this is in preparation to making the character a pcre_uint32 to enable the full 32-bit range in pcre32 in non-UTF-32 mode.
pcre32: xclass: Use pcre_uint32 for characters This fixes character classes for 32-bit in non-UTF-32 mode.
pcre32: Add 32-bit library Create libpcre32 that operates on 32-bit characters (UTF-32). This turned out to be surprisingly simple after the UTF-16 support was introduced; mostly just extra ifdefs and adjusting and adding some tests.
All the remaining changes for handling characters with more than one other case.
Update character class handling to use new character case information; rework \h, \H, \v, and \V to use the same apparatus with centrally defined lists.
Update MultiStage2.py to create new case-folding information in the Unicode tables.
New "case" macros did not work in EBCDIC mode.
Turn case lists for horizontal and vertical white space into macros so they are defined only once.
General spring-clean of EBCDIC-related issues in the code, which had decayed over time. Also the documentation. Added one test that can be run in an ASCII world to do a little testing of EBCDIC-related things.
Set config.h NEWLINE values appropriately for EBCDIC, adding --enable-ebcdic-nl25 (and CMake equivalent) for the alternate NL encoding.
Add support for PCRE_STUDY_EXTRA_NEEDED.
Improve extended grapheme clusters using a bit table.
Upgrade \X to match an extended grapheme cluster
Fix patterns that incorrectly set "anchored" or "start of line" for .* inside atomic parentheses or when *PRUNE or *SKIP is present.
Apply character value checks to \u.... in JavaScript mode, for compatibility with \x{....} in non-JavaScript mode.
Document update for 8.31-RC1 test release.
Check for overlong name in (*MARK) etc.
(COMMIT*) is now supported by the JIT compiler
Applied Graycode's patch to use heap stack frames more efficiently.
Add support for PCRE_INFO_MAXLOOKBEHIND.
(*MARK) support, set_SOM optimization and other fixes in JIT
Improved \X and back reference partial matching
Partial matching support is added to the JIT compiler
fix local symbol issues in pcre_printint.c
JIT test prints cpu info
rename PCRE_SCHAR16 to PCRE_UCHAR16 and JIT compiler update
Add pcre16 prefix to 16 bit structs
add pcre16_callout_block and pcre16_extra
Tidy compile-time error messages for 16-bit.
Merging all the changes from the pcre16 branch into the trunk.
Rolled back trunk to r755 to prepare for merging the 16-bit branch.
Source tidies for 8.21-RC1
Preserve the size of JIT compiled code. Add PCRE_INFO_JITSIZE and use it for the /M option in pcretest.
Expand compile workspace for very many forward references. This ups the limit by a factor of 100.
Update *MARK handling to be more like Perl.
Test for workspace overflow with forward reference data.
Disallow \N in character classes, for Perl compatibility.
Support \C in lookbehinds and DFA matching when not in UTF-8 mode.
Fixed several items that were being incorrectly rejected as "not fixed length" in lookbehinds.
Source tidies for 8.20-RC3.
Revert handling of atomic groups that do not include captures to the old way of handling, thus reducing stack usage.
Make (*THEN) work as in Perl in subpatterns that do not contain | alternatives.
File tidies for 8.20-RC2 release.
Restore tail-recursion optimizations when no (*THEN) in pattern.
Final source and document tidies for 8.20-RC1.
Adjust JIT limit code; make JIT test return 1 if not successful.
Commit all the changes for JIT support, but without any documentation yet.
Documentation and general text tidies in preparation for test release.
Avoid false positive for infinite recursion by not checking conditionals at compile time, but add tests at runtime that also catch infinite mutual recursion.
Permit quantifiers on parenthesized assertions.
Fix isolated \k bug.
Re-do atomic group processing to fix backtrack capture bugs. Recursion is also re-worked.
Fix problem with the interaction of (*ACCEPT) in an assertion with PCRE_NOTEMPTY.
Fix two study bugs concerned with minimum subject lengths; add features to pcretest so that all tests can be run with or without study; adjust tests so that this happens.
Refactoring to reduce stack usage for possessively quantified subpatterns. Also fixed a number of bugs related to repeated subpatterns. Some further tidies consequent on the removal of OP_OPT are also in this patch.
Remove OP_OPT by handling /i and /m entirely at compile time. Fixes bug with patterns like /(?i:([^b]))(?1)/, where the /i option was mishandled.
Pass back detailed info when UTF-8 check fails at runtime.
Fix small typos in pcre_internal.h
Tidies of documenation and code while preparing for release.
Added support for (*NO_START_OPT)
Give error if \c is followed by a byte > 127 (in ASCII/UTF-8 modes).
Remove loops from GETCHAR etc. macros.
Fix problem with (*THEN) not backing up far enough.
Prepare for release candidate.
Fix crash for property test in non-UTF-8 mode.
Added PCRE_UCP and related stuff to make \w etc use Unicode properties.
Add new special properties Xan, Xps, Xsp, Xwd to help with \w etc.
Add support for \N.
Fix compile problems when heap is in use
Add support for *MARK and names for *PRUNE, *SKIP, *THEN.
Tidies for 8.02-RC1 release.
Fix bugs with \K in atomic groups, subroutines, and assertions.
Add some checks for the eint vector size and the list of compile-time error texts.
Fix missing data in coptable and poptable vectors; add compile-time checks for their lengths.
If stdint.h is not available, include inttypes.h if available.
Fix #947, recursive back reference bug.
Tidying updates for 8.01-RC1 release.
Fix some discrepancies between "USPTR" and "unsigned char *".
Tidies to allow easier embedded compilation; avoid (double) where possible.
Fix PCRE_PARTIAL_HARD for patterns that end optionally, e.g. abc*
Tidy up, remove trailing spaces, etc. for 8.00-RC1.
Fix problems with conditional references to duplicate named subpatterns.
Allow duplicate names for same-numbered groups; forbid different names.
Added lower bound length-finding to pcre_study() and use it when matching; make the value available via pcre_fullinfo(); also fixed bugs connected with pcre_study() in pcre_dfa_exec().
Allow fixed-length subroutine calls in lookbehinds.
Capture data when (*ACCEPT) is inside capturing parentheses.
Correct returned capture count after recursion has matched more than outer.
Added PCRE_NOTEMPTY_ATSTART to fix /g bug when \K is present.
Further updates to partial matching.
Add new PCRE_PARTIAL_HARD option.
Remove restrictions on pcre_exec() partial matching.
Add support for (*UTF8).
Trailing space tidies
Force SUPPORT_UTF8 if SUPPORT_UCP is set (for non-"configure" users).
Update after detrailing for a test release.
Add support for UTF-8 in EBCDIC environments.
Add PCRE_NO_START_OPTIMIZE
Fix Unicode property support in character classes for chars > 127 in non-UTF-8 mode.
Bug fixes: forgot to commit these individually.
Source tidies for 7.8-RC1
Patch to reduce warnings from certain compilers.
Several bugs concerned with skipping over UTF-8 characters at the start of matching (8.0/13, 8.0/14).
Add PCRE_CALL_CONVENTION for MSVC users; add some missing PCRE_EXP_DEFNs.
Final tidies for new Unicode property code; upgrade to Unicode 5.1.0.
Preliminary patch for upgraded Unicode Property support.
Tidies for the 7.7-RC1 distribution.
Fix DFA (?!) bug; add support for JavaScript empty classes.
Added PCRE_JAVASCRIPT_COMPAT option.
Do not discard subpatterns with {0} quantifiers, as they may be called as subroutines.
Add Oniguruma syntax \g<...> and \g'...' for subroutine calls.
Update copyright year to 2008.
Tidies for the 7.5 release.
Fix UTF-8/newline=ANY with .* crash.
Add .gz and .bz2 optional support to pcregrep.
Change "alphameric" to "alphanumeric".
Diagnose conditional numerical reference to a non-existent subpattern.
Improve error messages for (?+-a) and (?-+a).
Fix (?&) non-diagnosis bug and missing length check for (?&a) etc.
Detrailed files for 7.4-RC1 test release.
Refactoring to reduce the number of relocations in a shared library.
Add facility to make \R match only CR, LF, or CRLF.
(1) Move internal flags out of the options field, to make room. (2) \r and \n must be explicit to trigger the special CRLF handline exception. (3) (?J) at the start now sets JCHANGED as well as DUPNAMES.
Don't advance by 2 if explicit \r or \n in the pattern. Add PCRE_INFO_HASCRORLF.
Add integer overflow tests to escape processing.
Update UTF-8 validity check and documentation.
Add Perl 5.10's backtracking verbs.
Added a pcresyntax man page; tidied some others.
Fix backtrack past start of subject bugs caused by the use of \X, \p, or \P in non-UTF-8 mode and the presence of top-bit-set characters.
Daniel's patch for config.h and Windows DLL declarations (not fully working).
Adjust opcode names in debugging output.
Fix bug with .*$ when run in not-DOTALL UTF-8 mode; small performance improvement for .* in DOTALL UTF-8 mode.
Change #include <pcre.h> to #include "pcre.h" in pcre_internal.h (an error that crept in at 7.1).
Add support for \h, \H, \v, \V.
Drastically reduce workspace used for alternatives in groups; also some trailing space removals for a test release.
Add support for the Perl 5.10 \K facility.
Add (?-n) and (?+n) relative references.
Replace longjmp() with gotos when not using stack recursion.
Fix typos in comment.
Update HTML documentation.
Add PCRE_NEWLINE_ANYCRLF.
Reworked all the WIN32 __declspec stuff in the hope of getting it right.
Daniel's patches.
Removal of trailing spaces.
Fix bug in emulated memmove() for downward moves.
Update copyright years to 2007.
Arguments for the emulated memmove() should be void *, not char *.
Updated the support (such as it is) for Virtual Pascal, thanks to Stefan Weber: (1) pcre_internal.h was missing some function renames; (2) updated makevp.bat for the current PCRE, using the additional files !compile.txt, !linklib.txt, and pcregexp.pas.
r6896@hex: nm | 2007-03-02 13:09:14 +0000 Added EOL and keywork properties throughout
Load pcre-7.0 into code/trunk.
Load pcre-6.7 into code/trunk.
Load pcre-6.5 into code/trunk.
Load pcre-6.4 into code/trunk.
Load pcre-6.0 into code/trunk.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
ViewVC Help | |
Powered by ViewVC 1.1.5 |