Commit Graph

684 Commits

Author SHA1 Message Date
Philip Hazel 21c26698b3 Lock out \K in lookaround assertions by default, but provide an option to
re-enable the old behaviour, just in case.
2021-08-30 16:57:44 +01:00
Philip Hazel eea410b33a Improve code for "starts with" optimization in the interpreters. 2021-08-29 17:25:59 +01:00
Philip Hazel d5a61ee891 Patch to detect (and ignore) symlink loops in pcre2grep. 2021-08-28 17:37:33 +01:00
Philip Hazel f4beac6c1a Update minimum CMake version to 3.0.0. 2021-08-28 12:11:27 +01:00
Philip.Hazel 2410fbe386 Apply Jan-Willem Blokland's CMake patches to build both static and shared
libraries, plus some other CMake extensions.
2021-07-11 15:15:24 +00:00
Zoltán Herczeg a5389db88d Fix invalid single character repetition issues in JIT. 2021-06-04 12:55:49 +00:00
Philip.Hazel 1c3256349f Final source changes for 10.37 2021-05-26 14:34:14 +00:00
Philip.Hazel cd45050ee4 Final file tidies for 10.37-RC1 2021-04-28 16:44:51 +00:00
Philip.Hazel 080d7789eb Remove real POSIX function names from the pcre2-posix library. 2021-04-27 08:36:47 +00:00
Philip.Hazel 8c1df186ab Add another test, tidy ChangeLog. 2021-02-19 12:05:57 +00:00
Zoltán Herczeg 19a1319c0a Restore single character repetition optimization in JIT. 2021-02-19 09:20:37 +00:00
Philip.Hazel 2c4d3942e4 Fix \K within recursion bug in interpreter. 2021-02-18 09:46:08 +00:00
Philip.Hazel 25029849c3 Fix RunGrepTest's handling of binary zeros on Solaris by using /usr/xpg4/bin/tr
instead of tr if /usr/xpg4/bin/tr exists.
2021-02-07 16:43:00 +00:00
Philip.Hazel 4cfa216898 Try reducing autoconf requirement to 2.60. 2021-02-06 11:48:06 +00:00
Philip.Hazel 91485e5d5a Update configure.ac for latest version of autoconf. 2021-02-02 17:02:55 +00:00
Philip.Hazel 8144ae04e9 Fix some numerical checking bugs, Bugzilla 2690. 2021-02-01 17:56:12 +00:00
Philip.Hazel 166e576f91 Another CMake patch for Windows, fixes #2688. 2021-01-14 17:14:58 +00:00
Philip.Hazel c246f53ae1 Get rid of gcc -fanalyzer error (though it was probably a false positive). 2021-01-14 16:56:44 +00:00
Philip.Hazel 027c9375c0 Update RunGrepTest to use tr for handling binary zeros instead of sed, which it
is hoped with increase portability. Bugzilla #2681.
2021-01-04 17:17:48 +00:00
Philip.Hazel 7eb23f423e Final file tidies for 10.36 2020-12-04 14:30:03 +00:00
Philip.Hazel 9e15c97b6d Fix bug in RunTest: not reporting failure in test 2, and fix bugs in RunTest
and RunTest.bat causing test 2 to fail when not building in source directory.
2020-11-22 15:16:05 +00:00
Zoltán Herczeg d19789c251 Fix ARM64 compilation warning in JIT. 2020-11-13 08:04:06 +00:00
Philip.Hazel 000bbf2ea7 File tidies for 10.36-RC1 2020-11-06 17:27:35 +00:00
Zoltán Herczeg 2451870e3c Fixed a word boundary check bug in JIT when partial matching is enabled. 2020-10-27 08:16:04 +00:00
Philip.Hazel 92554d19aa Fix binary zero issue (Bugzilla #2628) in RunGrepTest. 2020-10-09 15:25:27 +00:00
Philip.Hazel 81da2b97e3 pcre2grep update: -m and $x{..}, $o{..} escapes. Also some doc updates. 2020-10-04 16:34:31 +00:00
Zoltán Herczeg 3bdc76e4f3 Fixed a bug in character set matching when JIT is enabled. 2020-09-19 03:49:32 +00:00
Philip.Hazel f8cbb1f58d Fix Bugzilla #2642: no match bug in 8-bit mode for caseless invalid utf
matching.
2020-09-15 14:36:23 +00:00
Philip.Hazel 0cf247f558 Ooops, forgot to update ChangeLog for previous commit. 2020-09-14 15:45:34 +00:00
Philip.Hazel 5652d41209 Fix delimiters in tests 1 and 4 for correct Perl behaviour (Bugzilla #2641).
Also move \K in lookaround tests to test 2 (Perl no longer supports).
2020-09-13 15:56:32 +00:00
Zoltán Herczeg 3d317692ac Fix an early fail optimization issue and a buffer overread in JIT. 2020-07-15 04:35:32 +00:00
Philip.Hazel 0ad89ab06d Fix read overflow for invalid VERSION test with one fractional digit at the end
of a pattern. Fixes ClusterFuzz 23779.
2020-06-29 15:35:49 +00:00
Philip.Hazel ed489f99ae Fix Windows debug builds (Bugzilla #2600) using CMake. 2020-06-22 15:51:19 +00:00
Philip.Hazel 3faff02596 Add cast to prevent a compiler warning. 2020-06-05 16:11:01 +00:00
Philip.Hazel cffe1ca463 Change CMakeLists.txt to use CHECK_SYMBOL_EXISTS instead of
CHECK_FUNCTION_EXISTS.
2020-06-05 16:06:05 +00:00
Philip.Hazel b55dba885a Allow spaces in directory name in CMake build (fixes #2588). 2020-06-05 15:58:28 +00:00
Philip.Hazel e44976f929 Patch for CMakeLists.txt by Wolfgang Stoeggl fixes several things; see Bugzilla
#2584/
2020-06-01 16:36:00 +00:00
Zoltán Herczeg e0c6029a62 Fix inifinite loop when a single byte newline is searched in JIT. 2020-05-29 14:20:23 +00:00
Philip.Hazel e73119cbfa Apply H.J. Lu's patch to pass -mshstk to the compiler when Intel CET is
enabled. CMake version invented by PH, but only tested on non-CET system.
2020-05-25 16:03:24 +00:00
Philip.Hazel 768c7fe67e Final file tidies for 10.35. 2020-05-09 15:47:41 +00:00
Philip.Hazel 9ff7f342f8 Restrict configuration of the JIT SELinux compatible memory allocator to Linux
and NetBSD.
2020-04-28 15:29:18 +00:00
Philip.Hazel 56c4bf9095 Check for memfd_create in configuration files. 2020-04-28 15:03:58 +00:00
Philip.Hazel bf4ca900f3 Patch CMakeLists.txt to properly test for mkostemp. 2020-04-28 14:26:24 +00:00
Philip.Hazel b940ed7520 Add support for pkgconfig etc and versioning to CMake builds. 2020-04-25 16:04:15 +00:00
Philip.Hazel 5ec5c45423 Added tests for __attribute__((uninitialized)) to both the configure and
CMake build files. Used to disable initialization of the match stack frames
vector (clang has an automatic initialization feature).
2020-04-23 16:50:45 +00:00
Philip.Hazel ca55d0be6b Avoid using [-1] as a suffix in pcre2test as it can provoke a compiler warning. 2020-04-23 15:41:23 +00:00
Philip.Hazel 8b3f8af535 File tidies for 10.35-RC1 release candidate. 2020-04-15 16:34:36 +00:00
Philip.Hazel 28f92c8596 Check for secure_getenv() and strerror() in CMake build. 2020-04-09 15:25:14 +00:00
Philip.Hazel c472f3f91a Update to Unicode 13.0.0. 2020-03-25 17:18:33 +00:00
Philip.Hazel 59233b8079 Change setting of CMAKE_MODULE_PATH from SET to LIST(APPEND...) to allow a
setting from the command line to be included.
2020-03-24 17:45:28 +00:00
Philip.Hazel 8057c3c8b9 Renamed dftables as pcre2_dftables and enable it to write the tables in binary.
Update documentation about character tables.
2020-03-20 18:09:59 +00:00
Philip.Hazel 3155a6951f Fix bugs in new UCP casing code for back references and characters with more
than 2 cases.
2020-02-26 16:53:39 +00:00
Philip.Hazel 3be538015b Fix bad lookbehind compilation when preceded by a DEFINE group. 2020-02-24 17:29:00 +00:00
Philip.Hazel f50ee03f5d Fix bug in UTF-16 checker returning wrong offset for missing low surrogate. 2020-02-24 15:39:56 +00:00
Philip.Hazel 4a7dfab0ec Unicode upper/lower casing is now used when UCP is set, even if UTF is not set.
This is not yet documented, and it not yet implemented in JIT.
2020-02-23 16:40:05 +00:00
Zoltán Herczeg c21bd97754 Fix a crash which occurs when the character type of an invalid UTF character is decoded in JIT. 2020-02-20 07:42:47 +00:00
Zoltán Herczeg 697cf5f602 Fix control verb chain restoration issue in JIT. 2020-02-10 10:18:01 +00:00
Philip.Hazel b040e2e1cd Limit function recursion in pcre2_study to avoid stack overflow issues. 2020-01-27 10:28:19 +00:00
Philip.Hazel 3a6b4948d1 Fix bug in processing (?(DEFINE)...) within lookbehind assertions. 2020-01-26 15:31:27 +00:00
Philip.Hazel 9e960f5465 Ensure a newline after the final line in a file is output by pcre2grep. 2020-01-25 15:50:44 +00:00
Zoltán Herczeg 09984bb0e4 The JIT stack should be freed when the low-level stack allocation fails. 2020-01-24 08:28:23 +00:00
Philip.Hazel e8d70e2459 Implement PCRE2_SUBSTITUTE_REPLACEMENT_ONLY. 2020-01-22 17:50:12 +00:00
Zoltán Herczeg bf4cd8212f Fix *THEN verbs in lookahead assertions in JIT. 2020-01-11 15:28:15 +00:00
Philip.Hazel 5ba5230b82 Allow real repetition of assertions. 2020-01-01 12:07:02 +00:00
Philip.Hazel ac4ab7186d Add (?* and (?<* synonyms for non-atomic lookarounds. 2019-12-28 13:53:59 +00:00
Philip.Hazel d170829b26 Implement PCRE2_SUBSTITUTE_MATCHED. 2019-12-27 13:35:17 +00:00
Philip.Hazel 777582d4de Avoid some VS compiler warnings. 2019-12-26 15:10:26 +00:00
Philip.Hazel f3fd8b18cb Implement PCRE2_SUBSTITUTE_LITERAL. 2019-12-26 14:53:24 +00:00
Philip.Hazel 0a2033f0f7 Remove atomic restriction on capture groups containing recursive back
references, as since 10.30 it has been unnecessary.
2019-12-18 16:16:12 +00:00
Zoltán Herczeg 880aac5dda Fix the too early access of the fields of a compiled pattern in JIT. 2019-12-07 16:00:53 +00:00
Zoltán Herczeg 2632526c67 Fix ARMv5 JIT improper handling of labels right after a constant pool. 2019-11-29 11:03:10 +00:00
Zoltán Herczeg f5286d8f56 Use PCRE2_MATCH_EMPTY flag to detect empty matches in JIT. 2019-11-28 11:35:08 +00:00
Philip.Hazel add4db4c87 Final file tidies for 10.34 2019-11-21 16:31:08 +00:00
Zoltán Herczeg af45f41fbb Fixed the incorrect computation of jump sizes on x86 CPUs in JIT. 2019-11-19 12:25:32 +00:00
Philip.Hazel 3c869816ac Fix sometimes failing caseless non-ASCII matching in assertion. 2019-11-16 17:30:07 +00:00
Philip.Hazel 9323fa32b2 Documentation update 2019-11-08 16:04:43 +00:00
Philip.Hazel 8855b0efe1 File tidies for 10.34-RC2. 2019-11-06 16:51:31 +00:00
Philip.Hazel ae9208ab7b Source tidies (trailing spaces) etc. for 10.34-RC1. 2019-10-17 16:39:38 +00:00
Philip.Hazel 90ae0ae01e Fix minor test issues and tidies/updates for 10.34-RC1 testing release. 2019-10-15 15:23:31 +00:00
Philip.Hazel 2a0faa2114 Ensure regexec is thread safe to avoid sanitizer warnings. 2019-10-15 10:46:36 +00:00
Philip.Hazel e413f3147c Optimize certain starting code unit bit maps into a single starting code unit. 2019-09-13 17:02:06 +00:00
Philip.Hazel d917899be5 Improve starting-byte bit map for UTF-8 patterns with wide characters in
classes.
2019-09-10 15:38:42 +00:00
Philip.Hazel bf15267c30 Optimize classes such as [Aa] to be a single caseless character. 2019-09-09 17:00:19 +00:00
Zoltán Herczeg aae44b83f8 Add underflow check in JIT. 2019-09-09 07:12:00 +00:00
Philip.Hazel b48aa469d6 Install .gitignore file to help those using svn via git. 2019-09-07 15:27:05 +00:00
Philip.Hazel 27d40c8ad8 When computing minimum length, don't scan subsequent branches if any branch in
a group has zero minimum length.
2019-09-07 15:16:10 +00:00
Philip.Hazel 7bbdc58513 Fix pessimizing optimization of start-of-match code units in the interpreters. 2019-09-06 16:08:45 +00:00
Philip.Hazel 963b570fd0 Back off failed attempt to handle nested lookbehinds for estimating how much of
a partial match to retain for multi-segment matching. Document the current 
difficulty if the whole first segment cannot be retained.
2019-09-04 18:14:54 +00:00
Philip.Hazel 0970ae4195 Add the pcre2_maketables_free() function. 2019-09-03 14:16:07 +00:00
Philip.Hazel 71eb916d79 Fix allusedtext bug, rightmost consulted character incorrect in negative
lookaheads.
2019-08-10 11:34:50 +00:00
Philip.Hazel 59c7c5d100 Fix incorrect computation of group length when one branch exceeded 65535. 2019-08-03 08:30:40 +00:00
Philip.Hazel c0ed5a3ab3 Minor upgrade to pcre2test and comment in ucptest. 2019-07-30 17:59:42 +00:00
Philip.Hazel aff5a78056 Upgrade to Unicode 12.1.0 2019-07-29 15:32:36 +00:00
Philip.Hazel 9319b5bb83 Correct tables argument data type for pcre2_set_character_tables() and fix
documentation for pcre2_maketables().
2019-07-28 15:58:24 +00:00
Philip.Hazel 24c62fc0d0 (*ACCEPT) at start of branch was not recording "may match empty string". 2019-07-23 16:58:57 +00:00
Philip.Hazel 3572634086 More partial match tweaks. 2019-07-22 16:30:44 +00:00
Philip.Hazel c84a06c96e Update definition of partial match and fix \z and \Z (as documented). 2019-07-21 16:48:13 +00:00
Philip.Hazel bca9888a2c Implemented pcre2_get_match_data_size(). 2019-07-16 15:50:09 +00:00
Philip.Hazel 046c5cd21c Fix lookbehind within lookahead within lookbehind misbehaviour bug. 2019-07-16 15:06:21 +00:00
Philip.Hazel 620f3a1307 Implement non-atomic positive assertions. 2019-07-13 11:12:03 +00:00