The NetBSD Project

CVS log for pkgsrc/devel/pcre/Makefile

[BACK] 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

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>