Up to [cvs.netbsd.org] / pkgsrc / devel / pcre
Request diff between arbitrary revisions
Default branch: MAIN
Revision 1.16 / (download) - annotate - [select for diffs], Fri Mar 2 15:25:06 2012 UTC (2 months, 3 weeks ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2012Q1-base,
pkgsrc-2012Q1,
HEAD
Changes since 1.15: +2 -0
lines
Diff to previous 1.15 (colored)
Enable 16-bit support. Bump PKGREVISION.
Revision 1.15 / (download) - annotate - [select for diffs], Fri Mar 2 14:10:42 2012 UTC (2 months, 3 weeks ago) by wiz
Branch: MAIN
Changes since 1.14: +31 -2
lines
Diff to previous 1.14 (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.14 / (download) - annotate - [select for diffs], Mon Nov 28 16:39:29 2011 UTC (5 months, 3 weeks ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2011Q4-base,
pkgsrc-2011Q4
Changes since 1.13: +14 -0
lines
Diff to previous 1.13 (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.13 / (download) - annotate - [select for diffs], Sat Oct 31 02:01:56 2009 UTC (2 years, 6 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2011Q3-base,
pkgsrc-2011Q3,
pkgsrc-2011Q2-base,
pkgsrc-2011Q2,
pkgsrc-2011Q1-base,
pkgsrc-2011Q1,
pkgsrc-2010Q4-base,
pkgsrc-2010Q4,
pkgsrc-2010Q3-base,
pkgsrc-2010Q3,
pkgsrc-2010Q2-base,
pkgsrc-2010Q2,
pkgsrc-2010Q1-base,
pkgsrc-2010Q1,
pkgsrc-2009Q4-base,
pkgsrc-2009Q4
Changes since 1.12: +3 -1
lines
Diff to previous 1.12 (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.12 / (download) - annotate - [select for diffs], Sun Jun 14 17:49:02 2009 UTC (2 years, 11 months ago) by joerg
Branch: MAIN
CVS Tags: pkgsrc-2009Q3-base,
pkgsrc-2009Q3,
pkgsrc-2009Q2-base,
pkgsrc-2009Q2
Changes since 1.11: +1 -3
lines
Diff to previous 1.11 (colored)
Remove @dirrm entries from PLISTs
Revision 1.11 / (download) - annotate - [select for diffs], Wed Oct 17 20:49:42 2007 UTC (4 years, 7 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2009Q1-base,
pkgsrc-2009Q1,
pkgsrc-2008Q4-base,
pkgsrc-2008Q4,
pkgsrc-2008Q3-base,
pkgsrc-2008Q3,
pkgsrc-2008Q2-base,
pkgsrc-2008Q2,
pkgsrc-2008Q1-base,
pkgsrc-2008Q1,
pkgsrc-2007Q4-base,
pkgsrc-2007Q4,
cwrapper,
cube-native-xorg-base,
cube-native-xorg
Changes since 1.10: +3 -1
lines
Diff to previous 1.10 (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.10 / (download) - annotate - [select for diffs], Thu May 3 12:27:54 2007 UTC (5 years ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2007Q3-base,
pkgsrc-2007Q3,
pkgsrc-2007Q2-base,
pkgsrc-2007Q2
Changes since 1.9: +52 -1
lines
Diff to previous 1.9 (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.9 / (download) - annotate - [select for diffs], Sat Jan 6 23:45:42 2007 UTC (5 years, 4 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2007Q1-base,
pkgsrc-2007Q1
Changes since 1.8: +2 -1
lines
Diff to previous 1.8 (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.8 / (download) - annotate - [select for diffs], Mon Jul 10 16:10:44 2006 UTC (5 years, 10 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2006Q4-base,
pkgsrc-2006Q4,
pkgsrc-2006Q3-base,
pkgsrc-2006Q3
Changes since 1.7: +3 -1
lines
Diff to previous 1.7 (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.7 / (download) - annotate - [select for diffs], Sat Feb 4 17:13:49 2006 UTC (6 years, 3 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2006Q2-base,
pkgsrc-2006Q2,
pkgsrc-2006Q1-base,
pkgsrc-2006Q1
Changes since 1.6: +5 -1
lines
Diff to previous 1.6 (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.5.6.1 / (download) - annotate - [select for diffs], Wed Aug 31 08:48:45 2005 UTC (6 years, 8 months ago) by snj
Branch: pkgsrc-2005Q2
Changes since 1.5: +9 -1
lines
Diff to previous 1.5 (colored) next main 1.6 (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.6 / (download) - annotate - [select for diffs], Wed Aug 3 17:43:13 2005 UTC (6 years, 9 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2005Q4-base,
pkgsrc-2005Q4,
pkgsrc-2005Q3-base,
pkgsrc-2005Q3
Changes since 1.5: +9 -1
lines
Diff to previous 1.5 (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.5 / (download) - annotate - [select for diffs], Tue Sep 28 15:59:49 2004 UTC (7 years, 7 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2005Q2-base,
pkgsrc-2005Q1-base,
pkgsrc-2005Q1,
pkgsrc-2004Q4-base,
pkgsrc-2004Q4
Branch point for: pkgsrc-2005Q2
Changes since 1.4: +2 -1
lines
Diff to previous 1.4 (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.4 / (download) - annotate - [select for diffs], Wed Sep 22 08:09:29 2004 UTC (7 years, 8 months ago) by jlam
Branch: MAIN
Changes since 1.3: +1 -9
lines
Diff to previous 1.3 (colored)
Mechanical changes to package PLISTs to make use of LIBTOOLIZE_PLIST. All library names listed by *.la files no longer need to be listed in the PLIST, e.g., instead of: lib/libfoo.a lib/libfoo.la lib/libfoo.so lib/libfoo.so.0 lib/libfoo.so.0.1 one simply needs: lib/libfoo.la and bsd.pkg.mk will automatically ensure that the additional library names are listed in the installed package +CONTENTS file. Also make LIBTOOLIZE_PLIST default to "yes".
Revision 1.3 / (download) - annotate - [select for diffs], Tue Aug 5 10:18:39 2003 UTC (8 years, 9 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2004Q3-base,
pkgsrc-2004Q3,
pkgsrc-2004Q2-base,
pkgsrc-2004Q2,
pkgsrc-2004Q1-base,
pkgsrc-2004Q1,
pkgsrc-2003Q4-base,
pkgsrc-2003Q4
Changes since 1.2: +24 -1
lines
Diff to previous 1.2 (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.2 / (download) - annotate - [select for diffs], Fri Nov 30 10:20:02 2001 UTC (10 years, 5 months ago) by martti
Branch: MAIN
CVS Tags: pkgviews-base,
pkgviews,
netbsd-1-6-RELEASE-base,
netbsd-1-6-1-base,
netbsd-1-6-1,
netbsd-1-6,
netbsd-1-5-PATCH003,
buildlink2-base,
buildlink2
Changes since 1.1: +3 -1
lines
Diff to previous 1.1 (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.1 / (download) - annotate - [select for diffs], Thu Nov 1 01:25:48 2001 UTC (10 years, 6 months ago) by zuntum
Branch: MAIN
Move pkg/ files into package's toplevel directory