Commit Graph

250 Commits

Author SHA1 Message Date
Philip.Hazel ff4553df08 Check for integer overflow in subroutine calls. 2015-06-08 17:51:54 +00:00
Philip.Hazel 4c0414c813 Re-organize tests that didn't work with LINK_SIZE=3. 2015-06-03 17:18:06 +00:00
Philip.Hazel c9ac9e23ec Refactor named group handling by adding a pre-pass that generates a list of
named groups with their numbers before the rest of the compiling code is run. 
This has simplified the main compiling code and removed some sources of error.
2015-06-03 16:27:47 +00:00
Philip.Hazel 666b3c88cf Give error for empty subpattern name such as (?''). 2015-05-19 16:48:57 +00:00
Philip.Hazel 78735a5336 Fix buffer overflow for lookbehind with mutually recursive groups. 2015-05-18 17:31:29 +00:00
Philip.Hazel ba8f1d8002 Maintenance on test after running ManyConfigTests. 2015-05-17 17:44:21 +00:00
Philip.Hazel 6f94ece67d Fix forward reference by name to duplicate group number bug. 2015-05-16 11:01:48 +00:00
Philip.Hazel 56444e9978 Fix buffer overflow for recursive byname back reference when duplicate names
exist.
2015-05-15 17:09:01 +00:00
Philip.Hazel 92739ef5d8 Fix repeated condition check by duplicated name bug. 2015-05-08 16:32:28 +00:00
Philip.Hazel e653c5f142 Re-do previous patch and fix new forward-reference-with-quantification bugs. 2015-05-06 16:51:25 +00:00
Philip.Hazel c420d11041 Fix bug in previous fix. 2015-05-05 18:46:51 +00:00
Philip.Hazel d5191510db Fix recursive forward reference bug. 2015-05-03 16:46:56 +00:00
Philip.Hazel 4d35b44b43 Fix compatibility issues for \8 and \9. 2015-04-23 17:28:39 +00:00
Philip.Hazel d1a13b8e2e Implement PCRE2_ALT_CIRCUMFLEX. 2015-04-22 17:39:25 +00:00
Philip.Hazel fe2733263d Fix replication bug in pcre2test. 2015-04-21 08:34:10 +00:00
Philip.Hazel e47a6ebe87 Implement PCRE2_NEVER_BACKSLASH_C. 2015-04-13 17:29:05 +00:00
Philip.Hazel 3e1748390b Fix very slow find_minlength when mutual recursion is present. 2015-04-13 09:13:39 +00:00
Philip.Hazel f123833bdb Fix other cases where backtracking after \C could cause a crash. 2015-04-08 16:53:22 +00:00
Philip.Hazel aa8ee3ded5 Fix backtracking bug for \C\X* in UTF mode. 2015-04-08 16:33:58 +00:00
Philip.Hazel 7105d249f6 Fix handling of global matching in pcre2test when a lookbehind assertion
contains \K.
2015-04-06 12:16:36 +00:00
Philip.Hazel cda8384a95 Fix pcre2grep loop provoked by \K in a lookbehind assertion in a non-anchored
pattern.
2015-04-03 11:14:19 +00:00
Philip.Hazel ade67323e7 Fix stack overflow instead of error diagnosis for mutual recursion within
lookbehind assertion.
2015-04-01 15:37:54 +00:00
Philip.Hazel 6a2cb0d774 Fix diagnosis of negative relative references to non-existent groups. 2015-03-31 15:01:25 +00:00
Philip.Hazel 2327a5860b Fix bad compile for possessive quantifier on group containing a subroutine
reference.
2015-03-29 17:34:04 +00:00
Philip.Hazel 63cab0dba9 Fix non-diagnosis of syntax error for (?(?< when not followed by ! or =. 2015-03-29 15:40:45 +00:00
Philip.Hazel 99bb61e903 Fix comment between recursion and quantifier bug. 2015-03-29 11:15:32 +00:00
Philip.Hazel 6b6e611b39 Fix mutual recursion inside other parentheses stack overflow bug. 2015-03-27 17:45:02 +00:00
Philip.Hazel cd85fae3c6 Fix bad memory computation for "(*UTF)[\S\V\H]" (a pattern with a negative
class (\S) and explicit wide characters).
2015-03-25 19:26:27 +00:00
Philip.Hazel a066d12022 Add recursion limit to auto-possessification code. 2015-03-25 17:01:04 +00:00
Philip.Hazel a4ceadbf47 Fix bugs when (?!) is used as a condition. 2015-03-24 10:21:34 +00:00
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 e43b3d435b Adding more callout with string tests. 2015-03-12 11:49:29 +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 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 20c75b2f42 Add RunTest.bat for testing under Windows, with appropriate test files. 2015-02-25 17:19:28 +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 e8435bc006 Missed test for mutual recursion after crash fixed. 2015-02-08 17:05:12 +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 a398ae3bef Test output needed updating. 2015-02-06 09:29:31 +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 5a18651441 Add PCRE2_NO_DOTSTAR_ANCHOR and revise documentation for .* optimizing. 2015-01-02 17:09:16 +00:00
Philip.Hazel b8dbae1474 Improvements for substring handling with partial matches. 2014-12-22 17:33:10 +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 91f2e97474 More documentation and test updates. 2014-11-23 18:38:38 +00:00
Philip.Hazel eea35d0cab Fix zero-repeated assertion-as-condition bug. 2014-11-19 11:17:20 +00:00
Philip.Hazel 07f8372202 Further substitution tests (code and data), and more documentation. 2014-11-14 18:41:20 +00:00
Philip.Hazel c19bd9a377 Substitution tests and documentation. 2014-11-12 16:57:56 +00:00
Philip.Hazel f1c6ee730a Code for pcre2_substitute(), and tests. 2014-11-11 10:19:23 +00:00
Philip.Hazel e3e4131379 Fix bug for (*ACCEPT) inside a capturing group. 2014-11-05 16:05:19 +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 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 26cd0bccb3 Partial documentation and partial code tweaks. 2014-10-14 16:23:57 +00:00
Philip.Hazel b6e793f343 The tests all run clean with JIT. 2014-10-11 15:56:25 +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
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 ccd5ac9014 Save compile-time work when PCRE2_NO_START_OPTIMIZE is set. 2014-10-03 09:47:59 +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 eee8530add API documentation and a lot of little related changes to the code. 2014-09-19 07:43:39 +00:00
Philip.Hazel 7b2707fcf7 Make /()a/ set the "first character must be" data. 2014-08-30 16:21:17 +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 7efba85b56 Change lengths to PCRE2_SIZE and revise OP_RECURSE processing. 2014-08-16 09:46:58 +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 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 f40fba5dc8 Adjust tests for PCRE/Perl anomalies in character properties & fix one bug. 2014-08-06 17:33:14 +00:00
Philip.Hazel fd555f266c Test tidies and additional tests. 2014-08-06 09:35:11 +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 cd9fc139cd Tidy up test 3. 2014-07-25 09:36:50 +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
Philip.Hazel 7854bf34b3 Implement pcre2grep and its test. 2014-07-15 08:46:12 +00:00