Commit Graph

602 Commits

Author SHA1 Message Date
Philip.Hazel ae913fbee7 Update POSIX wrapper to use macros in the .h file, but also have the POSIX
function names in the library.
2019-01-30 16:11:16 +00:00
Philip.Hazel 86349f8814 Fix bug in VERSION conditional test in DFA matching. 2019-01-29 14:34:59 +00:00
Zoltán Herczeg d38c7f7e8d Fix word boundary in JIT compiler. Patch by Mike Munday. 2019-01-17 11:47:59 +00:00
Philip.Hazel 7de013bac3 Fix issues with BAD_ESCAPE_IS_LITERAL in character classes. 2019-01-04 16:41:32 +00:00
Philip.Hazel 9938684b7b Cast to get rid of compiler warning. 2018-12-14 16:02:29 +00:00
Philip.Hazel ed63958dad Make RunTest check stack settablility using the -bigstack value. 2018-12-07 16:32:05 +00:00
Philip.Hazel 0448b486e9 Redirect stderr in RunGrepTest instead of appending to testtrygrep from two
different file descriptors, because the latter doesn't always work as expected.
2018-12-06 17:13:41 +00:00
Philip.Hazel 8f1727af98 Cut out test of NUL characters in RunGrepTest for all OS except Linux, as it
doesn't work for *BSD as well as for Solaris and MacOS (which were already cut 
out).
2018-12-06 17:05:06 +00:00
Philip.Hazel 0b64d9cfca Fix non-recognition of anchoring when preceded by (*MARK) etc. 2018-11-27 16:00:58 +00:00
Zoltán Herczeg 57f1eca640 Improve MAP_JIT flag usage on MacOS. Patch by Rich Siegel. 2018-11-25 17:11:52 +00:00
Philip.Hazel 8187224514 Add VMS support for pcre2grep callout of an external program. 2018-11-24 16:31:10 +00:00
Philip.Hazel cd73c9319e Fix two instances of <= 0 being applied to unsigned integers. 2018-11-17 16:59:39 +00:00
Philip.Hazel 0ad7ff1549 Add --disable-pcre2grep-callout-fork configuration setting. 2018-11-17 16:45:57 +00:00
Philip.Hazel 149af0e21b Implement --disable-percent-zt to avoid %zu and %td even if the environment
claims to be C99 or greater.
2018-11-15 18:09:02 +00:00
Philip.Hazel 19c50b9d41 Unconditionally use inttypes.h instead of trying for stdint.h (simplification)
and remove the now unnecessary inclusion in pcre2_internal.h.
2018-11-14 16:59:19 +00:00
Philip.Hazel 900f457222 Update VMS-specific code in pcre2test, on the advice of a VMS user. 2018-11-09 18:10:25 +00:00
Philip.Hazel 66cd7df514 Add pcre2_jit_free_unused_memory() to pcre2grep, for tidiness. 2018-10-28 17:27:48 +00:00
Philip.Hazel 87a9887e6e Add "kibibytes" to the output of pcre2test -C to show the units of the heap
limit.
2018-10-22 16:56:11 +00:00
Philip.Hazel 951bc4b9ff Fix heap limit checking overflow bug in pcre2_dfa_match(). 2018-10-22 16:47:55 +00:00
Philip.Hazel 996892434f Fix zero-repeated subroutine call at start of pattern bug, which recorded an
incorrect first code unit.
2018-10-20 09:28:02 +00:00
Philip.Hazel 8a0dd8955a Set subject field in match data to NULL after failed match. 2018-10-19 15:31:16 +00:00
Philip.Hazel f90ce1a333 Implement PCRE2_COPY_MATCHED_SUBJECT. 2018-10-17 08:33:38 +00:00
Philip.Hazel 971f885277 Fix typos in code for alphabetic ranges in EBCDIC environments. 2018-10-15 11:01:24 +00:00
Philip.Hazel 0fc5cda13b Documentation and tests update for script runs. 2018-10-12 17:02:34 +00:00
Philip.Hazel 4e7a204d18 Update Script Run code to use the Script Extension property instead of the
Script property.
2018-10-09 16:42:21 +00:00
Philip.Hazel 866750fd53 Basic "script run" implementation. Not yet complete, and not yet documented. 2018-10-02 15:25:58 +00:00
Philip.Hazel f26b0b0bae Implement Perl 5.28's alphabetic lookaround syntax, e.g. (*pla:...) and also
(*atomic:...).
2018-09-24 16:23:53 +00:00
Philip.Hazel 69254c77f1 Implement PCRE2_EXTRA_ESCAPED_CR_IS_LF 2018-09-21 16:59:48 +00:00
Zoltán Herczeg 8800191109 Fix an xclass matching issue in JIT. 2018-09-21 07:24:34 +00:00
Philip.Hazel 992e1fad44 Provide alternative POSIX names. 2018-09-19 16:33:09 +00:00
Philip.Hazel a69267246f Implement callouts from pcre2_substitute(). 2018-09-18 16:31:30 +00:00
Zoltán Herczeg 80adf9d165 Fix subject buffer overread in JIT. Found by Yunho Kim. 2018-09-18 10:19:14 +00:00
Philip.Hazel 3fce7c75e9 Add "allvector" to pcre2test. 2018-09-15 17:10:39 +00:00
Philip.Hazel bf3c7c68ec Final file tidies for 10.32 2018-09-11 14:27:39 +00:00
Philip.Hazel ab30606b01 Fix small bug in pcre2grep (no effect other than a sanitizer warning). 2018-09-10 17:34:19 +00:00
Philip.Hazel 80c57b59f6 Minor code fix to avoid static analyzer complaint. 2018-09-06 15:59:11 +00:00
Philip.Hazel bfad956b34 Treat empty-string-matching repeated conditionals the same as ordinary ones
when checking for an anchored pattern.
2018-09-03 15:20:40 +00:00
Philip.Hazel 59c2175ed9 Fix anchoring bug in conditionals with only one branch. 2018-09-02 16:53:29 +00:00
Philip.Hazel 50f0de6015 Lock out \N{U+hhhh} in non-UTF (non-Unicode) modes. 2018-09-02 16:03:27 +00:00
Philip.Hazel a8f00b314b Fix typo in Makefile.am, which caused testoutput8-16-4 to be omitted from
tarballs.
2018-08-29 08:26:29 +00:00
Philip.Hazel 1c6f2fc972 Tidy unnecessarily complicated macros in escapes table. 2018-08-19 16:54:41 +00:00
Philip.Hazel 91715304cb Remove unused character flag ctype_meta, no longer used. 2018-08-19 15:44:06 +00:00
Philip.Hazel 6e6bb40a3d Fix bad auto-possessification of certain types of class. 2018-08-17 14:45:35 +00:00
Philip.Hazel 91a6a3a521 Zero pointers in serialized patterns, for consistency. 2018-08-15 18:03:29 +00:00
Philip.Hazel 392974a0cb File tidies and documentation update for 10.32-RC1 Release Candidate. 2018-08-13 11:57:09 +00:00
Philip.Hazel 1a8cc3dab6 Make bcopy() emulation of memmove() work properly. 2018-08-10 16:27:44 +00:00
Philip.Hazel 9332d4be69 Fix dynamic options changing bug. 2018-08-04 08:20:18 +00:00
Philip.Hazel b196143523 Make /x more Perl-compatible by recognizing all of Unicode's "Pattern White
Space" characters, not just the ASCII ones.
2018-08-03 09:38:36 +00:00
Philip.Hazel 6e245572b8 Add support for (?^) as now supported by Perl. 2018-07-28 16:23:24 +00:00
Philip.Hazel e9aa3c0a21 Add support for \N{U+dd...}, for ASCII and Unicode modes only. 2018-07-27 16:30:40 +00:00
Philip.Hazel 192b82cf6e Allow :NAME on (*ACCEPT), (*FAIL), and (*COMMIT) and fix bug with (*MARK)
followed by (*ACCEPT) in an assertion. More small updates to perltest.sh.
2018-07-21 14:34:51 +00:00
Philip.Hazel 635d04fbb7 Upgrade perltest.sh to support (some) #pattern modifiers. 2018-07-17 16:00:09 +00:00
Philip.Hazel 666e94cd59 Fixed atomic group backtracking bug. 2018-07-16 15:24:32 +00:00
Philip.Hazel 937617f343 Update to Unicode 11.0.0 2018-07-07 16:10:29 +00:00
Philip.Hazel 50aa69657e Fix bug in VERSION number reading. 2018-07-02 12:26:04 +00:00
Philip.Hazel b2294373d7 Ignore qualifiers on lookaheads within lookbehinds when checking for a fixed
length.
2018-07-02 11:23:45 +00:00
Philip.Hazel 1c79bdf36f Fix global search/replace in pcre2test and pcre2_substitute() when the pattern
matches an empty string, but never at the starting offset.
2018-07-02 10:54:03 +00:00
Philip.Hazel 374770c2e3 Increase stack size when linking pcre2test with MSVC. 2018-06-27 16:34:06 +00:00
Philip.Hazel 9de1a271a0 Remove previous patch, as it did not take account of read-only source
directories.
2018-06-22 15:04:01 +00:00
Philip.Hazel c5c9d9bacd Both make systems now delete src/{pcre2.h,config.h} before starting. The
existence of these files can confuse if building is happening in another 
directory.
2018-06-21 16:13:15 +00:00
Philip.Hazel 9d87fcb727 Patches for portability. 2018-06-20 17:05:31 +00:00
Philip.Hazel 7aaced3475 Make stdint.h an optional inclusion, in case it's not present in some systems.
Use inttypes.h instead if it exists.
2018-06-19 17:41:01 +00:00
Philip.Hazel b4aaf222d7 Undefine WIN32 for pcre2grep under Cygwin. 2018-06-19 16:27:42 +00:00
Philip.Hazel 8af671a36d Documentation update. 2018-06-18 16:49:12 +00:00
Philip.Hazel e75410a5d8 More typos and changes to "Kibibytes" for "Kilobytes". 2018-06-18 14:03:33 +00:00
Philip.Hazel fabea723cf Typos in documentation and comments noted by Jason Hood. 2018-06-17 14:13:28 +00:00
Philip.Hazel 3fb01b0443 Ensure all match limit tests set a limit, don't rely on the default. 2018-04-29 15:07:44 +00:00
Philip.Hazel fb15b37b2c Remove ctrl/Z from the input for test 6. 2018-04-28 16:05:48 +00:00
Philip.Hazel 75747ebb11 Re-factor pcre2_dfa_match() to use the heap instead of the stack for workspace
vectors when doing recursive function calls.
2018-04-27 16:48:35 +00:00
Philip.Hazel fb413521fc Minor code tidy. 2018-04-21 16:43:49 +00:00
Philip.Hazel f7187b38c7 Apply some of Daniel Richard G's Windows patches. 2018-04-19 16:52:57 +00:00
Philip.Hazel a7b2b6ff64 Set error offset zero for early errors in pcre2_pattern_convert(). 2018-03-04 15:13:37 +00:00
Philip.Hazel dbb53b3585 Add alignment patch for m68k. 2018-02-27 17:19:51 +00:00
Philip.Hazel e5b34b3555 Add --enable-jit=auto support. 2018-02-25 18:00:29 +00:00
Philip.Hazel ee7e093af0 A small fix to pcre2grep to avoid compiler warnings for -Wformat-overflow=2. 2018-02-25 12:12:48 +00:00
Philip.Hazel 04919e9d03 Add support to pcre2grep for binary zeros in -f files. 2018-02-24 17:09:19 +00:00
Philip.Hazel b26aa366ba Fix \C bug with repeated character classes in UTF-8 mode. 2018-02-19 17:26:33 +00:00
Philip.Hazel 553bf8a1dc Oops, forgot about "-C bsr" in previous patch. 2018-02-19 17:00:45 +00:00
Philip.Hazel af9bcb7f13 Fix pcre2test -C to correctly show what \R matches. 2018-02-19 16:55:47 +00:00
Philip.Hazel aff77100bb Fix the value passed back for POSIX unset groups when REG_STARTEND has a
non-zero starting offset, and make pcre2test show relevant POSIX unset groups.
2018-02-19 14:49:42 +00:00
Philip.Hazel 7eae1c5d17 Final file tidies for 10.31 2018-02-12 11:33:56 +00:00
Philip.Hazel 53a588431c Fix auto-possessification bug at the end of a capturing group that is called
recursively.
2018-01-31 17:53:56 +00:00
Philip.Hazel 7a5b962509 Increment dummy ovector size in internal structures to avoid spurious array
bound checker warnings. This fixes oss-fuzz 5415.
2018-01-16 16:50:40 +00:00
Philip.Hazel 958cd1484f Source tidies and version etc. updates for 10.31-RC1. 2018-01-13 16:53:02 +00:00
Philip.Hazel 9d197bfe76 Avoid pointer overflow for unset captures in pcre2_substring_list_get(), though
it could never have caused a problem.
2018-01-12 18:48:27 +00:00
Philip.Hazel 556b0abe99 Documentation update. 2018-01-01 17:27:55 +00:00
Philip.Hazel 7a6e8a4454 Fix PCRE2_FIRSTLINE bug when a pattern match starts with the first code unit of
a newline sequence.
2018-01-01 14:12:35 +00:00
Philip.Hazel 911d43cd1e Fix \K issues in pcre2grep. 2017-12-26 15:10:04 +00:00
Philip.Hazel a9f7c80fa3 Update pcre2demo to deal with various \K inside assertion anomalies. 2017-12-23 17:15:51 +00:00
Philip.Hazel 94d5f4a050 Add callout_flags to callout blocks, and set bits within it from pcre2_match()
interpretation.
2017-12-22 15:56:27 +00:00
Philip.Hazel 814cc96bc5 Save extra compile options with the compiled pattern, and add an info call to
retrieve them.
2017-12-16 17:49:26 +00:00
Philip.Hazel 5cbab74c97 Rejig how callout blocks are allocated in pcre2_match(). 2017-12-16 16:43:47 +00:00
Philip.Hazel 9e38537b87 A small code tidy for one error return. 2017-12-16 16:07:29 +00:00
Philip.Hazel 3458a2e2cd Fix infelicity in not finding a first character inside a non-assertive group
within a positive assertion.
2017-12-12 16:23:01 +00:00
Philip.Hazel 59d85d7b55 Fix incorrect first matching character when a backreference with zero minimum
repeat starts a pattern (possibly after assertions).
2017-12-12 15:01:51 +00:00
Philip.Hazel 1a81b738fe Change pcre2grep line number and count variables to unsigned long int. 2017-12-08 10:25:49 +00:00
Zoltán Herczeg f93d278054 Fix pcre2_jit_match early check. 2017-11-23 07:54:39 +00:00
Philip.Hazel 2543ba81f7 Fix crash for --line-buffered with a .gz or .bz2 file in pcre2grep. 2017-11-13 17:12:55 +00:00
Philip.Hazel 76814d92c7 Fix multiple multiline matching issues in pcre2grep. 2017-11-13 16:52:39 +00:00
Philip.Hazel 36366914f5 Fix oss-fuzz bugs 3852 and 3891 (same bug); mis-closing external captures by
*ACCEPT inside assertions.
2017-10-29 16:58:38 +00:00
Philip.Hazel 3a55923da8 Fix pcre2grep recursive file name length issue. 2017-10-20 16:51:59 +00:00
Philip.Hazel cc2182261a Add -LM to pcre2test. 2017-10-17 16:26:20 +00:00
Philip.Hazel aa0c168332 Set PCRE2GREP_RC to the pcre2grep exit status when running under VMS. 2017-10-11 16:49:10 +00:00
Philip.Hazel 6f4ee08469 Add some casts to avoid compiler warnings. 2017-09-26 17:01:23 +00:00
Philip.Hazel 8bbf2b1924 Fixed a small memory leak in pcre2test (convert contexts). 2017-09-18 15:51:44 +00:00
Philip.Hazel 897d547046 Define names for compiler error codes and use them in pcre2_convert.c 2017-09-17 16:56:41 +00:00
Philip.Hazel 5e3a1da503 Remove \C tests from JIT regression when NEVER_BACKSLASH_C is defined. 2017-09-16 11:46:08 +00:00
Philip.Hazel 4ac74a013b Add PCRE2_CONFIG_COMPILED_WIDTHS and PCRE2_CONFIG_NEVER_BACKSLASH_C. 2017-09-16 11:39:38 +00:00
Philip.Hazel d8692f30b7 Make pcre2_internal.h idempotent. 2017-09-13 09:07:00 +00:00
Philip.Hazel 42f547bf4d Replace multiple copies of extended grapheme sequence code with a single
subroutine.
2017-09-12 16:28:42 +00:00
Philip.Hazel 3cd616c3a9 Fix typo in VMS code in pcre2test. 2017-08-28 14:59:04 +00:00
Philip.Hazel 94cb52befb Final file tidies for 10.30 release. 2017-08-15 10:58:32 +00:00
Philip.Hazel 18d7627293 Fix "maybe uninitialized" warning. 2017-08-12 16:22:52 +00:00
Zoltán Herczeg 6a42f68b34 Minor JIT compiler update. 2017-08-01 08:26:01 +00:00
Philip.Hazel 4d82a61d47 Hyphen at the end of a character class is always literal. Give error for false
range after \d etc.
2017-07-29 15:54:04 +00:00
Philip.Hazel 33a4edf837 Modify #ifdefs for Cygwin. 2017-07-27 16:17:19 +00:00
Philip.Hazel c747990046 Rename the FWRITE macro in pcre2grep to avoid clash in cygwin. 2017-07-21 08:22:03 +00:00
Philip.Hazel 810d9b6da5 Code tidies for 10.30-RC1 release candidate. 2017-07-19 16:04:15 +00:00
Philip.Hazel a23715d7b1 Document experimental pattern conversion functions and remove unimplemented
features.
2017-07-12 16:34:49 +00:00
Philip.Hazel 4f7a608d56 Update grapheme breaking rules for Unicode 10.0.0. 2017-07-05 08:55:49 +00:00
Philip.Hazel 41bb787fb3 Update to Unicode 10.0.0 and add callout_no_where to pcre2test to aid testing. 2017-07-02 16:32:01 +00:00
Philip.Hazel b7d5cee61f Allow anchored patterns to use "first code unit" optimization. 2017-06-30 16:00:33 +00:00
Philip.Hazel cc089cf971 Increase limit for "must be present" code units for 8-bit searches, which use
memchr().
2017-06-26 16:25:16 +00:00
Philip.Hazel 4f37764ece Document configuration for SELinux execmem allocator and fix CMake usage. 2017-06-17 15:36:22 +00:00
Philip.Hazel 76a57bd839 Convert pcre2grep to use new pcre2_compile() options, thereby fixing two minor
(?) bugs.
2017-06-17 11:32:06 +00:00
Philip.Hazel a083420cac Implement PCRE2_EXTRA_MATCH_LINE and PCRE2_EXTRA_MATCH_WORD for the benefit
of pcre2grep.
2017-06-16 17:51:13 +00:00
Philip.Hazel c4fac10bad Implement PCRE2_LITERAL and REG_NOSPEC. 2017-06-15 16:41:44 +00:00
Philip.Hazel 6e30ed1b40 Add subject_literal and allow jitstack in pcre2test pattern modifiers, and add
another big pattern test.
2017-06-12 17:48:03 +00:00
Philip.Hazel bcba497c0b Implement REG_PEND (GNU extension) for the POSIX wrapper. 2017-06-05 18:25:47 +00:00
Philip.Hazel e4c86e2ced Fix matching offsets from regexec() in the POSIX wrapper when called with
REG_STARTEND and a starting offset greater than zero.
2017-06-03 16:42:58 +00:00
Philip.Hazel 8e4b992682 Omitted ChangeLog update for previous commit. 2017-06-02 07:25:56 +00:00
Philip.Hazel c0902e176f Make pcre2_dfa_match() take notice of the match limit, to catch patterns that
use too much resource. This should fix oss-fuzz 1761.
2017-05-30 10:42:57 +00:00
Philip.Hazel 62e202f757 Discard partial match when endanchored is set in the fuzzer, as it just gives
an immediate bad options return.
2017-05-27 16:06:56 +00:00
Philip.Hazel 3f96e07e6b Fix lookbehind with zero-length branch in DFA matching. Fixes oss-fuzz 1959. 2017-05-27 15:49:29 +00:00
Philip.Hazel 3d80fa4fc2 Implement PCRE2_NEWLINE_NUL. 2017-05-26 17:14:36 +00:00
Philip.Hazel dfc9712bcd Add additional compile options and PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES. 2017-05-17 17:55:11 +00:00
Philip.Hazel ab1e3c9309 Refactor to avoid sanitize warnings when accessing the variable size ovector in
the backtracking frame. Fixes oss-fuzz issue 1465. Also make -bigstack in 
RunTest allocate a 64Mb stack for use with clang sanitizing.
2017-05-10 18:21:03 +00:00
Philip.Hazel 1909bf0691 Refactor to avoid picky compiler warnings. Fixes oss-fuzz issue 1454. 2017-05-10 16:44:33 +00:00
Philip.Hazel 382b64b01c Fix crash when more than one kind of "push" was set in pcre2test. 2017-05-06 16:56:07 +00:00
Philip.Hazel 369d82e03a Implement Perl's /n option, which is the same as PCRE2_NO_AUTO_CAPTURE. 2017-04-18 16:21:50 +00:00
Philip.Hazel 3dca43fdff Implement PCRE2_EXTENDED_MORE and friends. 2017-04-18 12:32:52 +00:00
Philip.Hazel 41d1c6d6ce Tidies and minor bug fix resulting from Coverity Scan issues. 2017-04-16 16:49:11 +00:00
Philip.Hazel 202cb2cf41 Improve testing coverage with updates to pcre2test and test files; also get rid
of redundant code in pcre2_match().
2017-04-16 13:03:30 +00:00
Philip.Hazel e8cdae3c5b Correct an incorrect cast. 2017-04-14 12:14:41 +00:00
Philip.Hazel b35a98c403 Remove duplication typo. 2017-04-14 12:08:54 +00:00
Philip.Hazel 346447005a Remove redundant line of code (a typo really). 2017-04-14 11:42:02 +00:00
Philip.Hazel bd511d381f Fix valgrind warnings for unset padding at the end of the pcre2_real_code
structure.
2017-04-12 13:48:11 +00:00
Philip.Hazel 14989bd454 Add explicit heap limiting options to pcre2_match(), with associated features
for listing, configuring, etc.
2017-04-11 11:47:25 +00:00
Philip.Hazel 09f87cbfce Extend auto-anchoring to ignore "never-obeyed" groups at the start. 2017-04-07 08:46:29 +00:00
Philip.Hazel 88abc14e42 Jason Hood's pcre2grep patches (modified a bit) to add --output to pcre2grep,
and also an inbuilt callout echo.
2017-04-06 18:02:40 +00:00