Up to [cvs.NetBSD.org] / pkgsrc / devel / pcre
Request diff between arbitrary revisions
Default branch: MAIN
Revision 1.93 / (download) - annotate - [select for diffs], Wed Apr 13 11:33:49 2022 UTC (17 months, 1 week ago) by nros
Branch: MAIN
CVS Tags: pkgsrc-2023Q2-base,
pkgsrc-2023Q2,
pkgsrc-2023Q1-base,
pkgsrc-2023Q1,
pkgsrc-2022Q4-base,
pkgsrc-2022Q4,
pkgsrc-2022Q3-base,
pkgsrc-2022Q3,
pkgsrc-2022Q2-base,
pkgsrc-2022Q2,
HEAD
Changes since 1.92: +2 -4
lines
Diff to previous 1.92 (colored)
ftp.pcre.org is no longer available according to the pcre website
Revision 1.92 / (download) - annotate - [select for diffs], Thu Jun 24 14:41:23 2021 UTC (2 years, 2 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2022Q1-base,
pkgsrc-2022Q1,
pkgsrc-2021Q4-base,
pkgsrc-2021Q4,
pkgsrc-2021Q3-base,
pkgsrc-2021Q3
Changes since 1.91: +2 -2
lines
Diff to previous 1.91 (colored)
pcre: updated to 8.45 Release 8.45 15-June-2021 ----------------------------- This is the final PCRE1 release. A very few small issues have been fixed.
Revision 1.91 / (download) - annotate - [select for diffs], Thu Feb 13 07:55:34 2020 UTC (3 years, 7 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2021Q2-base,
pkgsrc-2021Q2,
pkgsrc-2021Q1-base,
pkgsrc-2021Q1,
pkgsrc-2020Q4-base,
pkgsrc-2020Q4,
pkgsrc-2020Q3-base,
pkgsrc-2020Q3,
pkgsrc-2020Q2-base,
pkgsrc-2020Q2,
pkgsrc-2020Q1-base,
pkgsrc-2020Q1
Changes since 1.90: +2 -2
lines
Diff to previous 1.90 (colored)
pcre: updated to 8.44 Release 8.44: This is a bug-fix release.
Revision 1.90 / (download) - annotate - [select for diffs], Sun Jan 26 17:31:02 2020 UTC (3 years, 7 months ago) by rillig
Branch: MAIN
Changes since 1.89: +2 -2
lines
Diff to previous 1.89 (colored)
all: migrate homepages from http to https pkglint -r --network --only "migrate" As a side-effect of migrating the homepages, pkglint also fixed a few indentations in unrelated lines. These and the new homepages have been checked manually.
Revision 1.89 / (download) - annotate - [select for diffs], Sun Nov 3 10:39:27 2019 UTC (3 years, 10 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2019Q4-base,
pkgsrc-2019Q4
Changes since 1.88: +2 -2
lines
Diff to previous 1.88 (colored)
devel: align variable assignments pkglint -Wall -F --only aligned --only indent -r No manual corrections.
Revision 1.88 / (download) - annotate - [select for diffs], Tue Sep 17 10:56:03 2019 UTC (4 years ago) by nros
Branch: MAIN
CVS Tags: pkgsrc-2019Q3-base,
pkgsrc-2019Q3
Changes since 1.87: +3 -2
lines
Diff to previous 1.87 (colored)
Remove unused master site from pcre packages ftp.csx.cam.ac.uk doesn't seem to be up and it is not listed as a mirror on www.pcre.org anymore.
Revision 1.87 / (download) - annotate - [select for diffs], Sun Feb 24 14:53:58 2019 UTC (4 years, 6 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2019Q2-base,
pkgsrc-2019Q2,
pkgsrc-2019Q1-base,
pkgsrc-2019Q1
Changes since 1.86: +2 -2
lines
Diff to previous 1.86 (colored)
pcre: update to 8.43. Release 8.43 23-February-2019 ----------------------------- This is a bug-fix release.
Revision 1.86 / (download) - annotate - [select for diffs], Wed Mar 21 07:56:29 2018 UTC (5 years, 6 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2018Q4-base,
pkgsrc-2018Q4,
pkgsrc-2018Q3-base,
pkgsrc-2018Q3,
pkgsrc-2018Q2-base,
pkgsrc-2018Q2,
pkgsrc-2018Q1-base,
pkgsrc-2018Q1
Changes since 1.85: +2 -2
lines
Diff to previous 1.85 (colored)
pcre: updated to 8.42 8.42: This is a bug-fix release.
Revision 1.85 / (download) - annotate - [select for diffs], Thu Jul 6 06:27:42 2017 UTC (6 years, 2 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2017Q4-base,
pkgsrc-2017Q4,
pkgsrc-2017Q3-base,
pkgsrc-2017Q3
Changes since 1.84: +2 -3
lines
Diff to previous 1.84 (colored)
Release 8.41: This is a bug-fix release.
Revision 1.84 / (download) - annotate - [select for diffs], Sat Jun 10 18:02:12 2017 UTC (6 years, 3 months ago) by spz
Branch: MAIN
CVS Tags: pkgsrc-2017Q2-base,
pkgsrc-2017Q2
Changes since 1.83: +2 -2
lines
Diff to previous 1.83 (colored)
patches for CVE-2017-7186 from upstream there are commits upstream that may fix the remaining 3 known vulnerabilities, but they are not in the "bleeding obvious" category
Revision 1.83 / (download) - annotate - [select for diffs], Wed Feb 22 03:22:57 2017 UTC (6 years, 6 months ago) by sevan
Branch: MAIN
CVS Tags: pkgsrc-2017Q1-base,
pkgsrc-2017Q1
Changes since 1.82: +2 -1
lines
Diff to previous 1.82 (colored)
Add a patch for CVE-2017-6004 - Denial of service (out-of-bounds read and application crash) via a crafted regular expression. Bump revision.
Revision 1.82 / (download) - annotate - [select for diffs], Thu Jan 19 18:52:07 2017 UTC (6 years, 8 months ago) by agc
Branch: MAIN
Changes since 1.81: +3 -3
lines
Diff to previous 1.81 (colored)
Convert all occurrences (353 by my count) of MASTER_SITES= site1 \ site2 style continuation lines to be simple repeated MASTER_SITES+= site1 MASTER_SITES+= site2 lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint accordingly.
Revision 1.81 / (download) - annotate - [select for diffs], Mon Jan 16 09:21:15 2017 UTC (6 years, 8 months ago) by wiz
Branch: MAIN
Changes since 1.80: +2 -2
lines
Diff to previous 1.80 (colored)
Updated pcre to 8.40. Release 8.40 11-January-2017
Revision 1.80 / (download) - annotate - [select for diffs], Sun Jun 19 20:40:48 2016 UTC (7 years, 3 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2016Q4-base,
pkgsrc-2016Q4,
pkgsrc-2016Q3-base,
pkgsrc-2016Q3,
pkgsrc-2016Q2-base,
pkgsrc-2016Q2
Changes since 1.79: +2 -4
lines
Diff to previous 1.79 (colored)
Updated pcre to 8.39. Release 8.39 14-June-2016 ------------------------- Some appropriate PCRE2 JIT improvements have been retro-fitted to PCRE1. Apart from that, this is another bug-fix release. Note that this library (now called PCRE1) is now being maintained for bug fixes only. New projects are advised to use the new PCRE2 libraries.
Revision 1.79 / (download) - annotate - [select for diffs], Tue Mar 22 19:38:15 2016 UTC (7 years, 6 months ago) by tez
Branch: MAIN
CVS Tags: pkgsrc-2016Q1-base,
pkgsrc-2016Q1
Changes since 1.78: +1 -1
lines
Diff to previous 1.78 (colored)
Fix for CVE-2016-3191 from http://vcs.pcre.org/pcre?view=revision&revision=1631
Revision 1.78 / (download) - annotate - [select for diffs], Fri Mar 18 21:25:10 2016 UTC (7 years, 6 months ago) by tez
Branch: MAIN
Changes since 1.77: +2 -0
lines
Diff to previous 1.77 (colored)
Fix for CVE-2016-1283 from http://vcs.pcre.org/pcre?view=revision&revision=1636
Revision 1.76.4.1 / (download) - annotate - [select for diffs], Tue Nov 24 19:49:25 2015 UTC (7 years, 9 months ago) by bsiegert
Branch: pkgsrc-2015Q3
Changes since 1.76: +2 -2
lines
Diff to previous 1.76 (colored) next main 1.77 (colored)
Pullup ticket #4864 - requested by wiz devel/pcre: security fix Revisions pulled up: - devel/pcre/Makefile 1.77 - devel/pcre/distinfo 1.58 --- Module Name: pkgsrc Committed By: wiz Date: Tue Nov 24 11:04:03 UTC 2015 Modified Files: pkgsrc/devel/pcre: Makefile distinfo Log Message: Update pcre to 8.38: Version 8.38 23-November-2015 ----------------------------- 1. If a group that contained a recursive back reference also contained a forward reference subroutine call followed by a non-forward-reference subroutine call, for example /.((?2)(?R)\1)()/, pcre2_compile() failed to compile correct code, leading to undefined behaviour or an internally detected error. This bug was discovered by the LLVM fuzzer. 2. Quantification of certain items (e.g. atomic back references) could cause incorrect code to be compiled when recursive forward references were involved. For example, in this pattern: /(?1)()((((((\1++))\x85)+)|))/. This bug was discovered by the LLVM fuzzer. 3. A repeated conditional group whose condition was a reference by name caused a buffer overflow if there was more than one group with the given name. This bug was discovered by the LLVM fuzzer. 4. A recursive back reference by name within a group that had the same name as another group caused a buffer overflow. For example: /(?J)(?'d'(?'d'\g{d}))/. This bug was discovered by the LLVM fuzzer. 5. A forward reference by name to a group whose number is the same as the current group, for example in this pattern: /(?|(\k'Pm')|(?'Pm'))/, caused a buffer overflow at compile time. This bug was discovered by the LLVM fuzzer. 6. A lookbehind assertion within a set of mutually recursive subpatterns could provoke a buffer overflow. This bug was discovered by the LLVM fuzzer. 7. Another buffer overflow bug involved duplicate named groups with a reference between their definition, with a group that reset capture numbers, for example: /(?J:(?|(?'R')(\k'R')|((?'R'))))/. This has been fixed by always allowing for more memory, even if not needed. (A proper fix is implemented in PCRE2, but it involves more refactoring.) 8. There was no check for integer overflow in subroutine calls such as (?123). 9. The table entry for \l in EBCDIC environments was incorrect, leading to its being treated as a literal 'l' instead of causing an error. 10. There was a buffer overflow if pcre_exec() was called with an ovector of size 1. This bug was found by american fuzzy lop. 11. If a non-capturing group containing a conditional group that could match an empty string was repeated, it was not identified as matching an empty string itself. For example: /^(?:(?(1)x|)+)+$()/. 12. In an EBCDIC environment, pcretest was mishandling the escape sequences \a and \e in test subject lines. 13. In an EBCDIC environment, \a in a pattern was converted to the ASCII instead of the EBCDIC value. 14. The handling of \c in an EBCDIC environment has been revised so that it is now compatible with the specification in Perl's perlebcdic page. 15. The EBCDIC character 0x41 is a non-breaking space, equivalent to 0xa0 in ASCII/Unicode. This has now been added to the list of characters that are recognized as white space in EBCDIC. 16. When PCRE was compiled without UCP support, the use of \p and \P gave an error (correctly) when used outside a class, but did not give an error within a class. 17. \h within a class was incorrectly compiled in EBCDIC environments. 18. A pattern with an unmatched closing parenthesis that contained a backward assertion which itself contained a forward reference caused buffer overflow. And example pattern is: /(?=di(?<=(?1))|(?=(.))))/. 19. JIT should return with error when the compiled pattern requires more stack space than the maximum. 20. A possessively repeated conditional group that could match an empty string, for example, /(?(R))*+/, was incorrectly compiled. 21. Fix infinite recursion in the JIT compiler when certain patterns such as /(?:|a|){100}x/ are analysed. 22. Some patterns with character classes involving [: and \\ were incorrectly compiled and could cause reading from uninitialized memory or an incorrect error diagnosis. 23. Pathological patterns containing many nested occurrences of [: caused pcre_compile() to run for a very long time. 24. A conditional group with only one branch has an implicit empty alternative branch and must therefore be treated as potentially matching an empty string. 25. If (?R was followed by - or + incorrect behaviour happened instead of a diagnostic. 26. Arrange to give up on finding the minimum matching length for overly complex patterns. 27. Similar to (4) above: in a pattern with duplicated named groups and an occurrence of (?| it is possible for an apparently non-recursive back reference to become recursive if a later named group with the relevant number is encountered. This could lead to a buffer overflow. Wen Guanxing from Venustech ADLAB discovered this bug. 28. If pcregrep was given the -q option with -c or -l, or when handling a binary file, it incorrectly wrote output to stdout. 29. The JIT compiler did not restore the control verb head in case of *THEN control verbs. This issue was found by Karl Skomski with a custom LLVM fuzzer. 30. Error messages for syntax errors following \g and \k were giving inaccurate offsets in the pattern. 31. Added a check for integer overflow in conditions (?(<digits>) and (?(R<digits>). This omission was discovered by Karl Skomski with the LLVM fuzzer. 32. Handling recursive references such as (?2) when the reference is to a group later in the pattern uses code that is very hacked about and error-prone. It has been re-written for PCRE2. Here in PCRE1, a check has been added to give an internal error if it is obvious that compiling has gone wrong. 33. The JIT compiler should not check repeats after a {0,1} repeat byte code. This issue was found by Karl Skomski with a custom LLVM fuzzer. 34. The JIT compiler should restore the control chain for empty possessive repeats. This issue was found by Karl Skomski with a custom LLVM fuzzer. 35. Match limit check added to JIT recursion. This issue was found by Karl Skomski with a custom LLVM fuzzer. 36. Yet another case similar to 27 above has been circumvented by an unconditional allocation of extra memory. This issue is fixed "properly" in PCRE2 by refactoring the way references are handled. Wen Guanxing from Venustech ADLAB discovered this bug. 37. Fix two assertion fails in JIT. These issues were found by Karl Skomski with a custom LLVM fuzzer. 38. Fixed a corner case of range optimization in JIT. 39. An incorrect error "overran compiling workspace" was given if there were exactly enough group forward references such that the last one extended into the workspace safety margin. The next one would have expanded the workspace. The test for overflow was not including the safety margin. 40. A match limit issue is fixed in JIT which was found by Karl Skomski with a custom LLVM fuzzer. 41. Remove the use of /dev/null in testdata/testinput2, because it doesn't work under Windows. (Why has it taken so long for anyone to notice?) 42. In a character class such as [\W\p{Any}] where both a negative-type escape ("not a word character") and a property escape were present, the property escape was being ignored. 43. Fix crash caused by very long (*MARK) or (*THEN) names. 44. A sequence such as [[:punct:]b] that is, a POSIX character class followed by a single ASCII character in a class item, was incorrectly compiled in UCP mode. The POSIX class got lost, but only if the single character followed it. 45. [:punct:] in UCP mode was matching some characters in the range 128-255 that should not have been matched. 46. If [:^ascii:] or [:^xdigit:] or [:^cntrl:] are present in a non-negated class, all characters with code points greater than 255 are in the class. When a Unicode property was also in the class (if PCRE_UCP is set, escapes such as \w are turned into Unicode properties), wide characters were not correctly handled, and could fail to match.
Revision 1.77 / (download) - annotate - [select for diffs], Tue Nov 24 11:04:03 2015 UTC (7 years, 9 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2015Q4-base,
pkgsrc-2015Q4
Changes since 1.76: +2 -2
lines
Diff to previous 1.76 (colored)
Update pcre to 8.38: Version 8.38 23-November-2015 ----------------------------- 1. If a group that contained a recursive back reference also contained a forward reference subroutine call followed by a non-forward-reference subroutine call, for example /.((?2)(?R)\1)()/, pcre2_compile() failed to compile correct code, leading to undefined behaviour or an internally detected error. This bug was discovered by the LLVM fuzzer. 2. Quantification of certain items (e.g. atomic back references) could cause incorrect code to be compiled when recursive forward references were involved. For example, in this pattern: /(?1)()((((((\1++))\x85)+)|))/. This bug was discovered by the LLVM fuzzer. 3. A repeated conditional group whose condition was a reference by name caused a buffer overflow if there was more than one group with the given name. This bug was discovered by the LLVM fuzzer. 4. A recursive back reference by name within a group that had the same name as another group caused a buffer overflow. For example: /(?J)(?'d'(?'d'\g{d}))/. This bug was discovered by the LLVM fuzzer. 5. A forward reference by name to a group whose number is the same as the current group, for example in this pattern: /(?|(\k'Pm')|(?'Pm'))/, caused a buffer overflow at compile time. This bug was discovered by the LLVM fuzzer. 6. A lookbehind assertion within a set of mutually recursive subpatterns could provoke a buffer overflow. This bug was discovered by the LLVM fuzzer. 7. Another buffer overflow bug involved duplicate named groups with a reference between their definition, with a group that reset capture numbers, for example: /(?J:(?|(?'R')(\k'R')|((?'R'))))/. This has been fixed by always allowing for more memory, even if not needed. (A proper fix is implemented in PCRE2, but it involves more refactoring.) 8. There was no check for integer overflow in subroutine calls such as (?123). 9. The table entry for \l in EBCDIC environments was incorrect, leading to its being treated as a literal 'l' instead of causing an error. 10. There was a buffer overflow if pcre_exec() was called with an ovector of size 1. This bug was found by american fuzzy lop. 11. If a non-capturing group containing a conditional group that could match an empty string was repeated, it was not identified as matching an empty string itself. For example: /^(?:(?(1)x|)+)+$()/. 12. In an EBCDIC environment, pcretest was mishandling the escape sequences \a and \e in test subject lines. 13. In an EBCDIC environment, \a in a pattern was converted to the ASCII instead of the EBCDIC value. 14. The handling of \c in an EBCDIC environment has been revised so that it is now compatible with the specification in Perl's perlebcdic page. 15. The EBCDIC character 0x41 is a non-breaking space, equivalent to 0xa0 in ASCII/Unicode. This has now been added to the list of characters that are recognized as white space in EBCDIC. 16. When PCRE was compiled without UCP support, the use of \p and \P gave an error (correctly) when used outside a class, but did not give an error within a class. 17. \h within a class was incorrectly compiled in EBCDIC environments. 18. A pattern with an unmatched closing parenthesis that contained a backward assertion which itself contained a forward reference caused buffer overflow. And example pattern is: /(?=di(?<=(?1))|(?=(.))))/. 19. JIT should return with error when the compiled pattern requires more stack space than the maximum. 20. A possessively repeated conditional group that could match an empty string, for example, /(?(R))*+/, was incorrectly compiled. 21. Fix infinite recursion in the JIT compiler when certain patterns such as /(?:|a|){100}x/ are analysed. 22. Some patterns with character classes involving [: and \\ were incorrectly compiled and could cause reading from uninitialized memory or an incorrect error diagnosis. 23. Pathological patterns containing many nested occurrences of [: caused pcre_compile() to run for a very long time. 24. A conditional group with only one branch has an implicit empty alternative branch and must therefore be treated as potentially matching an empty string. 25. If (?R was followed by - or + incorrect behaviour happened instead of a diagnostic. 26. Arrange to give up on finding the minimum matching length for overly complex patterns. 27. Similar to (4) above: in a pattern with duplicated named groups and an occurrence of (?| it is possible for an apparently non-recursive back reference to become recursive if a later named group with the relevant number is encountered. This could lead to a buffer overflow. Wen Guanxing from Venustech ADLAB discovered this bug. 28. If pcregrep was given the -q option with -c or -l, or when handling a binary file, it incorrectly wrote output to stdout. 29. The JIT compiler did not restore the control verb head in case of *THEN control verbs. This issue was found by Karl Skomski with a custom LLVM fuzzer. 30. Error messages for syntax errors following \g and \k were giving inaccurate offsets in the pattern. 31. Added a check for integer overflow in conditions (?(<digits>) and (?(R<digits>). This omission was discovered by Karl Skomski with the LLVM fuzzer. 32. Handling recursive references such as (?2) when the reference is to a group later in the pattern uses code that is very hacked about and error-prone. It has been re-written for PCRE2. Here in PCRE1, a check has been added to give an internal error if it is obvious that compiling has gone wrong. 33. The JIT compiler should not check repeats after a {0,1} repeat byte code. This issue was found by Karl Skomski with a custom LLVM fuzzer. 34. The JIT compiler should restore the control chain for empty possessive repeats. This issue was found by Karl Skomski with a custom LLVM fuzzer. 35. Match limit check added to JIT recursion. This issue was found by Karl Skomski with a custom LLVM fuzzer. 36. Yet another case similar to 27 above has been circumvented by an unconditional allocation of extra memory. This issue is fixed "properly" in PCRE2 by refactoring the way references are handled. Wen Guanxing from Venustech ADLAB discovered this bug. 37. Fix two assertion fails in JIT. These issues were found by Karl Skomski with a custom LLVM fuzzer. 38. Fixed a corner case of range optimization in JIT. 39. An incorrect error "overran compiling workspace" was given if there were exactly enough group forward references such that the last one extended into the workspace safety margin. The next one would have expanded the workspace. The test for overflow was not including the safety margin. 40. A match limit issue is fixed in JIT which was found by Karl Skomski with a custom LLVM fuzzer. 41. Remove the use of /dev/null in testdata/testinput2, because it doesn't work under Windows. (Why has it taken so long for anyone to notice?) 42. In a character class such as [\W\p{Any}] where both a negative-type escape ("not a word character") and a property escape were present, the property escape was being ignored. 43. Fix crash caused by very long (*MARK) or (*THEN) names. 44. A sequence such as [[:punct:]b] that is, a POSIX character class followed by a single ASCII character in a class item, was incorrectly compiled in UCP mode. The POSIX class got lost, but only if the single character followed it. 45. [:punct:] in UCP mode was matching some characters in the range 128-255 that should not have been matched. 46. If [:^ascii:] or [:^xdigit:] or [:^cntrl:] are present in a non-negated class, all characters with code points greater than 255 are in the class. When a Unicode property was also in the class (if PCRE_UCP is set, escapes such as \w are turned into Unicode properties), wide characters were not correctly handled, and could fail to match.
Revision 1.76 / (download) - annotate - [select for diffs], Wed Apr 29 11:24:48 2015 UTC (8 years, 4 months ago) by mef
Branch: MAIN
CVS Tags: pkgsrc-2015Q3-base,
pkgsrc-2015Q2-base,
pkgsrc-2015Q2
Branch point for: pkgsrc-2015Q3
Changes since 1.75: +2 -3
lines
Diff to previous 1.75 (colored)
(pkgsrc) - Drop patch-CVE-2014-8964 (now included) (upstream) - Update to 8.37 Version 8.37 28-April-2015 -------------------------- 1. When an (*ACCEPT) is triggered inside capturing parentheses, it arranges for those parentheses to be closed with whatever has been captured so far. However, it was failing to mark any other groups between the hightest capture so far and the currrent group as "unset". Thus, the ovector for those groups contained whatever was previously there. An example is the pattern /(x)|((*ACCEPT))/ when matched against "abcd". 2. If an assertion condition was quantified with a minimum of zero (an odd thing to do, but it happened), SIGSEGV or other misbehaviour could occur. 3. If a pattern in pcretest input had the P (POSIX) modifier followed by an unrecognized modifier, a crash could occur. 4. An attempt to do global matching in pcretest with a zero-length ovector caused a crash. 5. Fixed a memory leak during matching that could occur for a subpattern subroutine call (recursive or otherwise) if the number of captured groups that had to be saved was greater than ten. 6. Catch a bad opcode during auto-possessification after compiling a bad UTF string with NO_UTF_CHECK. This is a tidyup, not a bug fix, as passing bad UTF with NO_UTF_CHECK is documented as having an undefined outcome. 7. A UTF pattern containing a "not" match of a non-ASCII character and a subroutine reference could loop at compile time. Example: /[^\xff]((?1))/. 8. When a pattern is compiled, it remembers the highest back reference so that when matching, if the ovector is too small, extra memory can be obtained to use instead. A conditional subpattern whose condition is a check on a capture having happened, such as, for example in the pattern /^(?:(a)|b)(?(1)A|B)/, is another kind of back reference, but it was not setting the highest backreference number. This mattered only if pcre_exec() was called with an ovector that was too small to hold the capture, and there was no other kind of back reference (a situation which is probably quite rare). The effect of the bug was that the condition was always treated as FALSE when the capture could not be consulted, leading to a incorrect behaviour by pcre_exec(). This bug has been fixed. 9. A reference to a duplicated named group (either a back reference or a test for being set in a conditional) that occurred in a part of the pattern where PCRE_DUPNAMES was not set caused the amount of memory needed for the pattern to be incorrectly calculated, leading to overwriting. 10. A mutually recursive set of back references such as (\2)(\1) caused a segfault at study time (while trying to find the minimum matching length). The infinite loop is now broken (with the minimum length unset, that is, zero). 11. If an assertion that was used as a condition was quantified with a minimum of zero, matching went wrong. In particular, if the whole group had unlimited repetition and could match an empty string, a segfault was likely. The pattern (?(?=0)?)+ is an example that caused this. Perl allows assertions to be quantified, but not if they are being used as conditions, so the above pattern is faulted by Perl. PCRE has now been changed so that it also rejects such patterns. 12. A possessive capturing group such as (a)*+ with a minimum repeat of zero failed to allow the zero-repeat case if pcre2_exec() was called with an ovector too small to capture the group. 13. Fixed two bugs in pcretest that were discovered by fuzzing and reported by Red Hat Product Security: (a) A crash if /K and /F were both set with the option to save the compiled pattern. (b) Another crash if the option to print captured substrings in a callout was combined with setting a null ovector, for example \O\C+ as a subject string. 14. A pattern such as "((?2){0,1999}())?", which has a group containing a forward reference repeated a large (but limited) number of times within a repeated outer group that has a zero minimum quantifier, caused incorrect code to be compiled, leading to the error "internal error: previously-checked referenced subpattern not found" when an incorrect memory address was read. This bug was reported as "heap overflow", discovered by Kai Lu of Fortinet's FortiGuard Labs and given the CVE number CVE-2015-2325. 23. A pattern such as "((?+1)(\1))/" containing a forward reference subroutine call within a group that also contained a recursive back reference caused incorrect code to be compiled. This bug was reported as "heap overflow", discovered by Kai Lu of Fortinet's FortiGuard Labs, and given the CVE number CVE-2015-2326. 24. Computing the size of the JIT read-only data in advance has been a source of various issues, and new ones are still appear unfortunately. To fix existing and future issues, size computation is eliminated from the code, and replaced by on-demand memory allocation. 25. A pattern such as /(?i)[A-`]/, where characters in the other case are adjacent to the end of the range, and the range contained characters with more than one other case, caused incorrect behaviour when compiled in UTF mode. In that example, the range a-j was left out of the class. 26. Fix JIT compilation of conditional blocks, which assertion is converted to (*FAIL). E.g: /(?(?!))/. 27. The pattern /(?(?!)^)/ caused references to random memory. This bug was discovered by the LLVM fuzzer. 28. The assertion (?!) is optimized to (*FAIL). This was not handled correctly when this assertion was used as a condition, for example (?(?!)a|b). In pcre2_match() it worked by luck; in pcre2_dfa_match() it gave an incorrect error about an unsupported item. 29. For some types of pattern, for example /Z*(|d*){216}/, the auto- possessification code could take exponential time to complete. A recursion depth limit of 1000 has been imposed to limit the resources used by this optimization. 30. A pattern such as /(*UTF)[\S\V\H]/, which contains a negated special class such as \S in non-UCP mode, explicit wide characters (> 255) can be ignored because \S ensures they are all in the class. The code for doing this was interacting badly with the code for computing the amount of space needed to compile the pattern, leading to a buffer overflow. This bug was discovered by the LLVM fuzzer. 31. A pattern such as /((?2)+)((?1))/ which has mutual recursion nested inside other kinds of group caused stack overflow at compile time. This bug was discovered by the LLVM fuzzer. 32. A pattern such as /(?1)(?#?'){8}(a)/ which had a parenthesized comment between a subroutine call and its quantifier was incorrectly compiled, leading to buffer overflow or other errors. This bug was discovered by the LLVM fuzzer. 33. The illegal pattern /(?(?<E>.*!.*)?)/ was not being diagnosed as missing an assertion after (?(. The code was failing to check the character after (?(?< for the ! or = that would indicate a lookbehind assertion. This bug was discovered by the LLVM fuzzer. 34. A pattern such as /X((?2)()*+){2}+/ which has a possessive quantifier with a fixed maximum following a group that contains a subroutine reference was incorrectly compiled and could trigger buffer overflow. This bug was discovered by the LLVM fuzzer. 35. A mutual recursion within a lookbehind assertion such as (?<=((?2))((?1))) caused a stack overflow instead of the diagnosis of a non-fixed length lookbehind assertion. This bug was discovered by the LLVM fuzzer. 36. The use of \K in a positive lookbehind assertion in a non-anchored pattern (e.g. /(?<=\Ka)/) could make pcregrep loop. 37. There was a similar problem to 36 in pcretest for global matches. 38. If a greedy quantified \X was preceded by \C in UTF mode (e.g. \C\X*), and a subsequent item in the pattern caused a non-match, backtracking over the repeated \X did not stop, but carried on past the start of the subject, causing reference to random memory and/or a segfault. There were also some other cases where backtracking after \C could crash. This set of bugs was discovered by the LLVM fuzzer. 39. The function for finding the minimum length of a matching string could take a very long time if mutual recursion was present many times in a pattern, for example, /((?2){73}(?2))((?1))/. A better mutual recursion detection method has been implemented. This infelicity was discovered by the LLVM fuzzer. 40. Static linking against the PCRE library using the pkg-config module was failing on missing pthread symbols.
Revision 1.72.4.1 / (download) - annotate - [select for diffs], Thu Dec 4 19:28:20 2014 UTC (8 years, 9 months ago) by tron
Branch: pkgsrc-2014Q3
Changes since 1.72: +2 -2
lines
Diff to previous 1.72 (colored) next main 1.73 (colored)
Pullup ticket #4565 - requested by he devel/pcre: security update Revisions pulled up: - devel/pcre/Makefile 1.73,1.75 - devel/pcre/distinfo 1.54-1.55 - devel/pcre/patches/patch-CVE-2014-8964 1.1 - devel/pcre/patches/patch-aa 1.16 - devel/pcre/patches/patch-ab 1.9 --- Module Name: pkgsrc Committed By: wiz Date: Wed Oct 1 11:45:00 UTC 2014 Modified Files: pkgsrc/devel/pcre: Makefile distinfo Log Message: Update to 8.36: Version 8.36 26-September-2014 ------------------------------ 1. Got rid of some compiler warnings in the C++ modules that were shown up by -Wmissing-field-initializers and -Wunused-parameter. 2. The tests for quantifiers being too big (greater than 65535) were being applied after reading the number, and stupidly assuming that integer overflow would give a negative number. The tests are now applied as the numbers are read. 3. Tidy code in pcre_exec.c where two branches that used to be different are now the same. 4. The JIT compiler did not generate match limit checks for certain bracketed expressions with quantifiers. This may lead to exponential backtracking, instead of returning with PCRE_ERROR_MATCHLIMIT. This issue should be resolved now. 5. Fixed an issue, which occures when nested alternatives are optimized with table jumps. 6. Inserted two casts and changed some ints to size_t in the light of some reported 64-bit compiler warnings (Bugzilla 1477). 7. Fixed a bug concerned with zero-minimum possessive groups that could match an empty string, which sometimes were behaving incorrectly in the interpreter (though correctly in the JIT matcher). This pcretest input is an example: '\A(?:[^"]++|"(?:[^"]*+|"")*+")++' NON QUOTED "QUOT""ED" AFTER "NOT MATCHED the interpreter was reporting a match of 'NON QUOTED ' only, whereas the JIT matcher and Perl both matched 'NON QUOTED "QUOT""ED" AFTER '. The test for an empty string was breaking the inner loop and carrying on at a lower level, when possessive repeated groups should always return to a higher level as they have no backtrack points in them. The empty string test now occurs at the outer level. 8. Fixed a bug that was incorrectly auto-possessifying \w+ in the pattern ^\w+(?>\s*)(?<=\w) which caused it not to match "test test". 9. Give a compile-time error for \o{} (as Perl does) and for \x{} (which Perl doesn't). 10. Change 8.34/15 introduced a bug that caused the amount of memory needed to hold a pattern to be incorrectly computed (too small) when there were named back references to duplicated names. This could cause "internal error: code overflow" or "double free or corruption" or other memory handling errors. 11. When named subpatterns had the same prefixes, back references could be confused. For example, in this pattern: /(?P<Name>a)?(?P<Name2>b)?(?(<Name>)c|d)*l/ the reference to 'Name' was incorrectly treated as a reference to a duplicate name. 12. A pattern such as /^s?c/mi8 where the optional character has more than one "other case" was incorrectly compiled such that it would only try to match starting at "c". 13. When a pattern starting with \s was studied, VT was not included in the list of possible starting characters; this should have been part of the 8.34/18 patch. 14. If a character class started [\Qx]... where x is any character, the class was incorrectly terminated at the ]. 15. If a pattern that started with a caseless match for a character with more than one "other case" was studied, PCRE did not set up the starting code unit bit map for the list of possible characters. Now it does. This is an optimization improvement, not a bug fix. 16. The Unicode data tables have been updated to Unicode 7.0.0. 17. Fixed a number of memory leaks in pcregrep. 18. Avoid a compiler warning (from some compilers) for a function call with a cast that removes "const" from an lvalue by using an intermediate variable (to which the compiler does not object). 19. Incorrect code was compiled if a group that contained an internal recursive back reference was optional (had quantifier with a minimum of zero). This example compiled incorrect code: /(((a\2)|(a*)\g<-1>))*/ and other examples caused segmentation faults because of stack overflows at compile time. 20. A pattern such as /((?(R)a|(?1)))+/, which contains a recursion within a group that is quantified with an indefinite repeat, caused a compile-time loop which used up all the system stack and provoked a segmentation fault. This was not the same bug as 19 above. 21. Add PCRECPP_EXP_DECL declaration to operator<< in pcre_stringpiece.h. Patch by Mike Frysinger. --- Module Name: pkgsrc Committed By: spz Date: Sun Nov 30 14:48:43 UTC 2014 Modified Files: pkgsrc/devel/pcre: Makefile distinfo pkgsrc/devel/pcre/patches: patch-aa patch-ab Added Files: pkgsrc/devel/pcre/patches: patch-CVE-2014-8964 Log Message: patch for CVE-2014-8964 from upstream also, patch refresh
Revision 1.75 / (download) - annotate - [select for diffs], Sun Nov 30 14:48:43 2014 UTC (8 years, 9 months ago) by spz
Branch: MAIN
CVS Tags: pkgsrc-2015Q1-base,
pkgsrc-2015Q1,
pkgsrc-2014Q4-base,
pkgsrc-2014Q4
Changes since 1.74: +2 -1
lines
Diff to previous 1.74 (colored)
patch for CVE-2014-8964 from upstream also, patch refresh
Revision 1.74 / (download) - annotate - [select for diffs], Thu Oct 9 14:06:30 2014 UTC (8 years, 11 months ago) by wiz
Branch: MAIN
Changes since 1.73: +1 -3
lines
Diff to previous 1.73 (colored)
Remove pkgviews: don't set PKG_INSTALLATION_TYPES in Makefiles.
Revision 1.73 / (download) - annotate - [select for diffs], Wed Oct 1 11:45:00 2014 UTC (8 years, 11 months ago) by wiz
Branch: MAIN
Changes since 1.72: +2 -3
lines
Diff to previous 1.72 (colored)
Update to 8.36: Version 8.36 26-September-2014 ------------------------------ 1. Got rid of some compiler warnings in the C++ modules that were shown up by -Wmissing-field-initializers and -Wunused-parameter. 2. The tests for quantifiers being too big (greater than 65535) were being applied after reading the number, and stupidly assuming that integer overflow would give a negative number. The tests are now applied as the numbers are read. 3. Tidy code in pcre_exec.c where two branches that used to be different are now the same. 4. The JIT compiler did not generate match limit checks for certain bracketed expressions with quantifiers. This may lead to exponential backtracking, instead of returning with PCRE_ERROR_MATCHLIMIT. This issue should be resolved now. 5. Fixed an issue, which occures when nested alternatives are optimized with table jumps. 6. Inserted two casts and changed some ints to size_t in the light of some reported 64-bit compiler warnings (Bugzilla 1477). 7. Fixed a bug concerned with zero-minimum possessive groups that could match an empty string, which sometimes were behaving incorrectly in the interpreter (though correctly in the JIT matcher). This pcretest input is an example: '\A(?:[^"]++|"(?:[^"]*+|"")*+")++' NON QUOTED "QUOT""ED" AFTER "NOT MATCHED the interpreter was reporting a match of 'NON QUOTED ' only, whereas the JIT matcher and Perl both matched 'NON QUOTED "QUOT""ED" AFTER '. The test for an empty string was breaking the inner loop and carrying on at a lower level, when possessive repeated groups should always return to a higher level as they have no backtrack points in them. The empty string test now occurs at the outer level. 8. Fixed a bug that was incorrectly auto-possessifying \w+ in the pattern ^\w+(?>\s*)(?<=\w) which caused it not to match "test test". 9. Give a compile-time error for \o{} (as Perl does) and for \x{} (which Perl doesn't). 10. Change 8.34/15 introduced a bug that caused the amount of memory needed to hold a pattern to be incorrectly computed (too small) when there were named back references to duplicated names. This could cause "internal error: code overflow" or "double free or corruption" or other memory handling errors. 11. When named subpatterns had the same prefixes, back references could be confused. For example, in this pattern: /(?P<Name>a)?(?P<Name2>b)?(?(<Name>)c|d)*l/ the reference to 'Name' was incorrectly treated as a reference to a duplicate name. 12. A pattern such as /^s?c/mi8 where the optional character has more than one "other case" was incorrectly compiled such that it would only try to match starting at "c". 13. When a pattern starting with \s was studied, VT was not included in the list of possible starting characters; this should have been part of the 8.34/18 patch. 14. If a character class started [\Qx]... where x is any character, the class was incorrectly terminated at the ]. 15. If a pattern that started with a caseless match for a character with more than one "other case" was studied, PCRE did not set up the starting code unit bit map for the list of possible characters. Now it does. This is an optimization improvement, not a bug fix. 16. The Unicode data tables have been updated to Unicode 7.0.0. 17. Fixed a number of memory leaks in pcregrep. 18. Avoid a compiler warning (from some compilers) for a function call with a cast that removes "const" from an lvalue by using an intermediate variable (to which the compiler does not object). 19. Incorrect code was compiled if a group that contained an internal recursive back reference was optional (had quantifier with a minimum of zero). This example compiled incorrect code: /(((a\2)|(a*)\g<-1>))*/ and other examples caused segmentation faults because of stack overflows at compile time. 20. A pattern such as /((?(R)a|(?1)))+/, which contains a recursion within a group that is quantified with an indefinite repeat, caused a compile-time loop which used up all the system stack and provoked a segmentation fault. This was not the same bug as 19 above. 21. Add PCRECPP_EXP_DECL declaration to operator<< in pcre_stringpiece.h. Patch by Mike Frysinger.
Revision 1.72 / (download) - annotate - [select for diffs], Tue Jun 10 19:45:17 2014 UTC (9 years, 3 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2014Q3-base,
pkgsrc-2014Q2-base,
pkgsrc-2014Q2
Branch point for: pkgsrc-2014Q3
Changes since 1.71: +2 -1
lines
Diff to previous 1.71 (colored)
Add minimal headers needed for a valid manpage to pcredemo(3). Bump PKGREVISION.
Revision 1.71 / (download) - annotate - [select for diffs], Tue Apr 15 08:37:55 2014 UTC (9 years, 5 months ago) by wiz
Branch: MAIN
Changes since 1.70: +2 -2
lines
Diff to previous 1.70 (colored)
Update to 8.35: Release 8.35 04-April-2014 -------------------------- There have been performance improvements for classes containing non-ASCII characters and the "auto-possessification" feature has been extended. Other minor improvements have been implemented and bugs fixed. There is a new callout feature to enable applications to do detailed stack checks at compile time, to avoid running out of stack for deeply nested parentheses. The JIT compiler has been extended with experimental support for ARM-64, MIPS-64, and PPC-LE.
Revision 1.70 / (download) - annotate - [select for diffs], Thu Jan 2 18:28:24 2014 UTC (9 years, 8 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2014Q1-base,
pkgsrc-2014Q1
Changes since 1.69: +2 -2
lines
Diff to previous 1.69 (colored)
Update to 8.34: Release 8.34 15-December-2013 ----------------------------- As well as fixing the inevitable bugs, performance has been improved by refactoring and extending the amount of "auto-possessification" that PCRE does. Other notable changes: . Implemented PCRE_INFO_MATCH_EMPTY, which yields 1 if the pattern can match an empty string. If it can, pcretest shows this in its information output. . A back reference to a named subpattern when there is more than one of the same name now checks them in the order in which they appear in the pattern. The first one that is set is used for the reference. Previously only the first one was inspected. This change makes PCRE more compatible with Perl. . Unicode character properties were updated from Unicode 6.3.0. . The character VT has been added to the set of characters that match \s and are generally treated as white space, following this same change in Perl 5.18. There is now no difference between "Perl space" and "POSIX space". . Perl has changed its handling of \8 and \9. If there is no previously encountered capturing group of those numbers, they are treated as the literal characters 8 and 9 instead of a binary zero followed by the literals. PCRE now does the same. . Following Perl, added \o{} to specify codepoints in octal, making it possible to specify values greater than 0777 and also making them unambiguous. . In UCP mode, \s was not matching two of the characters that Perl matches, namely NEL (U+0085) and MONGOLIAN VOWEL SEPARATOR (U+180E), though they were matched by \h. . Add JIT support for the 64 bit TileGX architecture. . Upgraded the handling of the POSIX classes [:graph:], [:print:], and [:punct:] when PCRE_UCP is set so as to include the same characters as Perl does in Unicode mode. . Perl no longer allows group names to start with digits, so I have made this change also in PCRE. . Added support for [[:<:]] and [[:>:]] as used in the BSD POSIX library to mean "start of word" and "end of word", respectively, as a transition aid.
Revision 1.69 / (download) - annotate - [select for diffs], Tue May 28 14:07:50 2013 UTC (10 years, 3 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2013Q4-base,
pkgsrc-2013Q4,
pkgsrc-2013Q3-base,
pkgsrc-2013Q3,
pkgsrc-2013Q2-base,
pkgsrc-2013Q2
Changes since 1.68: +2 -2
lines
Diff to previous 1.68 (colored)
Changes 8.33: The Just-In-Time compiler (JIT) now supports all pattern features, including callouts and the backtracking verbs. In addition, some bugs are fixed and there are minor performance enhancements.
Revision 1.68 / (download) - annotate - [select for diffs], Sun Dec 2 11:51:58 2012 UTC (10 years, 9 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2013Q1-base,
pkgsrc-2013Q1,
pkgsrc-2012Q4-base,
pkgsrc-2012Q4
Changes since 1.67: +4 -3
lines
Diff to previous 1.67 (colored)
Release 8.32 30-November-2012 ----------------------------- This release fixes a number of bugs, but also has some new features. These are the highlights: . There is now support for 32-bit character strings and UTF-32. Like the 16-bit support, this is done by compiling a separate 32-bit library. . \X now matches a Unicode extended grapheme cluster. . Case-independent matching of Unicode characters that have more than one "other case" now makes all three (or more) characters equivalent. This applies, for example, to Greek Sigma, which has two lowercase versions. . Unicode character properties are updated to Unicode 6.2.0. . The EBCDIC support, which had decayed, has had a spring clean. . A number of JIT optimizations have been added, which give faster JIT execution speed. In addition, a new direct interface to JIT execution is available. This bypasses some of the sanity checks of pcre_exec() to give a noticeable speed-up. . A number of issues in pcregrep have been fixed, making it more compatible with GNU grep. In particular, --exclude and --include (and variants) apply to all files now, not just those obtained from scanning a directory recursively. In Windows environments, the default action for directories is now "skip" instead of "read" (which provokes an error). . If the --only-matching (-o) option in pcregrep is specified multiple times, each one causes appropriate output. For example, -o1 -o2 outputs the substrings matched by the 1st and 2nd capturing parentheses. A separating string can be specified by --om-separator (default empty). . When PCRE is built via Autotools using a version of gcc that has the "visibility" feature, it is used to hide internal library functions that are not part of the public API.
Revision 1.67 / (download) - annotate - [select for diffs], Wed Oct 31 11:19:22 2012 UTC (10 years, 10 months ago) by asau
Branch: MAIN
Changes since 1.66: +1 -2
lines
Diff to previous 1.66 (colored)
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
Revision 1.66 / (download) - annotate - [select for diffs], Sat Jul 7 08:00:07 2012 UTC (11 years, 2 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2012Q3-base,
pkgsrc-2012Q3
Changes since 1.65: +2 -3
lines
Diff to previous 1.65 (colored)
Update to 8.31: Release 8.31 06-July-2012 ------------------------- This is mainly a bug-fixing release, with a small number of developments: . The JIT compiler now supports partial matching and the (*MARK) and (*COMMIT) verbs. . PCRE_INFO_MAXLOOKBEHIND can be used to find the longest lookbehing in a pattern. . There should be a performance improvement when using the heap instead of the stack for recursion. . pcregrep can now be linked with libedit as an alternative to libreadline. . pcregrep now has a --file-list option where the list of files to scan is given as a file. . pcregrep now recognizes binary files and there are related options. . The Unicode tables have been updated to 6.1.0.
Revision 1.65 / (download) - annotate - [select for diffs], Sat Mar 10 08:03:56 2012 UTC (11 years, 6 months ago) by sbd
Branch: MAIN
CVS Tags: pkgsrc-2012Q2-base,
pkgsrc-2012Q2,
pkgsrc-2012Q1-base,
pkgsrc-2012Q1
Changes since 1.64: +2 -2
lines
Diff to previous 1.64 (colored)
If libreadline isn't wanted don't put it in a programs LDADD variable. Bump PKGREVISION
Revision 1.64 / (download) - annotate - [select for diffs], Fri Mar 2 15:25:06 2012 UTC (11 years, 6 months ago) by wiz
Branch: MAIN
Changes since 1.63: +4 -1
lines
Diff to previous 1.63 (colored)
Enable 16-bit support. Bump PKGREVISION.
Revision 1.63 / (download) - annotate - [select for diffs], Fri Mar 2 14:10:42 2012 UTC (11 years, 6 months ago) by wiz
Branch: MAIN
Changes since 1.62: +2 -2
lines
Diff to previous 1.62 (colored)
Update to 8.30. New 16-bit character string library not enabled per default. Release 8.30 04-February-2012 ----------------------------- Release 8.30 introduces a major new feature: support for 16-bit character strings, compiled as a separate library. There are a few changes to the 8-bit library, in addition to some bug fixes. . The pcre_info() function, which has been obsolete for over 10 years, has been removed. . When a compiled pattern was saved to a file and later reloaded on a host with different endianness, PCRE used automatically to swap the bytes in some of the data fields. With the advent of the 16-bit library, where more of this swapping is needed, it is no longer done automatically. Instead, the bad endianness is detected and a specific error is given. The user can then call a new function called pcre_pattern_to_host_byte_order() (or an equivalent 16-bit function) to do the swap. . In UTF-8 mode, the values 0xd800 to 0xdfff are not legal Unicode code points and are now faulted. (They are the so-called "surrogates" that are reserved for coding high values in UTF-16.)
Revision 1.62 / (download) - annotate - [select for diffs], Thu Dec 15 15:39:21 2011 UTC (11 years, 9 months ago) by drochner
Branch: MAIN
CVS Tags: pkgsrc-2011Q4-base,
pkgsrc-2011Q4
Changes since 1.61: +2 -2
lines
Diff to previous 1.61 (colored)
update to 8.21 This is almost entirely a bug-fix release. The only new feature is the ability to obtain the size of the memory used by the JIT compiler.
Revision 1.61 / (download) - annotate - [select for diffs], Mon Nov 28 16:39:29 2011 UTC (11 years, 9 months ago) by wiz
Branch: MAIN
Changes since 1.60: +2 -2
lines
Diff to previous 1.60 (colored)
Update to 8.20 (jit not enabled, should perhaps become an option?): Release 8.20 21-Oct-2011 ------------------------ The main change in this release is the inclusion of Zoltan Herczeg's just-in-time compiler support, which can be accessed by building PCRE with --enable-jit. Large performance benefits can be had in many situations. 8.20 also fixes an unfortunate bug that was introduced in 8.13 as well as tidying up a number of infelicities and differences from Perl.
Revision 1.60 / (download) - annotate - [select for diffs], Mon Aug 22 12:58:08 2011 UTC (12 years, 1 month ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2011Q3-base,
pkgsrc-2011Q3
Changes since 1.59: +2 -2
lines
Diff to previous 1.59 (colored)
Update to 8.13. Add comments to patches. Release 8.13 16-Aug-2011 ------------------------ This is mainly a bug-fix release. There has been a lot of internal refactoring. The Unicode tables have been updated. The only new feature in the library is the passing of *MARK information to callouts. Some additions have been made to pcretest to make testing easier and more comprehensive. There is a new option for pcregrep to adjust its internal buffer size.
Revision 1.59 / (download) - annotate - [select for diffs], Sat Jan 15 21:14:21 2011 UTC (12 years, 8 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2011Q2-base,
pkgsrc-2011Q2,
pkgsrc-2011Q1-base,
pkgsrc-2011Q1
Changes since 1.58: +2 -2
lines
Diff to previous 1.58 (colored)
Changes 8.12: This release contains several bug fixes for the pcregrep program. There are no changes to the code of the PCRE library.
Revision 1.58 / (download) - annotate - [select for diffs], Sat Dec 11 08:16:12 2010 UTC (12 years, 9 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2010Q4-base,
pkgsrc-2010Q4
Changes since 1.57: +2 -2
lines
Diff to previous 1.57 (colored)
Changes 8.11: A number of bugs in the library and in pcregrep have been fixed. As always, see ChangeLog for details. The following are the non-bug-fix changes: . Added --match-limit and --recursion-limit to pcregrep. . Added an optional parentheses number to the -o and --only-matching options of pcregrep. . Changed the way PCRE_PARTIAL_HARD affects the matching of $, \z, \Z, \b, and \B. . Added PCRE_ERROR_SHORTUTF8 to make it possible to distinguish between a bad UTF-8 sequence and one that is incomplete when using PCRE_PARTIAL_HARD. . Recognize (*NO_START_OPT) at the start of a pattern to set the PCRE_NO_ START_OPTIMIZE option, which is now allowed at compile time
Revision 1.57 / (download) - annotate - [select for diffs], Sat Aug 7 06:26:42 2010 UTC (13 years, 1 month ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2010Q3-base,
pkgsrc-2010Q3
Changes since 1.56: +2 -2
lines
Diff to previous 1.56 (colored)
Update to 8.10: Release 8.10 25-Jun-2010 ------------------------ There are two major additions: support for (*MARK) and friends, and the option PCRE_UCP, which changes the behaviour of \b, \d, \s, and \w (and their opposites) so that they make use of Unicode properties. There are also a number of lesser new features, and several bugs have been fixed. A new option, --line-buffered, has been added to pcregrep, for use when it is connected to pipes.
Revision 1.55.2.1 / (download) - annotate - [select for diffs], Sat May 8 22:21:45 2010 UTC (13 years, 4 months ago) by tron
Branch: pkgsrc-2010Q1
Changes since 1.55: +2 -2
lines
Diff to previous 1.55 (colored) next main 1.56 (colored)
Pullup ticket #3109 - requested by tez devel/pcre: security update Revisions pulled up: - devel/pcre/Makefile 1.56 - devel/pcre/distinfo 1.38 --- Module Name: pkgsrc Committed By: drochner Date: Tue Apr 13 16:49:43 UTC 2010 Modified Files: pkgsrc/devel/pcre: Makefile distinfo Log Message: update to 8.02 changes: -Unicode data tables have been updated to Unicode 5.2.0 -bugfixes
Revision 1.56 / (download) - annotate - [select for diffs], Tue Apr 13 16:49:42 2010 UTC (13 years, 5 months ago) by drochner
Branch: MAIN
CVS Tags: pkgsrc-2010Q2-base,
pkgsrc-2010Q2
Changes since 1.55: +2 -2
lines
Diff to previous 1.55 (colored)
update to 8.02 changes: -Unicode data tables have been updated to Unicode 5.2.0 -bugfixes
Revision 1.55 / (download) - annotate - [select for diffs], Wed Jan 20 11:09:30 2010 UTC (13 years, 8 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2010Q1-base
Branch point for: pkgsrc-2010Q1
Changes since 1.54: +2 -2
lines
Diff to previous 1.54 (colored)
Update to 8.01: Release 8.01 19-Jan-2010 ------------------------ This is a bug-fix release. Several bugs in the code itself and some bugs and infelicities in the build system have been fixed.
Revision 1.54 / (download) - annotate - [select for diffs], Sat Oct 31 02:01:56 2009 UTC (13 years, 10 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2009Q4-base,
pkgsrc-2009Q4
Changes since 1.53: +3 -3
lines
Diff to previous 1.53 (colored)
Update to 8.00: Release 8.00 19-Oct-09 ---------------------- Bugs have been fixed in the library and in pcregrep. There are also some enhancements. Restrictions on patterns used for partial matching have been removed, extra information is given for partial matches, the partial matching process has been improved, and an option to make a partial match override a full match is available. The "study" process has been enhanced by finding a lower bound matching length. Groups with duplicate numbers may now have duplicated names without the use of PCRE_DUPNAMES. However, they may not have different names. The documentation has been revised to reflect these changes. The version number has been expanded to 3 digits as it is clear that the rate of change is not slowing down.
Revision 1.53 / (download) - annotate - [select for diffs], Wed May 13 10:08:27 2009 UTC (14 years, 4 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2009Q3-base,
pkgsrc-2009Q3,
pkgsrc-2009Q2-base,
pkgsrc-2009Q2
Changes since 1.52: +3 -3
lines
Diff to previous 1.52 (colored)
Update to 7.9. Set LICENSE to modified-bsd. Version 7.9 11-Apr-09 --------------------- 1. When building with support for bzlib/zlib (pcregrep) and/or readline (pcretest), all targets were linked against these libraries. This included libpcre, libpcreposix, and libpcrecpp, even though they do not use these libraries. This caused unwanted dependencies to be created. This problem has been fixed, and now only pcregrep is linked with bzlib/zlib and only pcretest is linked with readline. 2. The "typedef int BOOL" in pcre_internal.h that was included inside the "#ifndef FALSE" condition by an earlier change (probably 7.8/18) has been moved outside it again, because FALSE and TRUE are already defined in AIX, but BOOL is not. 3. The pcre_config() function was treating the PCRE_MATCH_LIMIT and PCRE_MATCH_LIMIT_RECURSION values as ints, when they should be long ints. 4. The pcregrep documentation said spaces were inserted as well as colons (or hyphens) following file names and line numbers when outputting matching lines. This is not true; no spaces are inserted. I have also clarified the wording for the --colour (or --color) option. 5. In pcregrep, when --colour was used with -o, the list of matching strings was not coloured; this is different to GNU grep, so I have changed it to be the same. 6. When --colo(u)r was used in pcregrep, only the first matching substring in each matching line was coloured. Now it goes on to look for further matches of any of the test patterns, which is the same behaviour as GNU grep. 7. A pattern that could match an empty string could cause pcregrep to loop; it doesn't make sense to accept an empty string match in pcregrep, so I have locked it out (using PCRE's PCRE_NOTEMPTY option). By experiment, this seems to be how GNU grep behaves. 8. The pattern (?(?=.*b)b|^) was incorrectly compiled as "match must be at start or after a newline", because the conditional assertion was not being correctly handled. The rule now is that both the assertion and what follows in the first alternative must satisfy the test. 9. If auto-callout was enabled in a pattern with a conditional group whose condition was an assertion, PCRE could crash during matching, both with pcre_exec() and pcre_dfa_exec(). 10. The PCRE_DOLLAR_ENDONLY option was not working when pcre_dfa_exec() was used for matching. 11. Unicode property support in character classes was not working for characters (bytes) greater than 127 when not in UTF-8 mode. 12. Added the -M command line option to pcretest. 14. Added the non-standard REG_NOTEMPTY option to the POSIX interface. 15. Added the PCRE_NO_START_OPTIMIZE match-time option. 16. Added comments and documentation about mis-use of no_arg in the C++ wrapper. 17. Implemented support for UTF-8 encoding in EBCDIC environments, a patch from Martin Jerabek that uses macro names for all relevant character and string constants. 18. Added to pcre_internal.h two configuration checks: (a) If both EBCDIC and SUPPORT_UTF8 are set, give an error; (b) If SUPPORT_UCP is set without SUPPORT_UTF8, define SUPPORT_UTF8. The "configure" script handles both of these, but not everybody uses configure. 19. A conditional group that had only one branch was not being correctly recognized as an item that could match an empty string. This meant that an enclosing group might also not be so recognized, causing infinite looping (and probably a segfault) for patterns such as ^"((?(?=[a])[^"])|b)*"$ with the subject "ab", where knowledge that the repeated group can match nothing is needed in order to break the loop. 20. If a pattern that was compiled with callouts was matched using pcre_dfa_ exec(), but without supplying a callout function, matching went wrong. 21. If PCRE_ERROR_MATCHLIMIT occurred during a recursion, there was a memory leak if the size of the offset vector was greater than 30. When the vector is smaller, the saved offsets during recursion go onto a local stack vector, but for larger vectors malloc() is used. It was failing to free when the recursion yielded PCRE_ERROR_MATCH_LIMIT (or any other "abnormal" error, in fact). 22. There was a missing #ifdef SUPPORT_UTF8 round one of the variables in the heapframe that is used only when UTF-8 support is enabled. This caused no problem, but was untidy. 23. Steven Van Ingelgem's patch to CMakeLists.txt to change the name CMAKE_BINARY_DIR to PROJECT_BINARY_DIR so that it works when PCRE is included within another project. 24. Steven Van Ingelgem's patches to add more options to the CMake support, slightly modified by me: (a) PCRE_BUILD_TESTS can be set OFF not to build the tests, including not building pcregrep. (b) PCRE_BUILD_PCREGREP can be see OFF not to build pcregrep, but only if PCRE_BUILD_TESTS is also set OFF, because the tests use pcregrep. 25. Forward references, both numeric and by name, in patterns that made use of duplicate group numbers, could behave incorrectly or give incorrect errors, because when scanning forward to find the reference group, PCRE was not taking into account the duplicate group numbers. A pattern such as ^X(?3)(a)(?|(b)|(q))(Y) is an example. 26. Changed a few more instances of "const unsigned char *" to USPTR, making the feature of a custom pointer more persuasive (as requested by a user). 27. Wrapped the definitions of fileno and isatty for Windows, which appear in pcretest.c, inside #ifndefs, because it seems they are sometimes already pre-defined. 28. Added support for (*UTF8) at the start of a pattern. 29. Arrange for flags added by the "release type" setting in CMake to be shown in the configuration summary.
Revision 1.52 / (download) - annotate - [select for diffs], Sat Sep 6 14:25:28 2008 UTC (15 years ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2009Q1-base,
pkgsrc-2009Q1,
pkgsrc-2008Q4-base,
pkgsrc-2008Q4,
pkgsrc-2008Q3-base,
pkgsrc-2008Q3,
cube-native-xorg-base,
cube-native-xorg
Changes since 1.51: +2 -3
lines
Diff to previous 1.51 (colored)
Update to 7.8: Version 7.8 05-Sep-08 --------------------- 1. Replaced UCP searching code with optimized version as implemented for Ad Muncher (http://www.admuncher.com/) by Peter Kankowski. This uses a two- stage table and inline lookup instead of a function, giving speed ups of 2 to 5 times on some simple patterns that I tested. Permission was given to distribute the MultiStage2.py script that generates the tables (it's not in the tarball, but is in the Subversion repository). 2. Updated the Unicode datatables to Unicode 5.1.0. This adds yet more scripts. 3. Change 12 for 7.7 introduced a bug in pcre_study() when a pattern contained a group with a zero qualifier. The result of the study could be incorrect, or the function might crash, depending on the pattern. 4. Caseless matching was not working for non-ASCII characters in back references. For example, /(\x{de})\1/8i was not matching \x{de}\x{fe}. It now works when Unicode Property Support is available. 5. In pcretest, an escape such as \x{de} in the data was always generating a UTF-8 string, even in non-UTF-8 mode. Now it generates a single byte in non-UTF-8 mode. If the value is greater than 255, it gives a warning about truncation. 6. Minor bugfix in pcrecpp.cc (change "" == ... to NULL == ...). 7. Added two (int) casts to pcregrep when printing the difference of two pointers, in case they are 64-bit values. 8. Added comments about Mac OS X stack usage to the pcrestack man page and to test 2 if it fails. 9. Added PCRE_CALL_CONVENTION just before the names of all exported functions, and a #define of that name to empty if it is not externally set. This is to allow users of MSVC to set it if necessary. 10. The PCRE_EXP_DEFN macro which precedes exported functions was missing from the convenience functions in the pcre_get.c source file. 11. An option change at the start of a pattern that had top-level alternatives could cause overwriting and/or a crash. This command provoked a crash in some environments: printf "/(?i)[\xc3\xa9\xc3\xbd]|[\xc3\xa9\xc3\xbdA]/8\n" | pcretest This potential security problem was recorded as CVE-2008-2371. 12. For a pattern where the match had to start at the beginning or immediately after a newline (e.g /.*anything/ without the DOTALL flag), pcre_exec() and pcre_dfa_exec() could read past the end of the passed subject if there was no match. To help with detecting such bugs (e.g. with valgrind), I modified pcretest so that it places the subject at the end of its malloc-ed buffer. 13. The change to pcretest in 12 above threw up a couple more cases when pcre_ exec() might read past the end of the data buffer in UTF-8 mode. 14. A similar bug to 7.3/2 existed when the PCRE_FIRSTLINE option was set and the data contained the byte 0x85 as part of a UTF-8 character within its first line. This applied both to normal and DFA matching. 15. Lazy qualifiers were not working in some cases in UTF-8 mode. For example, /^[^d]*?$/8 failed to match "abc". 16. Added a missing copyright notice to pcrecpp_internal.h. 17. Make it more clear in the documentation that values returned from pcre_exec() in ovector are byte offsets, not character counts. 18. Tidied a few places to stop certain compilers from issuing warnings. 19. Updated the Virtual Pascal + BCC files to compile the latest v7.7, as supplied by Stefan Weber. I made a further small update for 7.8 because there is a change of source arrangements: the pcre_searchfuncs.c module is replaced by pcre_ucd.c.
Revision 1.51 / (download) - annotate - [select for diffs], Fri Jul 4 21:30:24 2008 UTC (15 years, 2 months ago) by tonnerre
Branch: MAIN
CVS Tags: pkgsrc-2008Q2-base,
pkgsrc-2008Q2,
cwrapper
Changes since 1.50: +2 -2
lines
Diff to previous 1.50 (colored)
Fix a potential buffer overflow in libpcre's compiler (CVE-2008-2371).
Revision 1.50 / (download) - annotate - [select for diffs], Tue May 27 16:20:52 2008 UTC (15 years, 3 months ago) by tnn
Branch: MAIN
Changes since 1.49: +2 -1
lines
Diff to previous 1.49 (colored)
Remove a feeble attempt at providing ABI compatibility for the C++ portion of the PCRE library. Relying on the C++ compiler to crunch symbols in a particular way is platform dependent at best, and the comments indicate that this was done for OSX. Also, the test misfired on SunOS leading to breakage (PR pkg/38768). I'm not bumping the ABI depends because I'm not aware of any packages using the C++ library. Bump PKGREVISION, however.
Revision 1.49 / (download) - annotate - [select for diffs], Sun May 25 17:39:32 2008 UTC (15 years, 4 months ago) by tnn
Branch: MAIN
Changes since 1.48: +1 -8
lines
Diff to previous 1.48 (colored)
Drop hpux fix which is now handled by compat_headers.
Revision 1.48 / (download) - annotate - [select for diffs], Sat May 24 10:45:17 2008 UTC (15 years, 4 months ago) by wiz
Branch: MAIN
Changes since 1.47: +2 -2
lines
Diff to previous 1.47 (colored)
Update to 7.7: Release 7.7 07-May-08 --------------------- This is once again mainly a bug-fix release, but there are a couple of new features.
Revision 1.47 / (download) - annotate - [select for diffs], Wed Feb 13 19:20:39 2008 UTC (15 years, 7 months ago) by drochner
Branch: MAIN
CVS Tags: pkgsrc-2008Q1-base,
pkgsrc-2008Q1
Changes since 1.46: +2 -2
lines
Diff to previous 1.46 (colored)
update to 7.6 changes: The main reason for having this release so soon after 7.5 is because it fixes a potential buffer overflow problem in pcre_compile() when run in UTF-8 mode. In addition, the CMake configuration files have been brought up to date.
Revision 1.46 / (download) - annotate - [select for diffs], Tue Jan 15 22:42:36 2008 UTC (15 years, 8 months ago) by wiz
Branch: MAIN
Changes since 1.45: +3 -4
lines
Diff to previous 1.45 (colored)
Update to 7.5: Release 7.5 10-Jan-08 --------------------- This is mainly a bug-fix release. However the ability to link pcregrep with libz or libbz2 and the ability to link pcretest with libreadline have been added. Also the --line-offsets and --file-offsets options were added to pcregrep.
Revision 1.45 / (download) - annotate - [select for diffs], Sun Nov 11 11:35:49 2007 UTC (15 years, 10 months ago) by martti
Branch: MAIN
CVS Tags: pkgsrc-2007Q4-base,
pkgsrc-2007Q4
Changes since 1.44: +2 -1
lines
Diff to previous 1.44 (colored)
Added commented-out LICENSE=something.
Revision 1.44 / (download) - annotate - [select for diffs], Wed Nov 7 21:27:48 2007 UTC (15 years, 10 months ago) by drochner
Branch: MAIN
Changes since 1.43: +3 -2
lines
Diff to previous 1.43 (colored)
Enable unicode properties and bump PKGREVISION. With that in place this pkg can be used as an external dependency by glib2 instead of building a bundled copy. This should save us headaches in case of future security problems.
Revision 1.43 / (download) - annotate - [select for diffs], Sun Oct 21 04:48:15 2007 UTC (15 years, 11 months ago) by dsainty
Branch: MAIN
Changes since 1.42: +3 -2
lines
Diff to previous 1.42 (colored)
Add SourceForge as an option to the MASTER_SITES
Revision 1.42 / (download) - annotate - [select for diffs], Wed Oct 17 20:49:42 2007 UTC (15 years, 11 months ago) by wiz
Branch: MAIN
Changes since 1.41: +2 -2
lines
Diff to previous 1.41 (colored)
Update to 7.4: Release 7.4 21-Sep-07 --------------------- The only change of specification is the addition of options to control whether \R matches any Unicode line ending (the default) or just CR, LF, and CRLF. Otherwise, the changes are bug fixes and a refactoring to reduce the number of relocations needed in a shared library. There have also been some documentation updates, in particular, some more information about using CMake to build PCRE has been added to the NON-UNIX-USE file.
Revision 1.41 / (download) - annotate - [select for diffs], Sun Sep 9 16:57:16 2007 UTC (16 years ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2007Q3-base,
pkgsrc-2007Q3
Changes since 1.40: +2 -2
lines
Diff to previous 1.40 (colored)
Drop maintainership.
Revision 1.40 / (download) - annotate - [select for diffs], Fri Sep 7 14:49:35 2007 UTC (16 years ago) by tnn
Branch: MAIN
Changes since 1.39: +8 -1
lines
Diff to previous 1.39 (colored)
Make pcre build on HPUX.
Revision 1.39 / (download) - annotate - [select for diffs], Wed Aug 29 21:02:45 2007 UTC (16 years ago) by wiz
Branch: MAIN
Changes since 1.38: +2 -2
lines
Diff to previous 1.38 (colored)
Update to 7.3: Release 7.3 28-Aug-07 --------------------- Most changes are bug fixes. Some that are not: 1. There is some support for Perl 5.10's experimental "backtracking control verbs" such as (*PRUNE). 2. UTF-8 checking is now as per RFC 3629 instead of RFC 2279; this is more restrictive in the strings it accepts. 3. Checking for potential integer overflow has been made more dynamic, and as a consequence there is no longer a hard limit on the size of a subpattern that has a limited repeat count. 4. When CRLF is a valid line-ending sequence, pcre_exec() and pcre_dfa_exec() no longer advance by two characters instead of one when an unanchored match fails at CRLF if there are explicit CR or LF matches within the pattern. This gets rid of some anomalous effects that previously occurred. 5. Some PCRE-specific settings for varying the newline options at the start of a pattern have been added.
Revision 1.38 / (download) - annotate - [select for diffs], Tue Jul 3 17:20:01 2007 UTC (16 years, 2 months ago) by wiz
Branch: MAIN
Changes since 1.37: +2 -3
lines
Diff to previous 1.37 (colored)
Update to 7.2: Release 7.2 19-Jun-07 --------------------- WARNING: saved patterns that were compiled by earlier versions of PCRE must be recompiled for use with 7.2 (necessitated by the addition of \K, \h, \H, \v, and \V). Correction to the notes for 7.1: the note about shared libraries for Windows is wrong. Previously, three libraries were built, but each could function independently. For example, the pcreposix library also included all the functions from the basic pcre library. The change is that the three libraries are no longer independent. They are like the Unix libraries. To use the pcreposix functions, for example, you need to link with both the pcreposix and the basic pcre library. Some more features from Perl 5.10 have been added: (?-n) and (?+n) relative references for recursion and subroutines. (?(-n) and (?(+n) relative references as conditions. \k{name} and \g{name} are synonyms for \k<name>. \K to reset the start of the matched string; for example, (foo)\Kbar matches bar preceded by foo, but only sets bar as the matched string. (?| introduces a group where the capturing parentheses in each alternative start from the same number; for example, (?|(abc)|(xyz)) sets capturing parentheses number 1 in both cases. \h, \H, \v, \V match horizontal and vertical whitespace, respectively.
Revision 1.37 / (download) - annotate - [select for diffs], Sun Jun 17 17:05:08 2007 UTC (16 years, 3 months ago) by joerg
Branch: MAIN
CVS Tags: pkgsrc-2007Q2-base,
pkgsrc-2007Q2
Changes since 1.36: +8 -1
lines
Diff to previous 1.36 (colored)
Fix pcre-config to always output the rpath for ${prefix}/lib based on COMPILER_RPATH_FLAG. Before it hard-wired Solaris and *BSD, now it works everywhere. Bump revision.
Revision 1.36 / (download) - annotate - [select for diffs], Fri Jun 8 18:39:24 2007 UTC (16 years, 3 months ago) by wiz
Branch: MAIN
Changes since 1.35: +2 -3
lines
Diff to previous 1.35 (colored)
Remove dead MASTERS_SITES. From Zafer Aydogan.
Revision 1.35 / (download) - annotate - [select for diffs], Thu May 3 12:27:54 2007 UTC (16 years, 4 months ago) by wiz
Branch: MAIN
Changes since 1.34: +2 -7
lines
Diff to previous 1.34 (colored)
Update to 7.1: Release 7.1 24-Apr-07 --------------------- There is only one new feature in this release: a linebreak setting of PCRE_NEWLINE_ANYCRLF. It is a cut-down version of PCRE_NEWLINE_ANY, which recognizes only CRLF, CR, and LF as linebreaks. A few bugs are fixed (see ChangeLog for details), but the major change is a complete re-implementation of the build system. This now has full Autotools support and so is now "standard" in some sense. It should help with compiling PCRE in a wide variety of environments. NOTE: when building shared libraries for Windows, three dlls are now built, called libpcre, libpcreposix, and libpcrecpp. Previously, everything was included in a single dll. Another important change is that the dftables auxiliary program is no longer compiled and run at "make" time by default. Instead, a default set of character tables (assuming ASCII coding) is used. If you want to use dftables to generate the character tables as previously, add --enable-rebuild-chartables to the "configure" command. You must do this if you are compiling PCRE to run on a system that uses EBCDIC code. There is a discussion about character tables in the README file. The default is not to use dftables so that that there is no problem when cross-compiling.
Revision 1.34 / (download) - annotate - [select for diffs], Sat Jan 6 23:45:42 2007 UTC (16 years, 8 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2007Q1-base,
pkgsrc-2007Q1
Changes since 1.33: +4 -3
lines
Diff to previous 1.33 (colored)
Update to 7.0: Release 7.0 23-Nov-06 --------------------- This release has a new major number because there have been some internal upheavals to facilitate the addition of new optimizations and other facilities, and to make subsequent maintenance and extension easier. Compilation is likely to be a bit slower, but there should be no major effect on runtime performance. Previously compiled patterns are NOT upwards compatible with this release. If you have saved compiled patterns from a previous release, you will have to re-compile them. Important changes that are visible to users are: 1. The Unicode property tables have been updated to Unicode 5.0.0, which adds some more scripts. 2. The option PCRE_NEWLINE_ANY causes PCRE to recognize any Unicode newline sequence as a newline. 3. The \R escape matches a single Unicode newline sequence as a single unit. 4. New features that will appear in Perl 5.10 are now in PCRE. These include alternative Perl syntax for named parentheses, and Perl syntax for recursion. 5. The C++ wrapper interface has been extended by the addition of a QuoteMeta function and the ability to allow copy construction and assignment.
Revision 1.33 / (download) - annotate - [select for diffs], Fri Nov 3 19:22:55 2006 UTC (16 years, 10 months ago) by joerg
Branch: MAIN
CVS Tags: pkgsrc-2006Q4-base,
pkgsrc-2006Q4
Changes since 1.32: +2 -1
lines
Diff to previous 1.32 (colored)
DESTDIR support.
Revision 1.32 / (download) - annotate - [select for diffs], Wed Oct 4 20:23:46 2006 UTC (16 years, 11 months ago) by rillig
Branch: MAIN
Changes since 1.31: +2 -2
lines
Diff to previous 1.31 (colored)
Fixed "test ==" in the configure script and a spelling mistake. It's PKGCONFIG_OVERRIDE, not PKG_CONFIG_OVERRIDE.
Revision 1.31 / (download) - annotate - [select for diffs], Mon Jul 10 16:10:44 2006 UTC (17 years, 2 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2006Q3-base,
pkgsrc-2006Q3
Changes since 1.30: +2 -2
lines
Diff to previous 1.30 (colored)
Update to 6.7: Release 6.7 04-Jul-06 --------------------- The main additions to this release are the ability to use the same name for multiple sets of parentheses, and support for CRLF line endings in both the library and pcregrep (and in pcretest for testing). Thanks to Ian Taylor, the stack usage for many kinds of pattern has been significantly reduced for certain subject strings.
Revision 1.30 / (download) - annotate - [select for diffs], Tue Feb 7 02:39:50 2006 UTC (17 years, 7 months ago) by gavan
Branch: MAIN
CVS Tags: pkgsrc-2006Q2-base,
pkgsrc-2006Q2,
pkgsrc-2006Q1-base,
pkgsrc-2006Q1
Changes since 1.29: +2 -2
lines
Diff to previous 1.29 (colored)
Update to 6.6: Version 6.6 06-Feb-06 --------------------- 1. Change 16(a) for 6.5 broke things, because PCRE_DATA_SCOPE was not defined in pcreposix.h. I have copied the definition from pcre.h. 2. Change 25 for 6.5 broke compilation in a build directory out-of-tree because pcre.h is no longer a built file. 3. Added Jeff Friedl's additional debugging patches to pcregrep. These are not normally included in the compiled code.
Revision 1.29 / (download) - annotate - [select for diffs], Sat Feb 4 17:13:49 2006 UTC (17 years, 7 months ago) by wiz
Branch: MAIN
Changes since 1.28: +2 -3
lines
Diff to previous 1.28 (colored)
Update to 6.5: Version 6.5 01-Feb-06 --------------------- 1. When using the partial match feature with pcre_dfa_exec(), it was not anchoring the second and subsequent partial matches at the new starting point. This could lead to incorrect results. For example, with the pattern /1234/, partially matching against "123" and then "a4" gave a match. 2. Changes to pcregrep: (a) All non-match returns from pcre_exec() were being treated as failures to match the line. Now, unless the error is PCRE_ERROR_NOMATCH, an error message is output. Some extra information is given for the PCRE_ERROR_MATCHLIMIT and PCRE_ERROR_RECURSIONLIMIT errors, which are probably the only errors that are likely to be caused by users (by specifying a regex that has nested indefinite repeats, for instance). If there are more than 20 of these errors, pcregrep is abandoned. (b) A binary zero was treated as data while matching, but terminated the output line if it was written out. This has been fixed: binary zeroes are now no different to any other data bytes. (c) Whichever of the LC_ALL or LC_CTYPE environment variables is set is used to set a locale for matching. The --locale=xxxx long option has been added (no short equivalent) to specify a locale explicitly on the pcregrep command, overriding the environment variables. (d) When -B was used with -n, some line numbers in the output were one less than they should have been. (e) Added the -o (--only-matching) option. (f) If -A or -C was used with -c (count only), some lines of context were accidentally printed for the final match. (g) Added the -H (--with-filename) option. (h) The combination of options -rh failed to suppress file names for files that were found from directory arguments. (i) Added the -D (--devices) and -d (--directories) options. (j) Added the -F (--fixed-strings) option. (k) Allow "-" to be used as a file name for -f as well as for a data file. (l) Added the --colo(u)r option. (m) Added Jeffrey Friedl's -S testing option, but within #ifdefs so that it is not present by default. 3. A nasty bug was discovered in the handling of recursive patterns, that is, items such as (?R) or (?1), when the recursion could match a number of alternatives. If it matched one of the alternatives, but subsequently, outside the recursion, there was a failure, the code tried to back up into the recursion. However, because of the way PCRE is implemented, this is not possible, and the result was an incorrect result from the match. In order to prevent this happening, the specification of recursion has been changed so that all such subpatterns are automatically treated as atomic groups. Thus, for example, (?R) is treated as if it were (?>(?R)). 4. I had overlooked the fact that, in some locales, there are characters for which isalpha() is true but neither isupper() nor islower() are true. In the fr_FR locale, for instance, the \xAA and \xBA characters (ordmasculine and ordfeminine) are like this. This affected the treatment of \w and \W when they appeared in character classes, but not when they appeared outside a character class. The bit map for "word" characters is now created separately from the results of isalnum() instead of just taking it from the upper, lower, and digit maps. (Plus the underscore character, of course.) 5. The above bug also affected the handling of POSIX character classes such as [[:alpha:]] and [[:alnum:]]. These do not have their own bit maps in PCRE's permanent tables. Instead, the bit maps for such a class were previously created as the appropriate unions of the upper, lower, and digit bitmaps. Now they are created by subtraction from the [[:word:]] class, which has its own bitmap. 6. The [[:blank:]] character class matches horizontal, but not vertical space. It is created by subtracting the vertical space characters (\x09, \x0a, \x0b, \x0c) from the [[:space:]] bitmap. Previously, however, the subtraction was done in the overall bitmap for a character class, meaning that a class such as [\x0c[:blank:]] was incorrect because \x0c would not be recognized. This bug has been fixed. 7. Patches from the folks at Google: (a) pcrecpp.cc: "to handle a corner case that may or may not happen in real life, but is still worth protecting against". (b) pcrecpp.cc: "corrects a bug when negative radixes are used with regular expressions". (c) pcre_scanner.cc: avoid use of std::count() because not all systems have it. (d) Split off pcrecpparg.h from pcrecpp.h and had the former built by "configure" and the latter not, in order to fix a problem somebody had with compiling the Arg class on HP-UX. (e) Improve the error-handling of the C++ wrapper a little bit. (f) New tests for checking recursion limiting. 8. The pcre_memmove() function, which is used only if the environment does not have a standard memmove() function (and is therefore rarely compiled), contained two bugs: (a) use of int instead of size_t, and (b) it was not returning a result (though PCRE never actually uses the result). 9. In the POSIX regexec() interface, if nmatch is specified as a ridiculously large number - greater than INT_MAX/(3*sizeof(int)) - REG_ESPACE is returned instead of calling malloc() with an overflowing number that would most likely cause subsequent chaos. 10. The debugging option of pcretest was not showing the NO_AUTO_CAPTURE flag. 11. The POSIX flag REG_NOSUB is now supported. When a pattern that was compiled with this option is matched, the nmatch and pmatch options of regexec() are ignored. 12. Added REG_UTF8 to the POSIX interface. This is not defined by POSIX, but is provided in case anyone wants to the the POSIX interface with UTF-8 strings. 13. Added CXXLDFLAGS to the Makefile parameters to provide settings only on the C++ linking (needed for some HP-UX environments). 14. Avoid compiler warnings in get_ucpname() when compiled without UCP support (unused parameter) and in the pcre_printint() function (omitted "default" switch label when the default is to do nothing). 15. Added some code to make it possible, when PCRE is compiled as a C++ library, to replace subject pointers for pcre_exec() with a smart pointer class, thus making it possible to process discontinuous strings. 16. The two macros PCRE_EXPORT and PCRE_DATA_SCOPE are confusing, and perform much the same function. They were added by different people who were trying to make PCRE easy to compile on non-Unix systems. It has been suggested that PCRE_EXPORT be abolished now that there is more automatic apparatus for compiling on Windows systems. I have therefore replaced it with PCRE_DATA_SCOPE. This is set automatically for Windows; if not set it defaults to "extern" for C or "extern C" for C++, which works fine on Unix-like systems. It is now possible to override the value of PCRE_DATA_ SCOPE with something explicit in config.h. In addition: (a) pcreposix.h still had just "extern" instead of either of these macros; I have replaced it with PCRE_DATA_SCOPE. (b) Functions such as _pcre_xclass(), which are internal to the library, but external in the C sense, all had PCRE_EXPORT in their definitions. This is apparently wrong for the Windows case, so I have removed it. (It makes no difference on Unix-like systems.) 17. Added a new limit, MATCH_LIMIT_RECURSION, which limits the depth of nesting of recursive calls to match(). This is different to MATCH_LIMIT because that limits the total number of calls to match(), not all of which increase the depth of recursion. Limiting the recursion depth limits the amount of stack (or heap if NO_RECURSE is set) that is used. The default can be set when PCRE is compiled, and changed at run time. A patch from Google adds this functionality to the C++ interface. 18. Changes to the handling of Unicode character properties: (a) Updated the table to Unicode 4.1.0. (b) Recognize characters that are not in the table as "Cn" (undefined). (c) I revised the way the table is implemented to a much improved format which includes recognition of ranges. It now supports the ranges that are defined in UnicodeData.txt, and it also amalgamates other characters into ranges. This has reduced the number of entries in the table from around 16,000 to around 3,000, thus reducing its size considerably. I realized I did not need to use a tree structure after all - a binary chop search is just as efficient. Having reduced the number of entries, I extended their size from 6 bytes to 8 bytes to allow for more data. (d) Added support for Unicode script names via properties such as \p{Han}. 19. In UTF-8 mode, a backslash followed by a non-Ascii character was not matching that character. 20. When matching a repeated Unicode property with a minimum greater than zero, (for example \pL{2,}), PCRE could look past the end of the subject if it reached it while seeking the minimum number of characters. This could happen only if some of the characters were more than one byte long, because there is a check for at least the minimum number of bytes. 21. Refactored the implementation of \p and \P so as to be more general, to allow for more different types of property in future. This has changed the compiled form incompatibly. Anybody with saved compiled patterns that use \p or \P will have to recompile them. 22. Added "Any" and "L&" to the supported property types. 23. Recognize \x{...} as a code point specifier, even when not in UTF-8 mode, but give a compile time error if the value is greater than 0xff. 24. The man pages for pcrepartial, pcreprecompile, and pcre_compile2 were accidentally not being installed or uninstalled. 25. The pcre.h file was built from pcre.h.in, but the only changes that were made were to insert the current release number. This seemed silly, because it made things harder for people building PCRE on systems that don't run "configure". I have turned pcre.h into a distributed file, no longer built by "configure", with the version identification directly included. There is no longer a pcre.h.in file. However, this change necessitated a change to the pcre-config script as well. It is built from pcre-config.in, and one of the substitutions was the release number. I have updated configure.ac so that ./configure now finds the release number by grepping pcre.h. 26. Added the ability to run the tests under valgrind.
Revision 1.28 / (download) - annotate - [select for diffs], Mon Dec 5 20:50:06 2005 UTC (17 years, 9 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2005Q4-base,
pkgsrc-2005Q4
Changes since 1.27: +2 -2
lines
Diff to previous 1.27 (colored)
Fixed pkglint warnings. The warnings are mostly quoting issues, for example MAKE_ENV+=FOO=${BAR} is changed to MAKE_ENV+=FOO=${BAR:Q}. Some other changes are outlined in http://mail-index.netbsd.org/tech-pkg/2005/12/02/0034.html
Revision 1.27 / (download) - annotate - [select for diffs], Fri Oct 14 09:37:46 2005 UTC (17 years, 11 months ago) by adam
Branch: MAIN
Changes since 1.26: +4 -2
lines
Diff to previous 1.26 (colored)
Enable-utf8 for www/bluefish
Revision 1.26 / (download) - annotate - [select for diffs], Tue Sep 27 20:21:50 2005 UTC (17 years, 11 months ago) by wiz
Branch: MAIN
Changes since 1.25: +2 -2
lines
Diff to previous 1.25 (colored)
Update to 6.4: Version 6.4 05-Sep-05 --------------------- 1. Change 6.0/10/(l) to pcregrep introduced a bug that caused separator lines "--" to be printed when multiple files were scanned, even when none of the -A, -B, or -C options were used. This is not compatible with Gnu grep, so I consider it to be a bug, and have restored the previous behaviour. 2. A couple of code tidies to get rid of compiler warnings. 3. The pcretest program used to cheat by referring to symbols in the library whose names begin with _pcre_. These are internal symbols that are not really supposed to be visible externally, and in some environments it is possible to suppress them. The cheating is now confined to including certain files from the library's source, which is a bit cleaner. 4. Renamed pcre.in as pcre.h.in to go with pcrecpp.h.in; it also makes the file's purpose clearer. 5. Reorganized pcre_ucp_findchar().
Revision 1.25 / (download) - annotate - [select for diffs], Mon Sep 5 15:56:53 2005 UTC (18 years ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2005Q3-base,
pkgsrc-2005Q3
Changes since 1.24: +3 -5
lines
Diff to previous 1.24 (colored)
Update to 6.3. Take maintainership. Version 6.3 15-Aug-05 --------------------- 1. The file libpcre.pc.in did not have general read permission in the tarball. 2. There were some problems when building without C++ support: (a) If C++ support was not built, "make install" and "make test" still tried to test it. (b) There were problems when the value of CXX was explicitly set. Some changes have been made to try to fix these, and ... (c) --disable-cpp can now be used to explicitly disable C++ support. (d) The use of @CPP_OBJ@ directly caused a blank line preceded by a backslash in a target when C++ was disabled. This confuses some versions of "make", apparently. Using an intermediate variable solves this. (Same for CPP_LOBJ.) 3. $(LINK_FOR_BUILD) now includes $(CFLAGS_FOR_BUILD) and $(LINK) (non-Windows) now includes $(CFLAGS) because these flags are sometimes necessary on certain architectures. 4. Added a setting of -export-symbols-regex to the link command to remove those symbols that are exported in the C sense, but actually are local within the library, and not documented. Their names all begin with "_pcre_". This is not a perfect job, because (a) we have to except some symbols that pcretest ("illegally") uses, and (b) the facility isn't always available (and never for static libraries). I have made a note to try to find a way round (a) in the future.
Revision 1.21.2.2 / (download) - annotate - [select for diffs], Wed Aug 31 19:46:14 2005 UTC (18 years ago) by snj
Branch: pkgsrc-2005Q2
Changes since 1.21.2.1: +6 -1
lines
Diff to previous 1.21.2.1 (colored) to branchpoint 1.21 (colored) next main 1.22 (colored)
Pullup ticket 726 - requested by S.P.Zeidler build fix for pcre Revision pulled up: - pkgsrc/devel/pcre/Makefile 1.24 Module Name: pkgsrc Committed By: spz Date: Wed Aug 31 16:55:05 UTC 2005 Modified Files: pkgsrc/devel/pcre: Makefile Log Message: added a workaround for core-dumping f77 on sparc64 (makes the package work on NetBSD/sparc64 1.6.x)
Revision 1.24 / (download) - annotate - [select for diffs], Wed Aug 31 16:55:05 2005 UTC (18 years ago) by spz
Branch: MAIN
Changes since 1.23: +6 -1
lines
Diff to previous 1.23 (colored)
added a workaround for core-dumping f77 on sparc64 (makes the package work on NetBSD/sparc64 1.6.x)
Revision 1.21.2.1 / (download) - annotate - [select for diffs], Wed Aug 31 08:48:45 2005 UTC (18 years ago) by snj
Branch: pkgsrc-2005Q2
Changes since 1.21: +5 -3
lines
Diff to previous 1.21 (colored)
Pullup ticket 724 - requested by Lubomir Sedlacik security update for pcre Revisions pulled up: - pkgsrc/devel/pcre/Makefile 1.22-1.23 - pkgsrc/devel/pcre/PLIST 1.6 - pkgsrc/devel/pcre/distinfo 1.13 - pkgsrc/devel/pcre/patches/patch-aa removed - pkgsrc/devel/pcre/buildlink3.mk 1.7 Module Name: pkgsrc Committed By: wiz Date: Wed Aug 3 17:43:13 UTC 2005 Modified Files: pkgsrc/devel/pcre: Makefile PLIST distinfo Removed Files: pkgsrc/devel/pcre/patches: patch-aa Log Message: Update to 6.2: Version 6.2 01-Aug-05 --------------------- 1. There was no test for integer overflow of quantifier values. A construction such as {1111111111111111} would give undefined results. What is worse, if a minimum quantifier for a parenthesized subpattern overflowed and became negative, the calculation of the memory size went wrong. This could have led to memory overwriting. 2. Building PCRE using VPATH was broken. Hopefully it is now fixed. 3. Added "b" to the 2nd argument of fopen() in dftables.c, for non-Unix-like operating environments where this matters. 4. Applied Giuseppe Maxia's patch to add additional features for controlling PCRE options from within the C++ wrapper. 5. Named capturing subpatterns were not being correctly counted when a pattern was compiled. This caused two problems: (a) If there were more than 100 such subpatterns, the calculation of the memory needed for the whole compiled pattern went wrong, leading to an overflow error. (b) Numerical back references of the form \12, where the number was greater than 9, were not recognized as back references, even though there were sufficient previous subpatterns. 6. Two minor patches to pcrecpp.cc in order to allow it to compile on older versions of gcc, e.g. 2.95.4. Version 6.1 21-Jun-05 --------------------- 1. There was one reference to the variable "posix" in pcretest.c that was not surrounded by "#if !defined NOPOSIX". 2. Make it possible to compile pcretest without DFA support, UTF8 support, or the cross-check on the old pcre_info() function, for the benefit of the cut-down version of PCRE that is currently imported into Exim. 3. A (silly) pattern starting with (?i)(?-i) caused an internal space allocation error. I've done the easy fix, which wastes 2 bytes for sensible patterns that start (?i) but I don't think that matters. The use of (?i) is just an example; this all applies to the other options as well. 4. Since libtool seems to echo the compile commands it is issuing, the output from "make" can be reduced a bit by putting "@" in front of each libtool compile command. 5. Patch from the folks at Google for configure.in to be a bit more thorough in checking for a suitable C++ installation before trying to compile the C++ stuff. This should fix a reported problem when a compiler was present, but no suitable headers. 6. The man pages all had just "PCRE" as their title. I have changed them to be the relevant file name. I have also arranged that these names are retained in the file doc/pcre.txt, which is a concatenation in text format of all the man pages except the little individual ones for each function. 7. The NON-UNIX-USE file had not been updated for the different set of source files that come with release 6. I also added a few comments about the C++ wrapper. Version 6.0 07-Jun-05 --------------------- 1. Some minor internal re-organization to help with my DFA experiments. 2. Some missing #ifdef SUPPORT_UCP conditionals in pcretest and printint that didn't matter for the library itself when fully configured, but did matter when compiling without UCP support, or within Exim, where the ucp files are not imported. 3. Refactoring of the library code to split up the various functions into different source modules. The addition of the new DFA matching code (see below) to a single monolithic source would have made it really too unwieldy, quite apart from causing all the code to be include in a statically linked application, when only some functions are used. This is relevant even without the DFA addition now that patterns can be compiled in one application and matched in another. The downside of splitting up is that there have to be some external functions and data tables that are used internally in different modules of the library but which are not part of the API. These have all had their names changed to start with "_pcre_" so that they are unlikely to clash with other external names. 4. Added an alternate matching function, pcre_dfa_exec(), which matches using a different (DFA) algorithm. Although it is slower than the original function, it does have some advantages for certain types of matching problem. 5. Upgrades to pcretest in order to test the features of pcre_dfa_exec(), including restarting after a partial match. 6. A patch for pcregrep that defines INVALID_FILE_ATTRIBUTES if it is not defined when compiling for Windows was sent to me. I have put it into the code, though I have no means of testing or verifying it. 7. Added the pcre_refcount() auxiliary function. 8. Added the PCRE_FIRSTLINE option. This constrains an unanchored pattern to match before or at the first newline in the subject string. In pcretest, the /f option on a pattern can be used to set this. 9. A repeated \w when used in UTF-8 mode with characters greater than 256 would behave wrongly. This has been present in PCRE since release 4.0. 10. A number of changes to the pcregrep command: (a) Refactored how -x works; insert ^(...)$ instead of setting PCRE_ANCHORED and checking the length, in preparation for adding something similar for -w. (b) Added the -w (match as a word) option. (c) Refactored the way lines are read and buffered so as to have more than one at a time available. (d) Implemented a pcregrep test script. (e) Added the -M (multiline match) option. This allows patterns to match over several lines of the subject. The buffering ensures that at least 8K, or the rest of the document (whichever is the shorter) is available for matching (and similarly the previous 8K for lookbehind assertions). (f) Changed the --help output so that it now says -w, --word-regex(p) instead of two lines, one with "regex" and the other with "regexp" because that confused at least one person since the short forms are the same. (This required a bit of code, as the output is generated automatically from a table. It wasn't just a text change.) (g) -- can be used to terminate pcregrep options if the next thing isn't an option but starts with a hyphen. Could be a pattern or a path name starting with a hyphen, for instance. (h) "-" can be given as a file name to represent stdin. (i) When file names are being printed, "(standard input)" is used for the standard input, for compatibility with GNU grep. Previously "<stdin>" was used. (j) The option --label=xxx can be used to supply a name to be used for stdin when file names are being printed. There is no short form. (k) Re-factored the options decoding logic because we are going to add two more options that take data. Such options can now be given in four different ways, e.g. "-fname", "-f name", "--file=name", "--file name". (l) Added the -A, -B, and -C options for requesting that lines of context around matches be printed. (m) Added the -L option to print the names of files that do not contain any matching lines, that is, the complement of -l. (n) The return code is 2 if any file cannot be opened, but pcregrep does continue to scan other files. (o) The -s option was incorrectly implemented. For compatibility with other greps, it now suppresses the error message for a non-existent or non-accessible file (but not the return code). There is a new option called -q that suppresses the output of matching lines, which was what -s was previously doing. (p) Added --include and --exclude options to specify files for inclusion and exclusion when recursing. 11. The Makefile was not using the Autoconf-supported LDFLAGS macro properly. Hopefully, it now does. 12. Missing cast in pcre_study(). 13. Added an "uninstall" target to the makefile. 14. Replaced "extern" in the function prototypes in Makefile.in with "PCRE_DATA_SCOPE", which defaults to 'extern' or 'extern "C"' in the Unix world, but is set differently for Windows. 15. Added a second compiling function called pcre_compile2(). The only difference is that it has an extra argument, which is a pointer to an integer error code. When there is a compile-time failure, this is set non-zero, in addition to the error test pointer being set to point to an error message. The new argument may be NULL if no error number is required (but then you may as well call pcre_compile(), which is now just a wrapper). This facility is provided because some applications need a numeric error indication, but it has also enabled me to tidy up the way compile-time errors are handled in the POSIX wrapper. 16. Added VPATH=.libs to the makefile; this should help when building with one prefix path and installing with another. (Or so I'm told by someone who knows more about this stuff than I do.) 17. Added a new option, REG_DOTALL, to the POSIX function regcomp(). This passes PCRE_DOTALL to the pcre_compile() function, making the "." character match everything, including newlines. This is not POSIX-compatible, but somebody wanted the feature. From pcretest it can be activated by using both the P and the s flags. 18. AC_PROG_LIBTOOL appeared twice in Makefile.in. Removed one. 19. libpcre.pc was being incorrectly installed as executable. 20. A couple of places in pcretest check for end-of-line by looking for '\n'; it now also looks for '\r' so that it will work unmodified on Windows. 21. Added Google's contributed C++ wrapper to the distribution. 22. Added some untidy missing memory free() calls in pcretest, to keep Electric Fence happy when testing. --- Module Name: pkgsrc Committed By: wiz Date: Thu Aug 4 09:52:54 UTC 2005 Modified Files: pkgsrc/devel/pcre: Makefile Log Message: Automatic build of the cpp library is currently broken, build it manually. --- Module Name: pkgsrc Committed By: salo Date: Tue Aug 30 12:34:07 UTC 2005 Modified Files: pkgsrc/devel/pcre: buildlink3.mk Log Message: Bump BUILDLINK_RECOMMENDED for latest update with security fixes.
Revision 1.23 / (download) - annotate - [select for diffs], Thu Aug 4 09:52:54 2005 UTC (18 years, 1 month ago) by wiz
Branch: MAIN
Changes since 1.22: +3 -1
lines
Diff to previous 1.22 (colored)
Automatic build of the cpp library is currently broken, build it manually.
Revision 1.22 / (download) - annotate - [select for diffs], Wed Aug 3 17:43:13 2005 UTC (18 years, 1 month ago) by wiz
Branch: MAIN
Changes since 1.21: +3 -3
lines
Diff to previous 1.21 (colored)
Update to 6.2: Version 6.2 01-Aug-05 --------------------- 1. There was no test for integer overflow of quantifier values. A construction such as {1111111111111111} would give undefined results. What is worse, if a minimum quantifier for a parenthesized subpattern overflowed and became negative, the calculation of the memory size went wrong. This could have led to memory overwriting. 2. Building PCRE using VPATH was broken. Hopefully it is now fixed. 3. Added "b" to the 2nd argument of fopen() in dftables.c, for non-Unix-like operating environments where this matters. 4. Applied Giuseppe Maxia's patch to add additional features for controlling PCRE options from within the C++ wrapper. 5. Named capturing subpatterns were not being correctly counted when a pattern was compiled. This caused two problems: (a) If there were more than 100 such subpatterns, the calculation of the memory needed for the whole compiled pattern went wrong, leading to an overflow error. (b) Numerical back references of the form \12, where the number was greater than 9, were not recognized as back references, even though there were sufficient previous subpatterns. 6. Two minor patches to pcrecpp.cc in order to allow it to compile on older versions of gcc, e.g. 2.95.4. Version 6.1 21-Jun-05 --------------------- 1. There was one reference to the variable "posix" in pcretest.c that was not surrounded by "#if !defined NOPOSIX". 2. Make it possible to compile pcretest without DFA support, UTF8 support, or the cross-check on the old pcre_info() function, for the benefit of the cut-down version of PCRE that is currently imported into Exim. 3. A (silly) pattern starting with (?i)(?-i) caused an internal space allocation error. I've done the easy fix, which wastes 2 bytes for sensible patterns that start (?i) but I don't think that matters. The use of (?i) is just an example; this all applies to the other options as well. 4. Since libtool seems to echo the compile commands it is issuing, the output from "make" can be reduced a bit by putting "@" in front of each libtool compile command. 5. Patch from the folks at Google for configure.in to be a bit more thorough in checking for a suitable C++ installation before trying to compile the C++ stuff. This should fix a reported problem when a compiler was present, but no suitable headers. 6. The man pages all had just "PCRE" as their title. I have changed them to be the relevant file name. I have also arranged that these names are retained in the file doc/pcre.txt, which is a concatenation in text format of all the man pages except the little individual ones for each function. 7. The NON-UNIX-USE file had not been updated for the different set of source files that come with release 6. I also added a few comments about the C++ wrapper. Version 6.0 07-Jun-05 --------------------- 1. Some minor internal re-organization to help with my DFA experiments. 2. Some missing #ifdef SUPPORT_UCP conditionals in pcretest and printint that didn't matter for the library itself when fully configured, but did matter when compiling without UCP support, or within Exim, where the ucp files are not imported. 3. Refactoring of the library code to split up the various functions into different source modules. The addition of the new DFA matching code (see below) to a single monolithic source would have made it really too unwieldy, quite apart from causing all the code to be include in a statically linked application, when only some functions are used. This is relevant even without the DFA addition now that patterns can be compiled in one application and matched in another. The downside of splitting up is that there have to be some external functions and data tables that are used internally in different modules of the library but which are not part of the API. These have all had their names changed to start with "_pcre_" so that they are unlikely to clash with other external names. 4. Added an alternate matching function, pcre_dfa_exec(), which matches using a different (DFA) algorithm. Although it is slower than the original function, it does have some advantages for certain types of matching problem. 5. Upgrades to pcretest in order to test the features of pcre_dfa_exec(), including restarting after a partial match. 6. A patch for pcregrep that defines INVALID_FILE_ATTRIBUTES if it is not defined when compiling for Windows was sent to me. I have put it into the code, though I have no means of testing or verifying it. 7. Added the pcre_refcount() auxiliary function. 8. Added the PCRE_FIRSTLINE option. This constrains an unanchored pattern to match before or at the first newline in the subject string. In pcretest, the /f option on a pattern can be used to set this. 9. A repeated \w when used in UTF-8 mode with characters greater than 256 would behave wrongly. This has been present in PCRE since release 4.0. 10. A number of changes to the pcregrep command: (a) Refactored how -x works; insert ^(...)$ instead of setting PCRE_ANCHORED and checking the length, in preparation for adding something similar for -w. (b) Added the -w (match as a word) option. (c) Refactored the way lines are read and buffered so as to have more than one at a time available. (d) Implemented a pcregrep test script. (e) Added the -M (multiline match) option. This allows patterns to match over several lines of the subject. The buffering ensures that at least 8K, or the rest of the document (whichever is the shorter) is available for matching (and similarly the previous 8K for lookbehind assertions). (f) Changed the --help output so that it now says -w, --word-regex(p) instead of two lines, one with "regex" and the other with "regexp" because that confused at least one person since the short forms are the same. (This required a bit of code, as the output is generated automatically from a table. It wasn't just a text change.) (g) -- can be used to terminate pcregrep options if the next thing isn't an option but starts with a hyphen. Could be a pattern or a path name starting with a hyphen, for instance. (h) "-" can be given as a file name to represent stdin. (i) When file names are being printed, "(standard input)" is used for the standard input, for compatibility with GNU grep. Previously "<stdin>" was used. (j) The option --label=xxx can be used to supply a name to be used for stdin when file names are being printed. There is no short form. (k) Re-factored the options decoding logic because we are going to add two more options that take data. Such options can now be given in four different ways, e.g. "-fname", "-f name", "--file=name", "--file name". (l) Added the -A, -B, and -C options for requesting that lines of context around matches be printed. (m) Added the -L option to print the names of files that do not contain any matching lines, that is, the complement of -l. (n) The return code is 2 if any file cannot be opened, but pcregrep does continue to scan other files. (o) The -s option was incorrectly implemented. For compatibility with other greps, it now suppresses the error message for a non-existent or non- accessible file (but not the return code). There is a new option called -q that suppresses the output of matching lines, which was what -s was previously doing. (p) Added --include and --exclude options to specify files for inclusion and exclusion when recursing. 11. The Makefile was not using the Autoconf-supported LDFLAGS macro properly. Hopefully, it now does. 12. Missing cast in pcre_study(). 13. Added an "uninstall" target to the makefile. 14. Replaced "extern" in the function prototypes in Makefile.in with "PCRE_DATA_SCOPE", which defaults to 'extern' or 'extern "C"' in the Unix world, but is set differently for Windows. 15. Added a second compiling function called pcre_compile2(). The only difference is that it has an extra argument, which is a pointer to an integer error code. When there is a compile-time failure, this is set non-zero, in addition to the error test pointer being set to point to an error message. The new argument may be NULL if no error number is required (but then you may as well call pcre_compile(), which is now just a wrapper). This facility is provided because some applications need a numeric error indication, but it has also enabled me to tidy up the way compile-time errors are handled in the POSIX wrapper. 16. Added VPATH=.libs to the makefile; this should help when building with one prefix path and installing with another. (Or so I'm told by someone who knows more about this stuff than I do.) 17. Added a new option, REG_DOTALL, to the POSIX function regcomp(). This passes PCRE_DOTALL to the pcre_compile() function, making the "." character match everything, including newlines. This is not POSIX-compatible, but somebody wanted the feature. From pcretest it can be activated by using both the P and the s flags. 18. AC_PROG_LIBTOOL appeared twice in Makefile.in. Removed one. 19. libpcre.pc was being incorrectly installed as executable. 20. A couple of places in pcretest check for end-of-line by looking for '\n'; it now also looks for '\r' so that it will work unmodified on Windows. 21. Added Google's contributed C++ wrapper to the distribution. 22. Added some untidy missing memory free() calls in pcretest, to keep Electric Fence happy when testing.
Revision 1.21 / (download) - annotate - [select for diffs], Mon Apr 11 21:45:36 2005 UTC (18 years, 5 months ago) by tv
Branch: MAIN
CVS Tags: pkgsrc-2005Q2-base
Branch point for: pkgsrc-2005Q2
Changes since 1.20: +1 -2
lines
Diff to previous 1.20 (colored)
Remove USE_BUILDLINK3 and NO_BUILDLINK; these are no longer used.
Revision 1.20 / (download) - annotate - [select for diffs], Sun Oct 3 00:13:32 2004 UTC (18 years, 11 months ago) by tv
Branch: MAIN
CVS Tags: pkgsrc-2005Q1-base,
pkgsrc-2005Q1,
pkgsrc-2004Q4-base,
pkgsrc-2004Q4
Changes since 1.19: +2 -1
lines
Diff to previous 1.19 (colored)
Libtool fix for PR pkg/26633, and other issues. Update libtool to 1.5.10 in the process. (More information on tech-pkg.) Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and installing .la files. Bump PKGREVISION (only) of all packages depending directly on the above via a buildlink3 include.
Revision 1.19 / (download) - annotate - [select for diffs], Tue Sep 28 15:59:49 2004 UTC (18 years, 11 months ago) by wiz
Branch: MAIN
Changes since 1.18: +4 -3
lines
Diff to previous 1.18 (colored)
Update to 5.0: Release 5.0 13-Sep-04 --------------------- The licence under which PCRE is released has been changed to the more conventional "BSD" licence. In the code, some bugs have been fixed, and there are also some major changes in this release (which is why I've increased the number to 5.0). Some changes are internal rearrangements, and some provide a number of new facilities. The new features are: 1. There's an "automatic callout" feature that inserts callouts before every item in the regex, and there's a new callout field that gives the position in the pattern - useful for debugging and tracing. 2. The extra_data structure can now be used to pass in a set of character tables at exec time. This is useful if compiled regex are saved and re-used at a later time when the tables may not be at the same address. If the default internal tables are used, the pointer saved with the compiled pattern is now set to NULL, which means that you don't need to do anything special unless you are using custom tables. 3. It is possible, with some restrictions on the content of the regex, to request "partial" matching. A special return code is given if all of the subject string matched part of the regex. This could be useful for testing an input field as it is being typed. 4. There is now some optional support for Unicode character properties, which means that the patterns items such as \p{Lu} and \X can now be used. Only the general category properties are supported. If PCRE is compiled with this support, an additional 90K data structure is include, which increases the size of the library dramatically. 5. There is support for saving compiled patterns and re-using them later. 6. There is support for running regular expressions that were compiled on a different host with the opposite endianness. 7. The pcretest program has been extended to accommodate the new features. The main internal rearrangement is that sequences of literal characters are no longer handled as strings. Instead, each character is handled on its own. This makes some UTF-8 handling easier, and makes the support of partial matching possible. Compiled patterns containing long literal strings will be larger as a result of this change; I hope that performance will not be much affected.
Revision 1.18 / (download) - annotate - [select for diffs], Sat Feb 14 17:21:39 2004 UTC (19 years, 7 months ago) by jlam
Branch: MAIN
CVS Tags: pkgsrc-2004Q3-base,
pkgsrc-2004Q3,
pkgsrc-2004Q2-base,
pkgsrc-2004Q2,
pkgsrc-2004Q1-base,
pkgsrc-2004Q1
Changes since 1.17: +1 -3
lines
Diff to previous 1.17 (colored)
LIBTOOL_OVERRIDE and SHLIBTOOL_OVERRIDE are now lists of shell globs relative to ${WRKSRC}. Remove redundant LIBTOOL_OVERRIDE settings that are automatically handled by the default setting in bsd.pkg.mk.
Revision 1.17 / (download) - annotate - [select for diffs], Mon Jan 5 23:22:51 2004 UTC (19 years, 8 months ago) by jlam
Branch: MAIN
Changes since 1.16: +4 -2
lines
Diff to previous 1.16 (colored)
bl3ify
Revision 1.16 / (download) - annotate - [select for diffs], Fri Dec 12 22:33:36 2003 UTC (19 years, 9 months ago) by jmmv
Branch: MAIN
Changes since 1.15: +2 -2
lines
Diff to previous 1.15 (colored)
Update to 4.5: 1. There has been some re-arrangement of the code for the match() function so that it can be compiled in a version that does not call itself recursively. Instead, it keeps those local variables that need separate instances for each "recursion" in a frame on the heap, and gets/frees frames whenever it needs to "recurse". Keeping track of where control must go is done by means of setjmp/longjmp. The whole thing is implemented by a set of macros that hide most of the details from the main code, and operates only if NO_RECURSE is defined while compiling pcre.c. If PCRE is built using the "configure" mechanism, "--disable-stack-for-recursion" turns on this way of operating. To make it easier for callers to provide specially tailored get/free functions for this usage, two new functions, pcre_stack_malloc, and pcre_stack_free, are used. They are always called in strict stacking order, and the size of block requested is always the same. The PCRE_CONFIG_STACKRECURSE info parameter can be used to find out whether PCRE has been compiled to use the stack or the heap for recursion. The -C option of pcretest uses this to show which version is compiled. A new data escape \S, is added to pcretest; it causes the amounts of store obtained and freed by both kinds of malloc/free at match time to be added to the output. 2. Changed the locale test to use "fr_FR" instead of "fr" because that's what's available on my current Linux desktop machine. 3. When matching a UTF-8 string, the test for a valid string at the start has been extended. If start_offset is not zero, PCRE now checks that it points to a byte that is the start of a UTF-8 character. If not, it returns PCRE_ERROR_BADUTF8_OFFSET (-11). Note: the whole string is still checked; this is necessary because there may be backward assertions in the pattern. When matching the same subject several times, it may save resources to use PCRE_NO_UTF8_CHECK on all but the first call if the string is long. 4. The code for checking the validity of UTF-8 strings has been tightened so that it rejects (a) strings containing 0xfe or 0xff bytes and (b) strings containing "overlong sequences". 5. Fixed a bug (appearing twice) that I could not find any way of exploiting! I had written "if ((digitab[*p++] && chtab_digit) == 0)" where the "&&" should have been "&", but it just so happened that all the cases this let through by mistake were picked up later in the function. 6. I had used a variable called "isblank" - this is a C99 function, causing some compilers to warn. To avoid this, I renamed it (as "blankclass"). 7. Cosmetic: (a) only output another newline at the end of pcretest if it is prompting; (b) run "./pcretest /dev/null" at the start of the test script so the version is shown; (c) stop "make test" echoing "./RunTest". 8. Added patches from David Burgess to enable PCRE to run on EBCDIC systems. 9. The prototype for memmove() for systems that don't have it was using size_t, but the inclusion of the header that defines size_t was later. I've moved the #includes for the C headers earlier to avoid this. 10. Added some adjustments to the code to make it easier to compiler on certain special systems: (a) Some "const" qualifiers were missing. (b) Added the macro EXPORT before all exported functions; by default this is defined to be empty. (c) Changed the dftables auxiliary program (that builds chartables.c) so that it reads its output file name as an argument instead of writing to the standard output and assuming this can be redirected. 11. In UTF-8 mode, if a recursive reference (e.g. (?1)) followed a character class containing characters with values greater than 255, PCRE compilation went into a loop. 12. A recursive reference to a subpattern that was within another subpattern that had a minimum quantifier of zero caused PCRE to crash. For example, (x(y(?2))z)? provoked this bug with a subject that got as far as the recursion. If the recursively-called subpattern itself had a zero repeat, that was OK. 13. In pcretest, the buffer for reading a data line was set at 30K, but the buffer into which it was copied (for escape processing) was still set at 1024, so long lines caused crashes. 14. A pattern such as /[ab]{1,3}+/ failed to compile, giving the error "internal error: code overflow...". This applied to any character class that was followed by a possessive quantifier. 15. Modified the Makefile to add libpcre.la as a prerequisite for libpcreposix.la because I was told this is needed for a parallel build to work. 16. If a pattern that contained .* following optional items at the start was studied, the wrong optimizing data was generated, leading to matching errors. For example, studying /[ab]*.*c/ concluded, erroneously, that any matching string must start with a or b or c. The correct conclusion for this pattern is that a match can start with any character.
Revision 1.15 / (download) - annotate - [select for diffs], Sun Aug 31 11:28:48 2003 UTC (20 years ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2003Q4-base,
pkgsrc-2003Q4
Changes since 1.14: +2 -2
lines
Diff to previous 1.14 (colored)
Update to 4.4: 1. In UTF-8 mode, a character class containing characters with values between 127 and 255 was not handled correctly if the compiled pattern was studied. In fixing this, I have also improved the studying algorithm for such classes (slightly). 2. Three internal functions had redundant arguments passed to them. Removal might give a very teeny performance improvement. 3. Documentation bug: the value of the capture_top field in a callout is *one more than* the number of the hightest numbered captured substring. 4. The Makefile linked pcretest and pcregrep with -lpcre, which could result in incorrectly linking with a previously installed version. They now link explicitly with libpcre.la. 5. configure.in no longer needs to recognize Cygwin specially. 6. A problem in pcre.in for Windows platforms is fixed. 7. If a pattern was successfully studied, and the -d (or /D) flag was given to pcretest, it used to include the size of the study block as part of its output. Unfortunately, the structure contains a field that has a different size on different hardware architectures. This meant that the tests that showed this size failed. As the block is currently always of a fixed size, this information isn't actually particularly useful in pcretest output, so I have just removed it. 8. Three pre-processor statements accidentally did not start in column 1. Sadly, there are *still* compilers around that complain, even though standard C has not required this for well over a decade. Sigh. 9. In pcretest, the code for checking callouts passed small integers in the callout_data field, which is a void * field. However, some picky compilers complained about the casts involved for this on 64-bit systems. Now pcretest passes the address of the small integer instead, which should get rid of the warnings. 10. By default, when in UTF-8 mode, PCRE now checks for valid UTF-8 strings at both compile and run time, and gives an error if an invalid UTF-8 sequence is found. There is a option for disabling this check in cases where the string is known to be correct and/or the maximum performance is wanted. 11. In response to a bug report, I changed one line in Makefile.in from -Wl,--out-implib,.libs/lib@WIN_PREFIX@pcreposix.dll.a \ to -Wl,--out-implib,.libs/@WIN_PREFIX@libpcreposix.dll.a \ to look similar to other lines, but I have no way of telling whether this is the right thing to do, as I do not use Windows. No doubt I'll get told if it's wrong...
Revision 1.14 / (download) - annotate - [select for diffs], Tue Aug 5 10:18:39 2003 UTC (20 years, 1 month ago) by wiz
Branch: MAIN
Changes since 1.13: +2 -3
lines
Diff to previous 1.13 (colored)
Update to 4.3. Version 4.3 21-May-03 Refactoring for code improvements. POSIX compat fix (constification). UTF-8 fixes. Version 4.2 14-Apr-03 Build fixes. Removed some compiler warnings. UTF-8 fixes. Version 4.1 12-Mar-03 Compilation fixes. A bug fix, and two optimization fixes. Highlights of the 4.0 release: 1. Support for Perl's \Q...\E escapes. 2. "Possessive quantifiers" ?+, *+, ++, and {,}+ which come from Sun's Java package. They provide some syntactic sugar for simple cases of "atomic grouping". 3. Support for the \G assertion. It is true when the current matching position is at the start point of the match. 4. A new feature that provides some of the functionality that Perl provides with (?{...}). The facility is termed a "callout". The way it is done in PCRE is for the caller to provide an optional function, by setting pcre_callout to its entry point. To get the function called, the regex must include (?C) at appropriate points. 5. Support for recursive calls to individual subpatterns. This makes it really easy to get totally confused. 6. Support for named subpatterns. The Python syntax (?P<name>...) is used to name a group. 7. Several extensions to UTF-8 support; it is now fairly complete. There is an option for pcregrep to make it operate in UTF-8 mode. 8. The single man page has been split into a number of separate man pages. These also give rise to individual HTML pages which are put in a separate directory. There is an index.html page that lists them all. Some hyperlinking between the pages has been installed.
Revision 1.13 / (download) - annotate - [select for diffs], Wed Jul 30 21:57:17 2003 UTC (20 years, 1 month ago) by heinz
Branch: MAIN
Changes since 1.12: +3 -1
lines
Diff to previous 1.12 (colored)
Add TEST_TARGET
Revision 1.12 / (download) - annotate - [select for diffs], Thu Jul 17 21:33:02 2003 UTC (20 years, 2 months ago) by grant
Branch: MAIN
Changes since 1.11: +2 -2
lines
Diff to previous 1.11 (colored)
s/netbsd.org/NetBSD.org/
Revision 1.11 / (download) - annotate - [select for diffs], Mon Dec 30 18:08:01 2002 UTC (20 years, 8 months ago) by cjep
Branch: MAIN
CVS Tags: netbsd-1-6-1-base,
netbsd-1-6-1
Changes since 1.10: +2 -1
lines
Diff to previous 1.10 (colored)
Add -Wl,-R... flags in pcre-config (same as we do for gtk-config). Bump pkg revision.
Revision 1.10 / (download) - annotate - [select for diffs], Fri Sep 27 11:04:23 2002 UTC (20 years, 11 months ago) by martti
Branch: MAIN
Changes since 1.9: +3 -4
lines
Diff to previous 1.9 (colored)
Updated pcre to 3.9 * Bug fixes
Revision 1.9 / (download) - annotate - [select for diffs], Sun Aug 25 18:38:42 2002 UTC (21 years, 1 month ago) by jlam
Branch: MAIN
Changes since 1.8: +3 -3
lines
Diff to previous 1.8 (colored)
Merge changes in packages from the buildlink2 branch that have buildlink2.mk files back into the main trunk. This provides sufficient buildlink2 infrastructure to start merging other packages from the buildlink2 branch that have already been converted to use the buildlink2 framework.
Revision 1.8.2.3 / (download) - annotate - [select for diffs], Sun Aug 25 18:01:05 2002 UTC (21 years, 1 month ago) by jlam
Branch: buildlink2
Changes since 1.8.2.2: +2 -2
lines
Diff to previous 1.8.2.2 (colored) to branchpoint 1.8 (colored) next main 1.9 (colored)
Use LIBTOOL_OVERRIDE instead of LTCONFIG_OVERRIDE as these packages have moved to using the newer libtool.
Revision 1.8.2.2 / (download) - annotate - [select for diffs], Fri Jun 21 23:05:09 2002 UTC (21 years, 3 months ago) by jlam
Branch: buildlink2
Changes since 1.8.2.1: +2 -2
lines
Diff to previous 1.8.2.1 (colored) to branchpoint 1.8 (colored)
Rename USE_BUILDLINK2_ONLY to USE_BUILDLINK2 for less verbosity. Also convert a few more packages to use the buildlink2 framework.
Revision 1.8.2.1 / (download) - annotate - [select for diffs], Sat May 11 02:09:05 2002 UTC (21 years, 4 months ago) by jlam
Branch: buildlink2
Changes since 1.8: +2 -2
lines
Diff to previous 1.8 (colored)
First pass at conversion of various packages to use the buildlink2 framework. Add many buildlink2.mk files to add to the framework. Please see buildlink2.txt for more details.
Revision 1.8 / (download) - annotate - [select for diffs], Fri Nov 30 10:20:01 2001 UTC (21 years, 9 months ago) by martti
Branch: MAIN
CVS Tags: pkgviews-base,
pkgviews,
netbsd-1-6-RELEASE-base,
netbsd-1-6,
netbsd-1-5-PATCH003,
buildlink2-base
Branch point for: buildlink2
Changes since 1.7: +3 -2
lines
Diff to previous 1.7 (colored)
Updated to version 3.7. Changes since 3.4: Version 3.7 29-Oct-01 --------------------- 1. In updating pcretest to check change 1 of version 3.6, I screwed up. This caused pcretest, when used on the test data, to segfault. Unfortunately, this didn't happen under Solaris 8, where I normally test things. Version 3.6 23-Oct-01 --------------------- 1. Crashed with /(sens|respons)e and \1ibility/ and "sense and sensibility" if offsets passed as NULL with zero offset count. 2. The config.guess and config.sub files had not been updated when I moved to the latest autoconf. Version 3.5 15-Aug-01 --------------------- 1. Added some missing #if !defined NOPOSIX conditionals in pcretest.c that had been forgotten. 2. By using declared but undefined structures, we can avoid using "void" definitions in pcre.h while keeping the internal definitions of the structures private. 3. The distribution is now built using autoconf 2.50 and libtool 1.4. From a user point of view, this means that both static and shared libraries are built by default, but this can be individually controlled. More of the work of handling this static/shared cases is now inside libtool instead of PCRE's make file. 4. The pcretest utility is now installed along with pcregrep because it is useful for users (to test regexs) and by doing this, it automatically gets relinked by libtool. The documentation has been turned into a man page, so there are now .1, .txt, and .html versions in /doc. 5. Upgrades to pcregrep: (i) Added long-form option names like gnu grep. (ii) Added --help to list all options with an explanatory phrase. (iii) Added -r, --recursive to recurse into sub-directories. (iv) Added -f, --file to read patterns from a file. 6. pcre_exec() was referring to its "code" argument before testing that argument for NULL (and giving an error if it was NULL). 7. Upgraded Makefile.in to allow for compiling in a different directory from the source directory. 8. Tiny buglet in pcretest: when pcre_fullinfo() was called to retrieve the options bits, the pointer it was passed was to an int instead of to an unsigned long int. This mattered only on 64-bit systems. 9. Fixed typo (3.4/1) in pcre.h again. Sigh. I had changed pcre.h (which is generated) instead of pcre.in, which it its source. Also made the same change in several of the .c files. 10. A new release of gcc defines printf() as a macro, which broke pcretest because it had an ifdef in the middle of a string argument for printf(). Fixed by using separate calls to printf(). 11. Added --enable-newline-is-cr and --enable-newline-is-lf to the configure script, to force use of CR or LF instead of \n in the source. On non-Unix systems, the value can be set in config.h. 12. The limit of 200 on non-capturing parentheses is a _nesting_ limit, not an absolute limit. Changed the text of the error message to make this clear, and likewise updated the man page. 13. The limit of 99 on the number of capturing subpatterns has been removed. The new limit is 65535, which I hope will not be a "real" limit.
Revision 1.7 / (download) - annotate - [select for diffs], Wed Jun 27 03:41:37 2001 UTC (22 years, 3 months ago) by jlam
Branch: MAIN
Changes since 1.6: +4 -3
lines
Diff to previous 1.6 (colored)
Mark as USE_BUILDLINK_ONLY.
Revision 1.6 / (download) - annotate - [select for diffs], Mon May 14 12:55:30 2001 UTC (22 years, 4 months ago) by zuntum
Branch: MAIN
Changes since 1.5: +10 -19
lines
Diff to previous 1.5 (colored)
Update pcre to version 3.4 Version 3.4 22-Aug-00 --------------------- 1. Fixed typo in pcre.h: unsigned const char * changed to const unsigned char *. 2. Diagnose condition (?(0) as an error instead of crashing on matching. Version 3.3 01-Aug-00 --------------------- 1. If an octal character was given, but the value was greater than \377, it was not getting masked to the least significant bits, as documented. This could lead to crashes in some systems. 2. Perl 5.6 (if not earlier versions) accepts classes like [a-\d] and treats the hyphen as a literal. PCRE used to give an error; it now behaves like Perl. 3. Added the functions pcre_free_substring() and pcre_free_substring_list(). These just pass their arguments on to (pcre_free)(), but they are provided because some uses of PCRE bind it to non-C systems that can call its functions, but cannot call free() or pcre_free() directly. 4. Add "make test" as a synonym for "make check". Corrected some comments in the Makefile. 5. Add $(DESTDIR)/ in front of all the paths in the "install" target in the Makefile. 6. Changed the name of pgrep to pcregrep, because Solaris has introduced a command called pgrep for grepping around the active processes. 7. Added the beginnings of support for UTF-8 character strings. 8. Arranged for the Makefile to pass over the settings of CC, CFLAGS, and RANLIB to ./ltconfig so that they are used by libtool. I think these are all the relevant ones. (AR is not passed because ./ltconfig does its own figuring out for the ar command.) Version 3.2 12-May-00 --------------------- This is purely a bug fixing release. 1. If the pattern /((Z)+|A)*/ was matched agained ZABCDEFG it matched Z instead of ZA. This was just one example of several cases that could provoke this bug, which was introduced by change 9 of version 2.00. The code for breaking infinite loops after an iteration that matches an empty string was't working correctly. 2. The pcretest program was not imitating Perl correctly for the pattern /a*/g when matched against abbab (for example). After matching an empty string, it wasn't forcing anchoring when setting PCRE_NOTEMPTY for the next attempt; this caused it to match further down the string than it should. 3. The code contained an inclusion of sys/types.h. It isn't clear why this was there because it doesn't seem to be needed, and it causes trouble on some systems, as it is not a Standard C header. It has been removed. 4. Made 4 silly changes to the source to avoid stupid compiler warnings that were reported on the Macintosh. The changes were from while ((c = *(++ptr)) != 0 && c != '\n'); to while ((c = *(++ptr)) != 0 && c != '\n') ; Totally extraordinary, but if that's what it takes... 5. PCRE is being used in one environment where neither memmove() nor bcopy() is available. Added HAVE_BCOPY and an autoconf test for it; if neither HAVE_MEMMOVE nor HAVE_BCOPY is set, use a built-in emulation function which assumes the way PCRE uses memmove() (always moving upwards). 6. PCRE is being used in one environment where strchr() is not available. There was only one use in pcre.c, and writing it out to avoid strchr() probably gives faster code anyway. Version 3.1 09-Feb-00 --------------------- The only change in this release is the fixing of some bugs in Makefile.in for the "install" target: (1) It was failing to install pcreposix.h. (2) It was overwriting the pcre.3 man page with the pcreposix.3 man page. Version 3.0 01-Feb-00 --------------------- 1. Add support for the /+ modifier to perltest (to output $` like it does in pcretest). 2. Add support for the /g modifier to perltest. 3. Fix pcretest so that it behaves even more like Perl for /g when the pattern matches null strings. 4. Fix perltest so that it doesn't do unwanted things when fed an empty pattern. Perl treats empty patterns specially - it reuses the most recent pattern, which is not what we want. Replace // by /(?#)/ in order to avoid this effect. 5. The POSIX interface was broken in that it was just handing over the POSIX captured string vector to pcre_exec(), but (since release 2.00) PCRE has required a bigger vector, with some working space on the end. This means that the POSIX wrapper now has to get and free some memory, and copy the results. 6. Added some simple autoconf support, placing the test data and the documentation in separate directories, re-organizing some of the information files, and making it build pcre-config (a GNU standard). Also added libtool support for building PCRE as a shared library, which is now the default. 7. Got rid of the leading zero in the definition of PCRE_MINOR because 08 and 09 are not valid octal constants. Single digits will be used for minor values less than 10. 8. Defined REG_EXTENDED and REG_NOSUB as zero in the POSIX header, so that existing programs that set these in the POSIX interface can use PCRE without modification. 9. Added a new function, pcre_fullinfo() with an extensible interface. It can return all that pcre_info() returns, plus additional data. The pcre_info() function is retained for compatibility, but is considered to be obsolete. 10. Added experimental recursion feature (?R) to handle one common case that Perl 5.6 will be able to do with (?p{...}). 11. Added support for POSIX character classes like [:alpha:], which Perl is adopting.
Revision 1.5 / (download) - annotate - [select for diffs], Fri Feb 16 14:38:56 2001 UTC (22 years, 7 months ago) by wiz
Branch: MAIN
CVS Tags: netbsd-1-5-PATCH001
Changes since 1.4: +2 -1
lines
Diff to previous 1.4 (colored)
Update to new COMMENT style: COMMENT var in Makefile instead of pkg/COMMENT.
Revision 1.4 / (download) - annotate - [select for diffs], Wed Apr 26 21:59:53 2000 UTC (23 years, 5 months ago) by kim
Branch: MAIN
CVS Tags: netbsd-1-5-RELEASE,
netbsd-1-4-PATCH003
Changes since 1.3: +2 -2
lines
Diff to previous 1.3 (colored)
Update to pcre-2.08, notable changes: 1. When startoffset was not zero and the pattern began with ".*", PCRE was not trying to match at the startoffset position, but instead was moving forward to the next newline as if a previous match had failed. 2. pcretest was not making use of PCRE_NOTEMPTY when repeating for /g and /G, and could get into a loop if a null string was matched other than at the start of the subject.
Revision 1.3 / (download) - annotate - [select for diffs], Sun Sep 19 00:55:35 1999 UTC (24 years ago) by ad
Branch: MAIN
CVS Tags: netbsd-1-4-PATCH002,
comdex-fall-1999
Changes since 1.2: +2 -1
lines
Diff to previous 1.2 (colored)
Need to install pcreposix.h.
Revision 1.2 / (download) - annotate - [select for diffs], Sat Sep 18 20:48:43 1999 UTC (24 years ago) by ad
Branch: MAIN
Changes since 1.1: +2 -1
lines
Diff to previous 1.1 (colored)
Also install libpcreposix.a (Mostly POSIX compatible front-end to PCRE).
Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Thu Aug 26 12:52:05 1999 UTC (24 years, 1 month ago) by proff
Branch: TNF
CVS Tags: pkgsrc-base
Changes since 1.1: +0 -0
lines
Diff to previous 1.1 (colored)
Perl Compatible Regular Expressions library. 2.07
Revision 1.1 / (download) - annotate - [select for diffs], Thu Aug 26 12:52:05 1999 UTC (24 years, 1 month ago) by proff
Branch: MAIN
Initial revision