summaryrefslogtreecommitdiff
path: root/src/regex/regexec.c
AgeCommit message (Collapse)Author
2014-07-28fix crash in regexec for nonzero nmatch argument with REG_NOSUBRich Felker
per POSIX, the nmatch and pmatch arguments are ignored when the regex was compiled with REG_NOSUB. (cherry picked from commit 72ed3d47e567b1635a35d3c1d174c8a8b2787e30)
2013-02-01revert regex "cleanup" that seems unjustified and may break backtrackingRich Felker
it's not clear to me at the moment whether the code that was removed (and which is now being re-added) is needed, but it's far from being a no-op, and i don't want to risk breaking regex in this release.
2013-01-14regex: remove an unused local variable from regexecSzabolcs Nagy
pos_start local variable is not used in tre_tnfa_run_backtrack
2012-09-06use restrict everywhere it's required by c99 and/or posix 2008Rich Felker
to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
2012-04-14fix signedness error handling invalid multibyte sequences in regexecRich Felker
the "< 0" test was always false due to use of an unsigned type. this resulted in infinite loops on 32-bit machines (adding -1U to a pointer is the same as adding -1) and crashes on 64-bit machines (offsetting the string pointer by 4gb-1b when an illegal sequence was hit).
2012-03-20upgrade to latest upstream TRE regex code (0.8.0)Rich Felker
the main practical results of this change are 1. the regex code is no longer subject to LGPL; it's now 2-clause BSD 2. most (all?) popular nonstandard regex extensions are supported I hesitate to call this a "sync" since both the old and new code are heavily modified. in one sense, the old code was "more severely" modified, in that it was actively hostile to non-strictly-conforming expressions. on the other hand, the new code has eliminated the useless translation of the entire regex string to wchar_t prior to compiling, and now only converts multibyte character literals as needed. in the future i may use this modified TRE as a basis for writing the long-planned new regex engine that will avoid multibyte-to-wide character conversion entirely by compiling multibyte bracket expressions specific to UTF-8.
2011-04-07fix bug in TRE found by clang (typo && instead of &)Rich Felker
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker