Commit Graph

275 Commits

Author SHA1 Message Date
Philip.Hazel 4e61019ffe Implement pcre2_callout_enumerate(). 2015-03-23 15:52:08 +00:00
Philip.Hazel b15698b077 Fix data overrun for /(?(?C)/ 2015-03-20 12:37:28 +00:00
Philip.Hazel aa8d7342da Test binary zero in callout strings; change offset to PCRE2_SIZE; some
documentation tidies.
2015-03-16 15:38:26 +00:00
Philip.Hazel 15e034c9c2 Add string offset within the pattern to the data passed to a callout with a
string argument.
2015-03-14 12:20:18 +00:00
Philip.Hazel b2c67082bd Fix crash in pcre2test for some callouts with string arguments. 2015-03-14 10:47:43 +00:00
Philip.Hazel baf08a3d37 Support manual callout with string argument at start of condition. 2015-03-12 17:00:18 +00:00
Zoltán Herczeg bccfdcb172 Assertion code generator in JIT has been optimized. 2015-03-12 11:21:38 +00:00
Philip.Hazel d0cf279d87 Code for callouts with string arguments. Documentation not yet updated. 2015-03-11 17:44:16 +00:00
Philip.Hazel b6bc8c6328 Final file tidies for 10.10 release. 2015-03-06 15:08:29 +00:00
Zoltán Herczeg 4161891b42 Fix compiler errors when JIT is not enabled. 2015-03-06 12:49:18 +00:00
Philip.Hazel 54396a364d Fix bad compile of patterns like /[A-`]/i,utf where the range contains
characters with multiple other cases and the ranges adjoin.
2015-03-06 11:57:06 +00:00
Zoltán Herczeg 94802eb0d9 Remove computing the JIT read-only data size in advance and use on-demand memory allocation. 2015-03-06 07:41:36 +00:00
Philip.Hazel c372df5dce Fix compile error for forward reference subroutine call within a group that
also contained a recursive back reference.
2015-03-01 18:34:05 +00:00
Philip.Hazel ea03932668 Fix "internal error" bug caused by patterns like "((?2){0,1999}())?". 2015-02-28 11:31:51 +00:00
Philip.Hazel 67800ba810 Final file tidies for 10.10-RC2. 2015-02-26 17:36:29 +00:00
Philip.Hazel 20c75b2f42 Add RunTest.bat for testing under Windows, with appropriate test files. 2015-02-25 17:19:28 +00:00
Philip.Hazel 438e51958a Fix DECL/DEFN typo that affects Windows. 2015-02-24 14:21:28 +00:00
Zoltán Herczeg 928766f727 JIT compiler update. 2015-02-23 07:50:53 +00:00
Philip.Hazel d226c5ea4d Improve error message for pcre2test stack setting failure; also %ld should
really be %lu throughout.
2015-02-21 18:53:51 +00:00
Philip.Hazel 5878c2c3a5 Two more 32-bit warnings fixed. 2015-02-21 17:26:24 +00:00
Philip.Hazel 07e25a17df Fix compiler warnings for pcre2test on 32-bit systems. 2015-02-21 17:25:12 +00:00
Philip.Hazel 49a7eada2d Final source file tidies for 10.10-RC1 2015-02-20 11:20:40 +00:00
Philip.Hazel 3d9cc76a52 Fix bug for groups like (a)*+ (possessive, zero minimum) when the ovector was
too small to capture.
2015-02-11 10:06:09 +00:00
Philip.Hazel 154bc83cb5 Fix replacement bug in pcre2_substitute(). 2015-02-10 12:48:45 +00:00
Philip.Hazel 9059444834 Fix alignement problem in deserialization on 64-bit SPARC. 2015-02-07 16:22:48 +00:00
Philip.Hazel 2e36497404 Fix compile loop for subroutine reference after class such as [^\ff]. 2015-02-06 17:51:55 +00:00
Philip.Hazel ad452f4036 Give an internal error for a bad opcode during auto-possessification. This can
stop a loop when compiling an invalid UTF string with PCRE2_NO_UTF_CHECK.
2015-02-06 16:47:15 +00:00
Philip.Hazel 0011aaa712 Disallow quantification of assertion conditions, for Perl compatibility (and in
any case it didn't always work).
2015-01-28 17:31:11 +00:00
Philip.Hazel 6c8945b8d8 Fix mutual back reference recursion segfault. 2015-01-28 11:28:53 +00:00
Philip.Hazel 911b800984 Fix incorrect size calculation when a reference to a duplicate name occurs
in a part of the pattern where PCRE2_DUPNAMES is not set.
2015-01-27 17:21:32 +00:00
Philip.Hazel ca77bdd5c4 Implement (*NO_JIT) 2015-01-26 14:57:27 +00:00
Philip.Hazel 5438fc8a6a Add serialization functions and tests with updated pcre2test. Fix
PCRE2_INFO_SIZE issues.
2015-01-23 16:51:47 +00:00
Philip.Hazel d4daaf966d Fix conditional group backreference bug. 2015-01-13 16:01:24 +00:00
Philip.Hazel c702fd65c8 Final file tides for the 10.00 release. 2015-01-05 16:02:11 +00:00
Philip.Hazel 5a18651441 Add PCRE2_NO_DOTSTAR_ANCHOR and revise documentation for .* optimizing. 2015-01-02 17:09:16 +00:00
Philip.Hazel 019e115060 Ensure that the function op_recurse_ovecsave is not inlined when compiled by
gcc.
2014-12-31 11:15:03 +00:00
Philip.Hazel b8dbae1474 Improvements for substring handling with partial matches. 2014-12-22 17:33:10 +00:00
Philip.Hazel 2a5767d757 File tidies for 10.00-RC2. 2014-12-19 09:55:25 +00:00
Philip.Hazel e34c44e2aa Small code tidy. 2014-12-15 11:17:05 +00:00
Philip.Hazel cb8865d247 Update and improve substring handling and its documentation. 2014-12-14 17:17:06 +00:00
Philip.Hazel a85d15cbd1 Improve interfaces to substring functions, and fix bugs. 2014-12-13 17:43:26 +00:00
Philip.Hazel a119d6f974 (1) uint32_t for substring number args; (2) correct PRIV(memctl_malloc)
definition for Windows; (3) remove unwanted PCRE2_EXP_DATA_DEFN; (4) 
documentation updates.
2014-12-01 16:14:53 +00:00
Zoltán Herczeg bb3b7927f3 Next attempt to fix the previous bug. 2014-11-30 10:05:41 +00:00
Zoltán Herczeg d788c58e6b Fix jit_callback check in JIT. 2014-11-30 10:01:49 +00:00
Philip.Hazel a99e048b4f File tidies for 10.00-RC1. 2014-11-28 13:58:17 +00:00
Philip.Hazel caf78231ec Use allocator from code for pcre2_match_data_create_from_pattern if NULL
passed.
2014-11-28 13:23:40 +00:00
Philip.Hazel 161cd17ba0 Move context argument to last in pcre2_jit_stack_create(). 2014-11-28 12:46:16 +00:00
Philip.Hazel 9fcdf2cc6f Add user data to recursion guard; get ready for RC1 (again) 2014-11-26 16:51:53 +00:00
Philip.Hazel 312375057b Change callouts to pass the user data as a separate argument. 2014-11-25 17:35:01 +00:00
Philip.Hazel d13f52c1c4 Tidy up API for pcre2_config. 2014-11-25 11:55:07 +00:00
Zoltán Herczeg bb6bf69a6e Move all offset initialization to one place. 2014-11-25 09:06:27 +00:00
Philip.Hazel 0acc416ed1 Final preparations for 10.00-RC1 2014-11-24 15:31:28 +00:00
Philip.Hazel 91f2e97474 More documentation and test updates. 2014-11-23 18:38:38 +00:00
Philip.Hazel eb4fffbbf4 More documentation and file tidies. 2014-11-21 16:45:06 +00:00
Philip.Hazel ba1e2e0cbb Add additional tests and fix some compiler warnings; update stack information. 2014-11-21 12:19:37 +00:00
Philip.Hazel 69176e79a5 Eliminate a compiler warning. 2014-11-20 17:39:28 +00:00
Philip.Hazel eea35d0cab Fix zero-repeated assertion-as-condition bug. 2014-11-19 11:17:20 +00:00
Philip.Hazel 819e175659 Eliminate compiler warning 2014-11-18 18:31:39 +00:00
Philip.Hazel 07f8372202 Further substitution tests (code and data), and more documentation. 2014-11-14 18:41:20 +00:00
Philip.Hazel adc7be2d3a Get rid of remaining FIXMEs in the code; implement JIT compile timing. 2014-11-12 17:46:02 +00:00
Philip.Hazel c19bd9a377 Substitution tests and documentation. 2014-11-12 16:57:56 +00:00
Philip.Hazel b3ac0ffb32 Substitute code update and documentation. 2014-11-11 16:51:07 +00:00
Philip.Hazel bb34dede56 Config returns code unit count for strings - didn't always. 2014-11-11 10:50:31 +00:00
Philip.Hazel bcf59568aa Typos in non-JIT compile mode. 2014-11-11 10:21:23 +00:00
Philip.Hazel f1c6ee730a Code for pcre2_substitute(), and tests. 2014-11-11 10:19:23 +00:00
Zoltán Herczeg 1bbc86fe67 JIT compiler update. 2014-11-09 07:23:55 +00:00
Philip.Hazel a9f31c3377 Preliminary substitute function (not yet tested or documented). 2014-11-08 16:09:24 +00:00
Philip.Hazel d7495ff642 Finish off changes of JIT stack assignment 2014-11-08 16:07:30 +00:00
Zoltán Herczeg 94c0deddd3 Remove pcre2_jit_stack argument from jit_match. 2014-11-07 12:12:52 +00:00
Zoltán Herczeg 7d9caa5b41 The pcre2_jit_stack_assign is changed to use the matching context. 2014-11-06 14:37:09 +00:00
Philip.Hazel e3e4131379 Fix bug for (*ACCEPT) inside a capturing group. 2014-11-05 16:05:19 +00:00
Philip.Hazel 44ef2c3401 Make --enable-unicode the default. 2014-11-03 18:27:56 +00:00
Philip.Hazel 08e3107cbe Changed jit_stack_alloc to jit_stack_create. 2014-11-03 17:13:00 +00:00
Philip.Hazel dea68c01fb Add tests for JIT fast path. 2014-11-02 15:34:31 +00:00
Philip.Hazel a15a4de10b Recognize '-' as standard input in pcre2test. 2014-10-31 15:57:47 +00:00
Philip.Hazel 8aa511a98b Improve test coverage; minor typo in JIT test and other minor buglets fixed. 2014-10-31 12:34:34 +00:00
Philip.Hazel 3989f00461 Convert the special "EBCDIC on an ASCII system" test. 2014-10-26 18:00:19 +00:00
Philip.Hazel 56805a1246 Remove some unused code and a spurious comment and reword one message. 2014-10-25 14:28:43 +00:00
Philip.Hazel b23ec7e1f5 More per-function documentation; revised perltest.sh replaces perltest.pl. 2014-10-25 14:16:46 +00:00
Philip.Hazel db8480a1e0 A lot more documentation. 2014-10-21 16:33:30 +00:00
Philip.Hazel c3799e750f Tidy a lot of files (remove trailing spaces) 2014-10-20 17:28:49 +00:00
Philip.Hazel eb59159ce0 Change --enable-pcre8 etc to --enable-pcre2-8 etc and consequent changes;
change "pcre" to "pcre2" in a number of files.
2014-10-17 15:52:57 +00:00
Philip.Hazel 2f27ca131d Update pcre2_pattern_info to return a length if "where" is NULL. 2014-10-16 16:49:23 +00:00
Philip.Hazel 7d0008d453 Remove length argument from pcre2_config; give width if where==NULL. 2014-10-15 16:44:12 +00:00
Philip.Hazel 722817013c Fix several bugs concerned with different configurations. 2014-10-15 15:57:49 +00:00
Philip.Hazel 29ae875dd7 Fix Unicode version and JIT target output. 2014-10-14 17:07:46 +00:00
Philip.Hazel 14ed10fc3a Minor length bug. 2014-10-14 16:41:13 +00:00
Philip.Hazel 26cd0bccb3 Partial documentation and partial code tweaks. 2014-10-14 16:23:57 +00:00
Zoltán Herczeg a6302442f2 Fix JIT test issues when PCRE2 configured in various modes. 2014-10-13 06:43:00 +00:00
Philip.Hazel 3ab47d70b0 Create PRIV(strcpy_c8) for copying config strings. 2014-10-12 15:45:05 +00:00
Philip.Hazel 0ec351e95e Create default compile and match contexts as constant static data. 2014-10-11 17:05:18 +00:00
Philip.Hazel b6e793f343 The tests all run clean with JIT. 2014-10-11 15:56:25 +00:00
Zoltán Herczeg 1ebad64b34 Landing initial version of JIT regression tests. 2014-10-10 17:29:08 +00:00
Philip.Hazel d961132ae1 Fix match_unset_backref bug. 2014-10-10 16:42:03 +00:00
Philip.Hazel 623b497851 Fix "first code unit" bug. 2014-10-10 16:16:44 +00:00
Philip.Hazel 62d728bb0b Remove leftchar/rightchar from the public API. 2014-10-10 11:55:28 +00:00
Zoltán Herczeg 0907fc6e92 Support for JIT code free and small partial match optimization. 2014-10-09 10:06:19 +00:00
Zoltán Herczeg 62746ceb10 Several small JIT fixes. 2014-10-08 08:57:26 +00:00
Philip.Hazel cc463c76a3 Call _pcre2_jit_free from pcre2_code_free. 2014-10-07 13:07:20 +00:00
Philip.Hazel 2148a4093e Work on the tests for JIT. 2014-10-06 17:28:42 +00:00
Philip.Hazel 4bdfd990af Impose a minimum of 1 for the number of pairs in the ovector. 2014-10-05 17:55:25 +00:00
Philip.Hazel 4ca4ad688d Fix duplicate RM15 label (compile error with --disable-stack-for-recursion). 2014-10-05 16:56:11 +00:00
Zoltán Herczeg 386b47eabe More JIT fixes. 2014-10-05 06:20:41 +00:00
Zoltán Herczeg 648695e262 Minor fixes. RunTest 1 now works with JIT. 2014-10-04 17:05:21 +00:00
Philip.Hazel 0e221c4381 Break global loop in pcre2test if matching returns the same substring. 2014-10-04 15:09:00 +00:00
Zoltán Herczeg f0855fab5c Starting commit of the JIT compiler. 2014-10-03 10:17:18 +00:00
Philip.Hazel ccd5ac9014 Save compile-time work when PCRE2_NO_START_OPTIMIZE is set. 2014-10-03 09:47:59 +00:00
Philip.Hazel df93e05c2e Remove match context argument from pcre2_jit_compile. 2014-10-03 09:25:57 +00:00
Philip.Hazel e036c5fba0 Remove the ability to change newlines and \R at match time. 2014-10-01 17:02:33 +00:00
Philip.Hazel a0410efc56 Make PCRE2_NO_START_OPTIMIZE a compile-only option. 2014-10-01 16:16:27 +00:00
Philip.Hazel 313245365d Update pcre2test with JIT features (untested) 2014-09-30 16:30:39 +00:00
Zoltán Herczeg 63d812ff0e Land the JIT compiler (as a separate commit). 2014-09-30 07:08:35 +00:00
Zoltán Herczeg 4fda5bba36 PCRE2 successfully compiles with --enable-jit now. 2014-09-30 07:06:48 +00:00
Philip.Hazel 5543597741 More documentation. 2014-09-29 16:45:37 +00:00
Philip.Hazel e15b64ef03 More draft documentation. 2014-09-28 17:39:28 +00:00
Philip.Hazel d5495a30f4 Documentation scripts 2014-09-23 11:35:51 +00:00
Philip.Hazel 698d21c62f Changed SUPPORT_PCRE8 etc into SUPPORT_PCRE2_8 etc. 2014-09-19 17:53:33 +00:00
Philip.Hazel 24c0018125 Set the callout block version back to 0 for this new project and re-order the
fields.
2014-09-19 17:38:26 +00:00
Philip.Hazel eee8530add API documentation and a lot of little related changes to the code. 2014-09-19 07:43:39 +00:00
Philip.Hazel de4f203346 Changed remaining size_t occurrences to PCRE2_SIZE. 2014-08-31 17:03:37 +00:00
Philip.Hazel 7b2707fcf7 Make /()a/ set the "first character must be" data. 2014-08-30 16:21:17 +00:00
Philip.Hazel 9c3deebcbd Fix int/long bug in limit argument decoding. 2014-08-30 14:20:14 +00:00
Philip.Hazel 4bb064a167 Fix typos: PCREPOSIX -> PCRE2POSIX. 2014-08-30 08:52:32 +00:00
Philip.Hazel 066aa00067 Re-specify how the substring functions return lengths. 2014-08-29 12:12:34 +00:00
Philip.Hazel cfb78cbd53 Refactor match_ref() and fix UTF-8 caseless bug. 2014-08-27 16:59:56 +00:00
Philip.Hazel 7858fa702d Implement (*NOTEMPTY) and (?(VERSION= features. 2014-08-26 11:46:21 +00:00
Philip.Hazel ac70cacd29 Implement the "rightchar" feature of match data. 2014-08-19 17:07:22 +00:00
Philip.Hazel 55e279eff2 Some missed PCRE2_SIZE updates in pcre2test. 2014-08-17 11:12:22 +00:00
Philip.Hazel ac8cbf8d6a Keep recursion ovecsave blocks on a chain and re-use them. 2014-08-16 15:10:42 +00:00
Philip.Hazel 7efba85b56 Change lengths to PCRE2_SIZE and revise OP_RECURSE processing. 2014-08-16 09:46:58 +00:00
Philip.Hazel 7770350034 Remove (possibly temporarily) byte-ordering functions (which were dummies
anyway), to be thought about later.
2014-08-15 10:07:50 +00:00
Philip.Hazel 415cf1a40e Tidy some comments; change several PCRE2_INFO fields to uint32_t instead of
int.
2014-08-15 09:55:18 +00:00
Philip.Hazel 8397209c5b Specifying that the pcre2_memctl block must be at the start of all relevant
blocks simplifies the code.
2014-08-15 09:19:04 +00:00
Philip.Hazel d631f4025c Remove save/load from pcre2test, as they will not be implemented just yet (if
at all).
2014-08-12 17:41:11 +00:00
Philip.Hazel 803c38f004 Add PCRE2_CONFIG_UNICODE_VERSION to give the Unicode version string. 2014-08-12 09:48:56 +00:00
Philip.Hazel 059a8ebfe4 Re-arrange option bits and fix bad indentation. 2014-08-11 18:43:15 +00:00
Philip.Hazel 1ee50d75e5 Remove src/config.h.in from version control. 2014-08-11 18:26:05 +00:00
Philip.Hazel bcfa6a7d5b Don't say "No options" or "No first/last code unit"; simplifies pcre2test
output.
2014-08-10 16:32:58 +00:00
Philip.Hazel b6b9087081 Multi-config tests (without JIT) now work. 2014-08-10 16:09:24 +00:00
Philip.Hazel fa89e0d74b Test tweak. 2014-08-08 18:21:05 +00:00
Philip.Hazel 55967f9a4f Preparatory work for JIT. 2014-08-08 18:18:18 +00:00
Philip.Hazel b7c5d02b3d Fix stack overflow bug, copying fix from PCRE1. 2014-08-08 15:36:18 +00:00
Philip.Hazel 896e6051ab Abolish 'D' abbrevation for 'debug'. 2014-08-07 16:57:28 +00:00
Philip.Hazel f40fba5dc8 Adjust tests for PCRE/Perl anomalies in character properties & fix one bug. 2014-08-06 17:33:14 +00:00
Philip.Hazel e022475d54 All tests except JIT and save/reload are implemented. 2014-08-05 16:51:32 +00:00
Philip.Hazel e2076960d4 Changes to pcre2test single-letter modifiers. 2014-08-03 18:15:32 +00:00
Philip.Hazel 8792477279 Add more tests. 2014-08-03 17:50:08 +00:00
Philip.Hazel 2addfec25d Test 4 installed (combines old tests 4 and 6) 2014-07-25 16:35:51 +00:00
Philip.Hazel 1f9e6eb439 Test 3 (locale test) converted. 2014-07-24 18:01:11 +00:00
Philip.Hazel 017b6a1624 Tests 1 and 2 are converted (but without save/restore). 2014-07-24 16:32:38 +00:00