Revision: 7068
http://winmerge.svn.sourceforge.net/winmerge/?rev=7068&view=rev
Author: kimmov
Date: 2009-12-29 18:22:40 +0000 (Tue, 29 Dec 2009)
Log Message:
-----------
Update PCRE to version 8.00.
Modified Paths:
--------------
trunk/Docs/Users/ChangeLog.txt
trunk/Externals/pcre/132html
trunk/Externals/pcre/ChangeLog
trunk/Externals/pcre/HACKING
trunk/Externals/pcre/LICENCE
trunk/Externals/pcre/Makefile.am
trunk/Externals/pcre/Makefile.in
trunk/Externals/pcre/NEWS
trunk/Externals/pcre/NON-UNIX-USE
trunk/Externals/pcre/PrepareRelease
trunk/Externals/pcre/README
trunk/Externals/pcre/RunGrepTest
trunk/Externals/pcre/RunTest
trunk/Externals/pcre/RunTest.bat
trunk/Externals/pcre/Win32/ALL_BUILD.vcproj
trunk/Externals/pcre/Win32/CMakeCache.txt
trunk/Externals/pcre/Win32/CMakeFiles/CMakeCCompiler.cmake
trunk/Externals/pcre/Win32/CMakeFiles/CMakeCPlatform.cmake
trunk/Externals/pcre/Win32/CMakeFiles/CMakeCXXCompiler.cmake
trunk/Externals/pcre/Win32/CMakeFiles/CMakeCXXPlatform.cmake
trunk/Externals/pcre/Win32/CMakeFiles/CMakeDetermineCompilerABI_C.bin
trunk/Externals/pcre/Win32/CMakeFiles/CMakeDetermineCompilerABI_CXX.bin
trunk/Externals/pcre/Win32/CMakeFiles/CMakeRCCompiler.cmake
trunk/Externals/pcre/Win32/CMakeFiles/CMakeSystem.cmake
trunk/Externals/pcre/Win32/CMakeFiles/CheckTypeSize.bin
trunk/Externals/pcre/Win32/CMakeFiles/generate.stamp.depend
trunk/Externals/pcre/Win32/CTestCustom.ctest
trunk/Externals/pcre/Win32/CTestTestfile.cmake
trunk/Externals/pcre/Win32/INSTALL.vcproj
trunk/Externals/pcre/Win32/PCRE.sln
trunk/Externals/pcre/Win32/RUN_TESTS.vcproj
trunk/Externals/pcre/Win32/cmake_install.cmake
trunk/Externals/pcre/Win32/pcre.h
trunk/Externals/pcre/Win32/pcre.vcproj
trunk/Externals/pcre/Win32/pcre_scanner_unittest.vcproj
trunk/Externals/pcre/Win32/pcre_stringpiece_unittest.vcproj
trunk/Externals/pcre/Win32/pcrecpp.vcproj
trunk/Externals/pcre/Win32/pcrecpp_unittest.vcproj
trunk/Externals/pcre/Win32/pcregrep.vcproj
trunk/Externals/pcre/Win32/pcreposix.vcproj
trunk/Externals/pcre/Win32/pcretest.vcproj
trunk/Externals/pcre/aclocal.m4
trunk/Externals/pcre/config.guess
trunk/Externals/pcre/config.h.generic
trunk/Externals/pcre/config.h.in
trunk/Externals/pcre/config.sub
trunk/Externals/pcre/configure
trunk/Externals/pcre/configure.ac
trunk/Externals/pcre/doc/html/index.html
trunk/Externals/pcre/doc/html/pcre.html
trunk/Externals/pcre/doc/html/pcre_compile.html
trunk/Externals/pcre/doc/html/pcre_compile2.html
trunk/Externals/pcre/doc/html/pcre_dfa_exec.html
trunk/Externals/pcre/doc/html/pcre_exec.html
trunk/Externals/pcre/doc/html/pcre_fullinfo.html
trunk/Externals/pcre/doc/html/pcreapi.html
trunk/Externals/pcre/doc/html/pcrebuild.html
trunk/Externals/pcre/doc/html/pcrecallout.html
trunk/Externals/pcre/doc/html/pcrecompat.html
trunk/Externals/pcre/doc/html/pcregrep.html
trunk/Externals/pcre/doc/html/pcrematching.html
trunk/Externals/pcre/doc/html/pcrepartial.html
trunk/Externals/pcre/doc/html/pcrepattern.html
trunk/Externals/pcre/doc/html/pcreposix.html
trunk/Externals/pcre/doc/html/pcresample.html
trunk/Externals/pcre/doc/html/pcretest.html
trunk/Externals/pcre/doc/index.html.src
trunk/Externals/pcre/doc/pcre.3
trunk/Externals/pcre/doc/pcre.txt
trunk/Externals/pcre/doc/pcre_compile.3
trunk/Externals/pcre/doc/pcre_compile2.3
trunk/Externals/pcre/doc/pcre_dfa_exec.3
trunk/Externals/pcre/doc/pcre_exec.3
trunk/Externals/pcre/doc/pcre_fullinfo.3
trunk/Externals/pcre/doc/pcreapi.3
trunk/Externals/pcre/doc/pcrebuild.3
trunk/Externals/pcre/doc/pcrecallout.3
trunk/Externals/pcre/doc/pcrecompat.3
trunk/Externals/pcre/doc/pcregrep.1
trunk/Externals/pcre/doc/pcregrep.txt
trunk/Externals/pcre/doc/pcrematching.3
trunk/Externals/pcre/doc/pcrepartial.3
trunk/Externals/pcre/doc/pcrepattern.3
trunk/Externals/pcre/doc/pcreposix.3
trunk/Externals/pcre/doc/pcresample.3
trunk/Externals/pcre/doc/pcretest.1
trunk/Externals/pcre/doc/pcretest.txt
trunk/Externals/pcre/doc/perltest.txt
trunk/Externals/pcre/libpcre.pc.in
trunk/Externals/pcre/libpcrecpp.pc.in
trunk/Externals/pcre/ltmain.sh
trunk/Externals/pcre/pcre-config.in
trunk/Externals/pcre/pcre.h.generic
trunk/Externals/pcre/pcre.h.in
trunk/Externals/pcre/pcre_compile.c
trunk/Externals/pcre/pcre_dfa_exec.c
trunk/Externals/pcre/pcre_exec.c
trunk/Externals/pcre/pcre_fullinfo.c
trunk/Externals/pcre/pcre_internal.h
trunk/Externals/pcre/pcre_printint.src
trunk/Externals/pcre/pcre_study.c
trunk/Externals/pcre/pcre_try_flipped.c
trunk/Externals/pcre/pcre_ucd.c
trunk/Externals/pcre/pcredemo.c
trunk/Externals/pcre/pcregrep.c
trunk/Externals/pcre/pcreposix.c
trunk/Externals/pcre/pcreposix.h
trunk/Externals/pcre/pcretest.c
trunk/Externals/pcre/perltest.pl
trunk/Externals/pcre/testdata/grepoutput
trunk/Externals/pcre/testdata/testinput1
trunk/Externals/pcre/testdata/testinput10
trunk/Externals/pcre/testdata/testinput2
trunk/Externals/pcre/testdata/testinput3
trunk/Externals/pcre/testdata/testinput4
trunk/Externals/pcre/testdata/testinput5
trunk/Externals/pcre/testdata/testinput6
trunk/Externals/pcre/testdata/testinput7
trunk/Externals/pcre/testdata/testinput8
trunk/Externals/pcre/testdata/testinput9
trunk/Externals/pcre/testdata/testoutput1
trunk/Externals/pcre/testdata/testoutput10
trunk/Externals/pcre/testdata/testoutput2
trunk/Externals/pcre/testdata/testoutput3
trunk/Externals/pcre/testdata/testoutput4
trunk/Externals/pcre/testdata/testoutput5
trunk/Externals/pcre/testdata/testoutput6
trunk/Externals/pcre/testdata/testoutput7
trunk/Externals/pcre/testdata/testoutput8
trunk/Externals/pcre/testdata/testoutput9
trunk/Externals/pcre/testdata/wintestoutput3
trunk/Externals/scew/win32/scew.vcproj
trunk/Externals/versions.txt
Added Paths:
-----------
trunk/Externals/pcre/Win32/CMakeFiles/TargetDirectories.txt
trunk/Externals/pcre/Win32/CMakeFiles/ZERO_CHECK.rule
trunk/Externals/pcre/Win32/CMakeFiles/generate.stamp.list
trunk/Externals/pcre/Win32/ZERO_CHECK.vcproj
trunk/Externals/pcre/doc/html/pcredemo.html
trunk/Externals/pcre/libpcreposix.pc.in
trunk/Externals/pcre/testdata/testinput11
trunk/Externals/pcre/testdata/testinput12
trunk/Externals/pcre/testdata/testoutput11
trunk/Externals/pcre/testdata/testoutput12
Removed Paths:
-------------
trunk/Externals/pcre/Win32/PCRE_fullsolution.sln
Modified: trunk/Docs/Users/ChangeLog.txt
===================================================================
--- trunk/Docs/Users/ChangeLog.txt 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Docs/Users/ChangeLog.txt 2009-12-29 18:22:40 UTC (rev 7068)
@@ -5,6 +5,7 @@
WinMerge 2.3.11
Write config log as UTF-8 file (r7057)
+ Update PCRE to version 8.00 (r7068)
Bugfix: Plugin error after interrupting folder compare (#2919475)
Bugfix: GUI Word Wrap missing text (#2921400, #2894033)
Bugfix: Selected custom odepage was not used (#2921555)
Modified: trunk/Externals/pcre/132html
===================================================================
--- trunk/Externals/pcre/132html 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/132html 2009-12-29 18:22:40 UTC (rev 7068)
@@ -232,6 +232,23 @@
redo; # Process the joined lines
}
+ # .EX/.EE are used in the pcredemo page to bracket the entire program,
+ # which is unmodified except for turning backslash into "\e".
+
+ elsif (/^\.EX\s*$/)
+ {
+ print TEMP "<PRE>\n";
+ while (<STDIN>)
+ {
+ last if /^\.EE\s*$/;
+ s/\\e/\\/g;
+ s/&/&/g;
+ s/</</g;
+ s/>/>/g;
+ print TEMP;
+ }
+ }
+
# Ignore anything not recognized
next;
Modified: trunk/Externals/pcre/ChangeLog
===================================================================
--- trunk/Externals/pcre/ChangeLog 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/ChangeLog 2009-12-29 18:22:40 UTC (rev 7068)
@@ -1,6 +1,170 @@
ChangeLog for PCRE
------------------
+Version 8.00 19-Oct-09
+----------------------
+
+1. The table for translating pcre_compile() error codes into POSIX error codes
+ was out-of-date, and there was no check on the pcre_compile() error code
+ being within the table. This could lead to an OK return being given in
+ error.
+
+2. Changed the call to open a subject file in pcregrep from fopen(pathname,
+ "r") to fopen(pathname, "rb"), which fixed a problem with some of the tests
+ in a Windows environment.
+
+3. The pcregrep --count option prints the count for each file even when it is
+ zero, as does GNU grep. However, pcregrep was also printing all files when
+ --files-with-matches was added. Now, when both options are given, it prints
+ counts only for those files that have at least one match. (GNU grep just
+ prints the file name in this circumstance, but including the count seems
+ more useful - otherwise, why use --count?) Also ensured that the
+ combination -clh just lists non-zero counts, with no names.
+
+4. The long form of the pcregrep -F option was incorrectly implemented as
+ --fixed_strings instead of --fixed-strings. This is an incompatible change,
+ but it seems right to fix it, and I didn't think it was worth preserving
+ the old behaviour.
+
+5. The command line items --regex=pattern and --regexp=pattern were not
+ recognized by pcregrep, which required --regex pattern or --regexp pattern
+ (with a space rather than an '='). The man page documented the '=' forms,
+ which are compatible with GNU grep; these now work.
+
+6. No libpcreposix.pc file was created for pkg-config; there was just
+ libpcre.pc and libpcrecpp.pc. The omission has been rectified.
+
+7. Added #ifndef SUPPORT_UCP into the pcre_ucd.c module, to reduce its size
+ when UCP support is not needed, by modifying the Python script that
+ generates it from Unicode data files. This should not matter if the module
+ is correctly used as a library, but I received one complaint about 50K of
+ unwanted data. My guess is that the person linked everything into his
+ program rather than using a library. Anyway, it does no harm.
+
+8. A pattern such as /\x{123}{2,2}+/8 was incorrectly compiled; the trigger
+ was a minimum greater than 1 for a wide character in a possessive
+ repetition. The same bug could also affect patterns like /(\x{ff}{0,2})*/8
+ which had an unlimited repeat of a nested, fixed maximum repeat of a wide
+ character. Chaos in the form of incorrect output or a compiling loop could
+ result.
+
+9. The restrictions on what a pattern can contain when partial matching is
+ requested for pcre_exec() have been removed. All patterns can now be
+ partially matched by this function. In addition, if there are at least two
+ slots in the offset vector, the offset of the earliest inspected character
+ for the match and the offset of the end of the subject are set in them when
+ PCRE_ERROR_PARTIAL is returned.
+
+10. Partial matching has been split into two forms: PCRE_PARTIAL_SOFT, which is
+ synonymous with PCRE_PARTIAL, for backwards compatibility, and
+ PCRE_PARTIAL_HARD, which causes a partial match to supersede a full match,
+ and may be more useful for multi-segment matching.
+
+11. Partial matching with pcre_exec() is now more intuitive. A partial match
+ used to be given if ever the end of the subject was reached; now it is
+ given only if matching could not proceed because another character was
+ needed. This makes a difference in some odd cases such as Z(*FAIL) with the
+ string "Z", which now yields "no match" instead of "partial match". In the
+ case of pcre_dfa_exec(), "no match" is given if every matching path for the
+ final character ended with (*FAIL).
+
+12. Restarting a match using pcre_dfa_exec() after a partial match did not work
+ if the pattern had a "must contain" character that was already found in the
+ earlier partial match, unless partial matching was again requested. For
+ example, with the pattern /dog.(body)?/, the "must contain" character is
+ "g". If the first part-match was for the string "dog", restarting with
+ "sbody" failed. This bug has been fixed.
+
+13. The string returned by pcre_dfa_exec() after a partial match has been
+ changed so that it starts at the first inspected character rather than the
+ first character of the match. This makes a difference only if the pattern
+ starts with a lookbehind assertion or \b or \B (\K is not supported by
+ pcre_dfa_exec()). It's an incompatible change, but it makes the two
+ matching functions compatible, and I think it's the right thing to do.
+
+14. Added a pcredemo man page, created automatically from the pcredemo.c file,
+ so that the demonstration program is easily available in environments where
+ PCRE has not been installed from source.
+
+15. Arranged to add -DPCRE_STATIC to cflags in libpcre.pc, libpcreposix.cp,
+ libpcrecpp.pc and pcre-config when PCRE is not compiled as a shared
+ library.
+
+16. Added REG_UNGREEDY to the pcreposix interface, at the request of a user.
+ It maps to PCRE_UNGREEDY. It is not, of course, POSIX-compatible, but it
+ is not the first non-POSIX option to be added. Clearly some people find
+ these options useful.
+
+17. If a caller to the POSIX matching function regexec() passes a non-zero
+ value for nmatch with a NULL value for pmatch, the value of
+ nmatch is forced to zero.
+
+18. RunGrepTest did not have a test for the availability of the -u option of
+ the diff command, as RunTest does. It now checks in the same way as
+ RunTest, and also checks for the -b option.
+
+19. If an odd number of negated classes containing just a single character
+ interposed, within parentheses, between a forward reference to a named
+ subpattern and the definition of the subpattern, compilation crashed with
+ an internal error, complaining that it could not find the referenced
+ subpattern. An example of a crashing pattern is /(?&A)(([^m])(?<A>))/.
+ [The bug was that it was starting one character too far in when skipping
+ over the character class, thus treating the ] as data rather than
+ terminating the class. This meant it could skip too much.]
+
+20. Added PCRE_NOTEMPTY_ATSTART in order to be able to correctly implement the
+ /g option in pcretest when the pattern contains \K, which makes it possible
+ to have an empty string match not at the start, even when the pattern is
+ anchored. Updated pcretest and pcredemo to use this option.
+
+21. If the maximum number of capturing subpatterns in a recursion was greater
+ than the maximum at the outer level, the higher number was returned, but
+ with unset values at the outer level. The correct (outer level) value is
+ now given.
+
+22. If (*ACCEPT) appeared inside capturing parentheses, previous releases of
+ PCRE did not set those parentheses (unlike Perl). I have now found a way to
+ make it do so. The string so far is captured, making this feature
+ compatible with Perl.
+
+23. The tests have been re-organized, adding tests 11 and 12, to make it
+ possible to check the Perl 5.10 features against Perl 5.10.
+
+24. Perl 5.10 allows subroutine calls in lookbehinds, as long as the subroutine
+ pattern matches a fixed length string. PCRE did not allow this; now it
+ does. Neither allows recursion.
+
+25. I finally figured out how to implement a request to provide the minimum
+ length of subject string that was needed in order to match a given pattern.
+ (It was back references and recursion that I had previously got hung up
+ on.) This code has now been added to pcre_study(); it finds a lower bound
+ to the length of subject needed. It is not necessarily the greatest lower
+ bound, but using it to avoid searching strings that are too short does give
+ some useful speed-ups. The value is available to calling programs via
+ pcre_fullinfo().
+
+26. While implementing 25, I discovered to my embarrassment that pcretest had
+ not been passing the result of pcre_study() to pcre_dfa_exec(), so the
+ study optimizations had never been tested with that matching function.
+ Oops. What is worse, even when it was passed study data, there was a bug in
+ pcre_dfa_exec() that meant it never actually used it. Double oops. There
+ were also very few tests of studied patterns with pcre_dfa_exec().
+
+27. If (?| is used to create subpatterns with duplicate numbers, they are now
+ allowed to have the same name, even if PCRE_DUPNAMES is not set. However,
+ on the other side of the coin, they are no longer allowed to have different
+ names, because these cannot be distinguished in PCRE, and this has caused
+ confusion. (This is a difference from Perl.)
+
+28. When duplicate subpattern names are present (necessarily with different
+ numbers, as required by 27 above), and a test is made by name in a
+ conditional pattern, either for a subpattern having been matched, or for
+ recursion in such a pattern, all the associated numbered subpatterns are
+ tested, and the overall condition is true if the condition is true for any
+ one of them. This is the way Perl works, and is also more like the way
+ testing by number works.
+
+
Version 7.9 11-Apr-09
---------------------
Modified: trunk/Externals/pcre/HACKING
===================================================================
--- trunk/Externals/pcre/HACKING 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/HACKING 2009-12-29 18:22:40 UTC (rev 7068)
@@ -67,22 +67,22 @@
functions to work this way. This got rid of about 600 lines of source. It
should make future maintenance and development easier. As this was such a major
change, I never released 6.8, instead upping the number to 7.0 (other quite
-major changes are also present in the 7.0 release).
+major changes were also present in the 7.0 release).
-A side effect of this work is that the previous limit of 200 on the nesting
+A side effect of this work was that the previous limit of 200 on the nesting
depth of parentheses was removed. However, there is a downside: pcre_compile()
runs more slowly than before (30% or more, depending on the pattern) because it
-is doing a full analysis of the pattern. My hope is that this is not a big
-issue.
+is doing a full analysis of the pattern. My hope was that this would not be a
+big issue, and in the event, nobody has commented on it.
Traditional matching function
-----------------------------
The "traditional", and original, matching function is called pcre_exec(), and
it implements an NFA algorithm, similar to the original Henry Spencer algorithm
-and the way that Perl works. Not surprising, since it is intended to be as
-compatible with Perl as possible. This is the function most users of PCRE will
-use most of the time.
+and the way that Perl works. This is not surprising, since it is intended to be
+as compatible with Perl as possible. This is the function most users of PCRE
+will use most of the time.
Supplementary matching function
-------------------------------
@@ -119,6 +119,7 @@
A list of the opcodes follows:
+
Opcodes with no following data
------------------------------
@@ -150,12 +151,12 @@
OP_EXTUNI match an extended Unicode character
OP_ANYNL match any Unicode newline sequence
- OP_ACCEPT )
- OP_COMMIT )
- OP_FAIL ) These are Perl 5.10's "backtracking
- OP_PRUNE ) control verbs".
- OP_SKIP )
- OP_THEN )
+ OP_ACCEPT ) These are Perl 5.10's "backtracking
+ OP_COMMIT ) control verbs". If OP_ACCEPT is inside
+ OP_FAIL ) capturing parentheses, it may be preceded
+ OP_PRUNE ) by one or more OP_CLOSE, followed by a 2-byte
+ OP_SKIP ) number, indicating which parentheses must be
+ OP_THEN ) closed.
Repeating single characters
@@ -372,14 +373,17 @@
OP_SCOND for one that might match an empty string in an unbounded repeat. If
the condition is a back reference, this is stored at the start of the
subpattern using the opcode OP_CREF followed by two bytes containing the
-reference number. If the condition is "in recursion" (coded as "(?(R)"), or "in
-recursion of group x" (coded as "(?(Rx)"), the group number is stored at the
-start of the subpattern using the opcode OP_RREF, and a value of zero for "the
-whole pattern". For a DEFINE condition, just the single byte OP_DEF is used (it
-has no associated data). Otherwise, a conditional subpattern always starts with
-one of the assertions.
+reference number. OP_NCREF is used instead if the reference was generated by
+name (so that the runtime code knows to check for duplicate names).
+If the condition is "in recursion" (coded as "(?(R)"), or "in recursion of
+group x" (coded as "(?(Rx)"), the group number is stored at the start of the
+subpattern using the opcode OP_RREF or OP_NRREF (cf OP_NCREF), and a value of
+zero for "the whole pattern". For a DEFINE condition, just the single byte
+OP_DEF is used (it has no associated data). Otherwise, a conditional subpattern
+always starts with one of the assertions.
+
Recursion
---------
@@ -415,4 +419,4 @@
data.
Philip Hazel
-April 2008
+October 2009
Modified: trunk/Externals/pcre/LICENCE
===================================================================
--- trunk/Externals/pcre/LICENCE 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/LICENCE 2009-12-29 18:22:40 UTC (rev 7068)
@@ -4,7 +4,7 @@
PCRE is a library of functions to support regular expressions whose syntax
and semantics are as close as possible to those of the Perl 5 language.
-Release 7 of PCRE is distributed under the terms of the "BSD" licence, as
+Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
specified below. The documentation for PCRE, supplied in the "doc"
directory, is distributed under the same terms as the software itself.
Modified: trunk/Externals/pcre/Makefile.am
===================================================================
--- trunk/Externals/pcre/Makefile.am 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/Makefile.am 2009-12-29 18:22:40 UTC (rev 7068)
@@ -40,6 +40,7 @@
doc/html/pcrebuild.html \
doc/html/pcrecallout.html \
doc/html/pcrecompat.html \
+ doc/html/pcredemo.html \
doc/html/pcregrep.html \
doc/html/pcrematching.html \
doc/html/pcrepartial.html \
@@ -270,6 +271,8 @@
testdata/testinput8 \
testdata/testinput9 \
testdata/testinput10 \
+ testdata/testinput11 \
+ testdata/testinput12 \
testdata/testoutput1 \
testdata/testoutput2 \
testdata/testoutput3 \
@@ -280,6 +283,8 @@
testdata/testoutput8 \
testdata/testoutput9 \
testdata/testoutput10 \
+ testdata/testoutput11 \
+ testdata/testoutput12 \
testdata/wintestinput3 \
testdata/wintestoutput3 \
perltest.pl
@@ -327,7 +332,7 @@
# We have .pc files for pkg-config users.
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libpcre.pc
+pkgconfig_DATA = libpcre.pc libpcreposix.pc
if WITH_PCRE_CPP
pkgconfig_DATA += libpcrecpp.pc
endif
Modified: trunk/Externals/pcre/Makefile.in
===================================================================
--- trunk/Externals/pcre/Makefile.in 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/Makefile.in 2009-12-29 18:22:40 UTC (rev 7068)
@@ -66,11 +66,11 @@
$(dist_noinst_DATA) $(dist_noinst_SCRIPTS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/config.h.in $(srcdir)/libpcre.pc.in \
- $(srcdir)/libpcrecpp.pc.in $(srcdir)/pcre-config.in \
- $(srcdir)/pcre.h.in $(srcdir)/pcre_stringpiece.h.in \
- $(srcdir)/pcrecpparg.h.in $(top_srcdir)/configure AUTHORS \
- COPYING ChangeLog INSTALL NEWS config.guess config.sub depcomp \
- install-sh ltmain.sh missing
+ $(srcdir)/libpcrecpp.pc.in $(srcdir)/libpcreposix.pc.in \
+ $(srcdir)/pcre-config.in $(srcdir)/pcre.h.in \
+ $(srcdir)/pcre_stringpiece.h.in $(srcdir)/pcrecpparg.h.in \
+ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+ config.guess config.sub depcomp install-sh ltmain.sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -79,8 +79,8 @@
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = libpcre.pc libpcrecpp.pc pcre-config pcre.h \
- pcre_stringpiece.h pcrecpparg.h
+CONFIG_CLEAN_FILES = libpcre.pc libpcreposix.pc libpcrecpp.pc \
+ pcre-config pcre.h pcre_stringpiece.h pcrecpparg.h
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -247,7 +247,7 @@
DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
-ECHO = @ECHO@
+DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
@@ -256,14 +256,14 @@
EXTRA_LIBPCRECPP_LDFLAGS = @EXTRA_LIBPCRECPP_LDFLAGS@
EXTRA_LIBPCREPOSIX_LDFLAGS = @EXTRA_LIBPCREPOSIX_LDFLAGS@
EXTRA_LIBPCRE_LDFLAGS = @EXTRA_LIBPCRE_LDFLAGS@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LIBBZ2 = @LIBBZ2@
LIBOBJS = @LIBOBJS@
@@ -271,13 +271,17 @@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBZ = @LIBZ@
+LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -289,6 +293,7 @@
PCRE_MAJOR = @PCRE_MAJOR@
PCRE_MINOR = @PCRE_MINOR@
PCRE_PRERELEASE = @PCRE_PRERELEASE@
+PCRE_STATIC_CFLAG = @PCRE_STATIC_CFLAG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
@@ -301,7 +306,7 @@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -332,6 +337,7 @@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -391,6 +397,7 @@
doc/html/pcrebuild.html \
doc/html/pcrecallout.html \
doc/html/pcrecompat.html \
+ doc/html/pcredemo.html \
doc/html/pcregrep.html \
doc/html/pcrematching.html \
doc/html/pcrepartial.html \
@@ -449,12 +456,14 @@
testdata/testinput1 testdata/testinput2 testdata/testinput3 \
testdata/testinput4 testdata/testinput5 testdata/testinput6 \
testdata/testinput7 testdata/testinput8 testdata/testinput9 \
- testdata/testinput10 testdata/testoutput1 testdata/testoutput2 \
- testdata/testoutput3 testdata/testoutput4 testdata/testoutput5 \
- testdata/testoutput6 testdata/testoutput7 testdata/testoutput8 \
- testdata/testoutput9 testdata/testoutput10 \
- testdata/wintestinput3 testdata/wintestoutput3 perltest.pl \
- pcredemo.c $(pcrecpp_man) cmake/COPYING-CMAKE-SCRIPTS \
+ testdata/testinput10 testdata/testinput11 testdata/testinput12 \
+ testdata/testoutput1 testdata/testoutput2 testdata/testoutput3 \
+ testdata/testoutput4 testdata/testoutput5 testdata/testoutput6 \
+ testdata/testoutput7 testdata/testoutput8 testdata/testoutput9 \
+ testdata/testoutput10 testdata/testoutput11 \
+ testdata/testoutput12 testdata/wintestinput3 \
+ testdata/wintestoutput3 perltest.pl pcredemo.c $(pcrecpp_man) \
+ cmake/COPYING-CMAKE-SCRIPTS \
cmake/FindPackageHandleStandardArgs.cmake \
cmake/FindReadline.cmake CMakeLists.txt config-cmake.h.in
@@ -530,7 +539,7 @@
# We have .pc files for pkg-config users.
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libpcre.pc $(am__append_7)
+pkgconfig_DATA = libpcre.pc libpcreposix.pc $(am__append_7)
dist_man_MANS = \
doc/pcre.3 \
doc/pcre-config.1 \
@@ -629,6 +638,8 @@
-rm -f config.h stamp-h1
libpcre.pc: $(top_builddir)/config.status $(srcdir)/libpcre.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
+libpcreposix.pc: $(top_builddir)/config.status $(srcdir)/libpcreposix.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
libpcrecpp.pc: $(top_builddir)/config.status $(srcdir)/libpcrecpp.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
pcre-config: $(top_builddir)/config.status $(srcdir)/pcre-config.in
Modified: trunk/Externals/pcre/NEWS
===================================================================
--- trunk/Externals/pcre/NEWS 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/NEWS 2009-12-29 18:22:40 UTC (rev 7068)
@@ -1,6 +1,21 @@
News about PCRE releases
------------------------
+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.
+
+
Release 7.9 11-Apr-09
---------------------
Modified: trunk/Externals/pcre/NON-UNIX-USE
===================================================================
--- trunk/Externals/pcre/NON-UNIX-USE 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/NON-UNIX-USE 2009-12-29 18:22:40 UTC (rev 7068)
@@ -12,9 +12,10 @@
Comments about Win32 builds
Building PCRE on Windows with CMake
Use of relative paths with CMake on Windows
- Testing with runtest.bat
+ Testing with RunTest.bat
Building under Windows with BCC5.5
Building PCRE on OpenVMS
+ Building PCRE on Stratus OpenVOS
GENERAL
@@ -36,10 +37,10 @@
The PCRE distribution includes a "configure" file for use by the Configure/Make
build system, as found in many Unix-like environments. There is also support
-support for CMake, which some users prefer, in particular in Windows
-environments. There are some instructions for CMake under Windows in the
-section entitled "Building PCRE with CMake" below. CMake can also be used to
-build PCRE in Unix-like systems.
+support for CMake, which some users prefer, especially in Windows environments.
+There are some instructions for CMake under Windows in the section entitled
+"Building PCRE with CMake" below. CMake can also be used to build PCRE in
+Unix-like systems.
GENERIC INSTRUCTIONS FOR THE PCRE C LIBRARY
@@ -278,40 +279,42 @@
BUILDING PCRE ON WINDOWS WITH CMAKE
-CMake is an alternative build facility that can be used instead of the
-traditional Unix "configure". CMake version 2.4.7 supports Borland makefiles,
-MinGW makefiles, MSYS makefiles, NMake makefiles, UNIX makefiles, Visual Studio
-6, Visual Studio 7, Visual Studio 8, and Watcom W8. The following instructions
+CMake is an alternative configuration facility that can be used instead of the
+traditional Unix "configure". CMake creates project files (make files, solution
+files, etc.) tailored to numerous development environments, including Visual
+Studio, Borland, Msys, MinGW, NMake, and Unix. The following instructions
were contributed by a PCRE user.
-1. Download CMake 2.4.7 or above from http://www.cmake.org/, install and ensure
- that cmake\bin is on your path.
+1. Install the latest CMake version available from http://www.cmake.org/, and
+ ensure that cmake\bin is on your path.
2. Unzip (retaining folder structure) the PCRE source tree into a source
directory such as C:\pcre.
-3. Create a new, empty build directory: C:\pcre\build\
+3. Create a new, empty build directory, for example C:\pcre\build\
-4. Run CMakeSetup from the Shell envirornment of your build tool, e.g., Msys
- for Msys/MinGW or Visual Studio Command Prompt for VC/VC++
+4. Run cmake-gui from the Shell envirornment of your build tool, for example,
+ Msys for Msys/MinGW or Visual Studio Command Prompt for VC/VC++.
5. Enter C:\pcre\pcre-xx and C:\pcre\build for the source and build
- directories, respectively
+ directories, respectively.
6. Hit the "Configure" button.
-7. Select the particular IDE / build tool that you are using (Visual Studio,
- MSYS makefiles, MinGW makefiles, etc.)
+7. Select the particular IDE / build tool that you are using (Visual
+ Studio, MSYS makefiles, MinGW makefiles, etc.)
-8. The GUI will then list several configuration options. This is where you can
- enable UTF-8 support, etc.
+8. The GUI will then list several configuration options. This is where
+ you can enable UTF-8 support or other PCRE optional features.
-9. Hit "Configure" again. The adjacent "OK" button should now be active.
+9. Hit "Configure" again. The adjacent "Generate" button should now be
+ active.
-10. Hit "OK".
+10. Hit "Generate".
11. The build directory should now contain a usable build system, be it a
- solution file for Visual Studio, makefiles for MinGW, etc.
+ solution file for Visual Studio, makefiles for MinGW, etc. Exit from
+ cmake-gui and use the generated build system with your compiler or IDE.
USE OF RELATIVE PATHS WITH CMAKE ON WINDOWS
@@ -444,5 +447,52 @@
$!
=========================
-Last Updated: 17 March 2009
+
+BUILDING PCRE ON STRATUS OPENVOS
+
+These notes on the port of PCRE to VOS (lightly edited) were supplied by
+Ashutosh Warikoo, whose email address has the local part awarikoo and the
+domain nse.co.in. The port was for version 7.9 in August 2009.
+
+1. Building PCRE
+
+I built pcre on OpenVOS Release 17.0.1at using GNU Tools 3.4a without any
+problems. I used the following packages to build PCRE:
+
+ ftp://ftp.stratus.com/pub/vos/posix/ga/posix.save.evf.gz
+
+Please read and follow the instructions that come with these packages. To start
+the build of pcre, from the root of the package type:
+
+ ./build.sh
+
+2. Installing PCRE
+
+Once you have successfully built PCRE, login to the SysAdmin group, switch to
+the root user, and type
+
+ [ !create_dir (master_disk)>usr --if needed ]
+ [ !create_dir (master_disk)>usr>local --if needed ]
+ !gmake install
+
+This installs PCRE and its man pages into /usr/local. You can add
+(master_disk)>usr>local>bin to your command search paths, or if you are in
+BASH, add /usr/local/bin to the PATH environment variable.
+
+4. Restrictions
+
+This port requires readline library optionally. However during the build I
+faced some yet unexplored errors while linking with readline. As it was an
+optional component I chose to disable it.
+
+5. Known Problems
+
+I ran a the test suite, but you will have to be your own judge of whether this
+command, and this port, suits your purposes. If you find any problems that
+appear to be related to the port itself, please let me know. Please see the
+build.log file in the root of the package also.
+
+
+=========================
+Last Updated: 05 October 2009
****
Modified: trunk/Externals/pcre/PrepareRelease
===================================================================
--- trunk/Externals/pcre/PrepareRelease 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/PrepareRelease 2009-12-29 18:22:40 UTC (rev 7068)
@@ -4,12 +4,13 @@
# processing of the documentation, detrails files, and creates pcre.h.generic
# and config.h.generic (for use by builders who can't run ./configure).
-# You must run this script before runnning "make dist". It makes use of the
-# following files:
+# You must run this script before runnning "make dist". If its first argument
+# is "doc", it stops after preparing the documentation. There are no other
+# arguments. The script makes use of the following files:
# 132html A Perl script that converts a .1 or .3 man page into HTML. It
-# is called from MakeRelease. It "knows" the relevant troff
-# constructs that are used in the PCRE man pages.
+# "knows" the relevant troff constructs that are used in the PCRE
+# man pages.
# CleanTxt A Perl script that cleans up the output of "nroff -man" by
# removing backspaces and other redundant text so as to produce
@@ -37,8 +38,9 @@
This file contains a concatenation of the PCRE man pages, converted to plain
text format for ease of searching with a text editor, or for use on systems
that do not have a man page processor. The small individual files that give
-synopses of each function in the library have not been included. There are
-separate text files for the pcregrep and pcretest commands.
+synopses of each function in the library have not been included. Neither has
+the pcredemo program. There are separate text files for the pcregrep and
+pcretest commands.
-----------------------------------------------------------------------------
@@ -68,6 +70,41 @@
done
+# Make pcredemo.3 from the pcredemo.c source file
+
+echo "Making pcredemo.3"
+perl <<"END" >pcredemo.3
+ open(IN, "../pcredemo.c") || die "Failed to open pcredemo.c\n";
+ open(OUT, ">pcredemo.3") || die "Failed to open pcredemo.3\n";
+ print OUT ".\\\" Start example.\n" .
+ ".de EX\n" .
+ ". nr mE \\\\n(.f\n" .
+ ". nf\n" .
+ ". nh\n" .
+ ". ft CW\n" .
+ "..\n" .
+ ".\n" .
+ ".\n" .
+ ".\\\" End example.\n" .
+ ".de EE\n" .
+ ". ft \\\\n(mE\n" .
+ ". fi\n" .
+ ". hy \\\\n(HY\n" .
+ "..\n" .
+ ".\n" .
+ ".EX\n" ;
+ while (<IN>)
+ {
+ s/\\/\\e/g;
+ print OUT;
+ }
+ print OUT ".EE\n";
+ close(IN);
+ close(OUT);
+END
+if [ $? != 0 ] ; then exit 1; fi
+
+
# Make HTML form of the documentation.
echo "Making HTML documentation"
@@ -83,6 +120,7 @@
# Exclude table of contents for function summaries. It seems that expr
# forces an anchored regex. Also exclude them for small pages that have
# only one section.
+
for file in *.3 ; do
base=`basename $file .3`
toc=-toc
@@ -98,10 +136,11 @@
if [ $? != 0 ] ; then exit 1; fi
done
-# End of documentation processing
+# End of documentation processing; stop if only documentation required.
cd ..
echo Documentation done
+if [ "$1" = "doc" ] ; then exit; fi
# These files are detrailed; do not detrail the test data because there may be
# significant trailing spaces. The configure files are also omitted from the
@@ -128,6 +167,7 @@
RunTest.bat \
pcre-config.in \
libpcre.pc.in \
+ libpcreposix.pc.in \
libpcrecpp.pc.in \
config.h.in \
pcre_printint.src \
Modified: trunk/Externals/pcre/README
===================================================================
--- trunk/Externals/pcre/README 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/README 2009-12-29 18:22:40 UTC (rev 7068)
@@ -24,6 +24,7 @@
Shared libraries on Unix-like systems
Cross-compiling on Unix-like systems
Using HP's ANSI C++ compiler (aCC)
+ Using PCRE from MySQL
Making new tarballs
Testing PCRE
Character tables
@@ -111,8 +112,8 @@
For a non-Unix system, please read the comments in the file NON-UNIX-USE,
though if your system supports the use of "configure" and "make" you may be
able to build PCRE in the same way as for Unix-like systems. PCRE can also be
-configured in many platform environments using the GUI facility of CMake's
-CMakeSetup. It creates Makefiles, solution files, etc.
+configured in many platform environments using the GUI facility provided by
+CMake's cmake-gui command. This creates Makefiles, solution files, etc.
PCRE has been compiled on many different operating systems. It should be
straightforward to build PCRE on any system that has a Standard C compiler and
@@ -478,6 +479,26 @@
CXXLDFLAGS="-lstd_v2 -lCsup_v2"
+Using Sun's compilers for Solaris
+---------------------------------
+
+A user reports that the following configurations work on Solaris 9 sparcv9 and
+Solaris 9 x86 (32-bit):
+
+ Solaris 9 sparcv9: ./configure --disable-cpp CC=/bin/cc CFLAGS="-m64 -g"
+ Solaris 9 x86: ./configure --disable-cpp CC=/bin/cc CFLAGS="-g"
+
+
+Using PCRE from MySQL
+---------------------
+
+On systems where both PCRE and MySQL are installed, it is possible to make use
+of PCRE from within MySQL, as an alternative to the built-in pattern matching.
+There is a web page that tells you how to do this:
+
+ http://www.mysqludf.org/lib_mysqludf_preg/index.php
+
+
Making new tarballs
-------------------
@@ -553,23 +574,33 @@
The fourth test checks the UTF-8 support. It is not run automatically unless
PCRE is built with UTF-8 support. To do this you must set --enable-utf8 when
-running "configure". This file can be also fed directly to the perltest script,
-provided you are running Perl 5.8 or higher. (For Perl 5.6, a small patch,
-commented in the script, can be be used.)
+running "configure". This file can be also fed directly to the perltest.pl
+script, provided you are running Perl 5.8 or higher.
The fifth test checks error handling with UTF-8 encoding, and internal UTF-8
features of PCRE that are not relevant to Perl.
-The sixth test checks the support for Unicode character properties. It it not
-run automatically unless PCRE is built with Unicode property support. To to
-this you must set --enable-unicode-properties when running "configure".
+The sixth test (which is Perl-5.10 compatible) checks the support for Unicode
+character properties. It it not run automatically unless PCRE is built with
+Unicode property support. To to this you must set --enable-unicode-properties
+when running "configure".
The seventh, eighth, and ninth tests check the pcre_dfa_exec() alternative
matching function, in non-UTF-8 mode, UTF-8 mode, and UTF-8 mode with Unicode
property support, respectively. The eighth and ninth tests are not run
automatically unless PCRE is build with the relevant support.
+The tenth test checks some internal offsets and code size features; it is run
+only when the default "link size" of 2 is set (in other cases the sizes
+change).
+The eleventh test checks out features that are new in Perl 5.10, and the
+twelfth test checks a number internals and non-Perl features concerned with
+Unicode property support. It it not run automatically unless PCRE is built with
+Unicode property support. To to this you must set --enable-unicode-properties
+when running "configure".
+
+
Character tables
----------------
@@ -712,7 +743,7 @@
) "configure" and config.h
depcomp ) script to find program dependencies, generated by
) automake
- doc/*.3 man page sources for the PCRE functions
+ doc/*.3 man page sources for PCRE
doc/*.1 man page sources for pcregrep and pcretest
doc/index.html.src the base HTML page
doc/html/* HTML documentation
@@ -721,6 +752,7 @@
doc/perltest.txt plain text documentation of Perl test program
install-sh a shell script for installing files
libpcre.pc.in template for libpcre.pc for pkg-config
+ libpcreposix.pc.in template for libpcreposix.pc for pkg-config
libpcrecpp.pc.in template for libpcrecpp.pc for pkg-config
ltmain.sh file used to build a libtool script
missing ) common stub for a few missing GNU programs while
@@ -764,4 +796,4 @@
Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
-Last updated: 21 March 2009
+Last updated: 19 October 2009
Modified: trunk/Externals/pcre/RunGrepTest
===================================================================
--- trunk/Externals/pcre/RunGrepTest 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/RunGrepTest 2009-12-29 18:22:40 UTC (rev 7068)
@@ -14,9 +14,7 @@
echo "Testing pcregrep"
$pcregrep -V
-cf="diff -ub"
valgrind=
-
while [ $# -gt 0 ] ; do
case $1 in
valgrind) valgrind="valgrind -q --leak-check=no";;
@@ -25,6 +23,18 @@
shift
done
+cf="diff -ub"
+
+# Set up a suitable "diff" command for comparison. Some systems have a diff
+# that lacks a -u option. Try to deal with this; better do the test for the -b
+# option as well.
+
+if diff -u /dev/null /dev/null; then
+ if diff -ub /dev/null /dev/null; then cf="diff -ub"; else cf="diff -u"; fi
+else
+ if diff -b /dev/null /dev/null; then cf="diff -b"; else cf="diff"; fi
+fi
+
# If PCRE has been built in a directory other than the source directory, and
# this test is being run from "make check" as usual, then $(srcdir) will be
# set. If not, set it to the current directory. We then arrange to run the
@@ -179,13 +189,13 @@
(cd $srcdir; $valgrind $pcregrep -on 'before|zero|after' ./testdata/grepinput) >>testtry
echo "---------------------------- Test 43 ------------------------------" >>testtry
-(cd $srcdir; $valgrind $pcregrep -on -e before -e zero -e after ./testdata/grepinput) >>testtry
+(cd $srcdir; $valgrind $pcregrep -on -e before -ezero -e after ./testdata/grepinput) >>testtry
echo "---------------------------- Test 44 ------------------------------" >>testtry
(cd $srcdir; $valgrind $pcregrep -on -f ./testdata/greplist -e binary ./testdata/grepinput) >>testtry
echo "---------------------------- Test 45 ------------------------------" >>testtry
-(cd $srcdir; $valgrind $pcregrep -e abc -e '(unclosed' ./testdata/grepinput) 2>>testtry >>testtry
+(cd $srcdir; $valgrind $pcregrep -eabc -e '(unclosed' ./testdata/grepinput) 2>>testtry >>testtry
echo "---------------------------- Test 46 ------------------------------" >>testtry
(cd $srcdir; $valgrind $pcregrep -Fx "AB.VE
@@ -217,6 +227,24 @@
echo "---------------------------- Test 54 -----------------------------" >>testtry
(cd $srcdir; $valgrind $pcregrep -f./testdata/greplist --color=always ./testdata/grepinputx) >>testtry
+echo "---------------------------- Test 55 -----------------------------" >>testtry
+(cd $srcdir; $valgrind $pcregrep -c lazy ./testdata/grepinput*) >>testtry
+
+echo "---------------------------- Test 56 -----------------------------" >>testtry
+(cd $srcdir; $valgrind $pcregrep -c -l lazy ./testdata/grepinput*) >>testtry
+
+echo "---------------------------- Test 57 -----------------------------" >>testtry
+(cd $srcdir; $valgrind $pcregrep --regex=PATTERN ./testdata/grepinput) >>testtry
+
+echo "---------------------------- Test 58 -----------------------------" >>testtry
+(cd $srcdir; $valgrind $pcregrep --regexp=PATTERN ./testdata/grepinput) >>testtry
+
+echo "---------------------------- Test 59 -----------------------------" >>testtry
+(cd $srcdir; $valgrind $pcregrep --regex PATTERN ./testdata/grepinput) >>testtry
+
+echo "---------------------------- Test 60 -----------------------------" >>testtry
+(cd $srcdir; $valgrind $pcregrep --regexp PATTERN ./testdata/grepinput) >>testtry
+
# Now compare the results.
$cf $srcdir/testdata/grepoutput testtry
Modified: trunk/Externals/pcre/RunTest
===================================================================
--- trunk/Externals/pcre/RunTest 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/RunTest 2009-12-29 18:22:40 UTC (rev 7068)
@@ -44,6 +44,8 @@
do8=no
do9=no
do10=no
+do11=no
+do12=no
while [ $# -gt 0 ] ; do
case $1 in
@@ -57,6 +59,8 @@
8) do8=yes;;
9) do9=yes;;
10) do10=yes;;
+ 11) do11=yes;;
+ 12) do12=yes;;
valgrind) valgrind="valgrind -q";;
*) echo "Unknown test number $1"; exit 1;;
esac
@@ -91,6 +95,10 @@
echo "Can't run test 10 because Unicode property support is not configured"
exit 1
fi
+ if [ $do12 = yes ] ; then
+ echo "Can't run test 12 because Unicode property support is not configured"
+ exit 1
+ fi
fi
if [ $link_size -ne 2 ] ; then
@@ -104,7 +112,7 @@
if [ $do1 = no -a $do2 = no -a $do3 = no -a $do4 = no -a \
$do5 = no -a $do6 = no -a $do7 = no -a $do8 = no -a \
- $do9 = no -a $do10 = no ] ; then
+ $do9 = no -a $do10 = no -a $do11 = no -a $do12 = no ] ; then
do1=yes
do2=yes
do3=yes
@@ -115,6 +123,8 @@
if [ $utf8 -ne 0 ] ; then do8=yes; fi
if [ $utf8 -ne 0 -a $ucp -ne 0 ] ; then do9=yes; fi
if [ $link_size -eq 2 -a $ucp -ne 0 ] ; then do10=yes; fi
+ do11=yes
+ if [ $utf8 -ne 0 -a $ucp -ne 0 ] ; then do12=yes; fi
fi
# Show which release
@@ -123,10 +133,10 @@
echo PCRE C library tests
./pcretest /dev/null
-# Primary test, Perl-compatible
+# Primary test, Perl-compatible for both 5.8 and 5.10
if [ $do1 = yes ] ; then
- echo "Test 1: main functionality (Perl compatible)"
+ echo "Test 1: main functionality (Perl 5.8 & 5.10 compatible)"
$valgrind ./pcretest -q $testdata/testinput1 testtry
if [ $? = 0 ] ; then
$cf $testdata/testoutput1 testtry
@@ -136,10 +146,10 @@
echo "OK"
fi
-# PCRE tests that are not Perl-compatible - API & error tests, mostly
+# PCRE tests that are not Perl-compatible - API, errors, internals
if [ $do2 = yes ] ; then
- echo "Test 2: API and error handling (not Perl compatible)"
+ echo "Test 2: API, errors, internals, and non-Perl stuff"
$valgrind ./pcretest -q $testdata/testinput2 testtry
if [ $? = 0 ] ; then
$cf $testdata/testoutput2 testtry
@@ -205,7 +215,7 @@
# Additional tests for UTF8 support
if [ $do4 = yes ] ; then
- echo "Test 4: UTF-8 support (Perl compatible)"
+ echo "Test 4: UTF-8 support (Perl 5.8 & 5.10 compatible)"
$valgrind ./pcretest -q $testdata/testinput4 testtry
if [ $? = 0 ] ; then
$cf $testdata/testoutput4 testtry
@@ -216,7 +226,7 @@
fi
if [ $do5 = yes ] ; then
- echo "Test 5: API and internals for UTF-8 support (not Perl compatible)"
+ echo "Test 5: API, internals, and non-Perl stuff for UTF-8 support"
$valgrind ./pcretest -q $testdata/testinput5 testtry
if [ $? = 0 ] ; then
$cf $testdata/testoutput5 testtry
@@ -227,7 +237,7 @@
fi
if [ $do6 = yes ] ; then
- echo "Test 6: Unicode property support"
+ echo "Test 6: Unicode property support (Perl 5.10 compatible)"
$valgrind ./pcretest -q $testdata/testinput6 testtry
if [ $? = 0 ] ; then
$cf $testdata/testoutput6 testtry
@@ -289,4 +299,30 @@
echo "OK"
fi
+# Test of Perl 5.10 features
+
+if [ $do11 = yes ] ; then
+ echo "Test 11: Perl 5.10 features"
+ $valgrind ./pcretest -q $testdata/testinput11 testtry
+ if [ $? = 0 ] ; then
+ $cf $testdata/testoutput11 testtry
+ if [ $? != 0 ] ; then exit 1; fi
+ else exit 1
+ fi
+ echo "OK"
+fi
+
+# Test non-Perl-compatible Unicode property support
+
+if [ $do12 = yes ] ; then
+ echo "Test 12: API, internals, and non-Perl stuff for Unicode property support"
+ $valgrind ./pcretest -q $testdata/testinput12 testtry
+ if [ $? = 0 ] ; then
+ $cf $testdata/testoutput12 testtry
+ if [ $? != 0 ] ; then exit 1; fi
+ else exit 1
+ fi
+ echo "OK"
+fi
+
# End
Modified: trunk/Externals/pcre/RunTest.bat
===================================================================
--- trunk/Externals/pcre/RunTest.bat 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/RunTest.bat 2009-12-29 18:22:40 UTC (rev 7068)
@@ -1,5 +1,5 @@
@rem This file was contributed by Ralf Junker, and touched up by
-@rem Daniel Richard G. Test 10 added by Philip H.
+@rem Daniel Richard G. Tests 10-12 added by Philip H.
@rem Philip H also changed test 3 to use "wintest" files.
@rem
@rem MS Windows batch file to run pcretest on testfiles with the correct
@@ -25,6 +25,8 @@
%pcretest% -q -dfa %srcdir%\testdata\testinput8 > testout\testoutput8
%pcretest% -q -dfa %srcdir%\testdata\testinput9 > testout\testoutput9
%pcretest% -q %srcdir%\testdata\testinput10 > testout\testoutput10
+%pcretest% -q %srcdir%\testdata\testinput11 > testout\testoutput11
+%pcretest% -q %srcdir%\testdata\testinput12 > testout\testoutput12
fc /n %srcdir%\testdata\testoutput1 testout\testoutput1
fc /n %srcdir%\testdata\testoutput2 testout\testoutput2
@@ -37,3 +39,5 @@
fc /n %srcdir%\testdata\testoutput8 testout\testoutput8
fc /n %srcdir%\testdata\testoutput9 testout\testoutput9
fc /n %srcdir%\testdata\testoutput10 testout\testoutput10
+fc /n %srcdir%\testdata\testoutput11 testout\testoutput11
+fc /n %srcdir%\testdata\testoutput12 testout\testoutput12
Modified: trunk/Externals/pcre/Win32/ALL_BUILD.vcproj
===================================================================
--- trunk/Externals/pcre/Win32/ALL_BUILD.vcproj 2009-12-29 14:22:46 UTC (rev 7067)
+++ trunk/Externals/pcre/Win32/ALL_BUILD.vcproj 2009-12-29 18:22:40 UTC (rev 7068)
@@ -1,11 +1,9 @@
-<?xml version="1.0" encoding="Windows-1252"?>
+<?xml version="1.0" encoding = "Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="7.10"
+ Version="8.00"
Name="ALL_BUILD"
- ProjectGUID="{A0E541DB-A9FD-4A27-AC5C-C542673083E3}"
- SccProjectName=""
- SccLocalPath=""
+ ProjectGUID="{8EA48733-5246-4479-AC13-94A899A510BF}"
Keyword="Win32Proj">
<Platforms>
<Platform
@@ -14,15 +12,27 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="..\..\..\Build\pcre\Debug"
- IntermediateDirectory="..\..\..\BuildTmp\pcre\ALL_BUILD.dir\Debug"
+ OutputDirectory="Debug"
+ IntermediateDirectory="ALL_BUILD.dir\Debug"
ConfigurationType="10"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="D:\Work\WinMerge\WinMerge_SVN\Externals\pcre\Win32;D:\Work\WinMerge\WinMerge_SVN\Externals\pcre;"
+ ExceptionHandling="0"
+ PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"Debug\""
+ AssemblerListingLocation="Debug"
+ ObjectFile="$(IntDir)\"
+/>
+ <Tool
Name="VCCustomBuildTool"/>
<Tool
+ Name="VCResourceCompilerTool"
+ AdditionalIncludeDirectories="D:\Work\WinMerge\WinMerge_SVN\Externals\pcre\Win32;D:\Work\WinMerge\WinMerge_SVN\Externals\pcre;"
+ PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"Debug\""/>
+ <Tool
Name="VCMIDLTool"
PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"Debug\""
MkTypLibCompatible="FALSE"
@@ -35,21 +45,35 @@
InterfaceIdentifierFileName="$(InputName)_i.c"
ProxyFileName="$(InputName)_p.c"/>
<Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="..\..\..\Build\pcre\Release"
- IntermediateDirectory="..\..\..\Build\pcre\ALL_BUILD.dir\Release"
+ OutputDirectory="Release"
+ IntermediateDirectory="ALL_BUILD.dir\Release"
ConfigurationType="10"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="D:\Work\WinMerge\WinMerge_SVN\Externals\pcre\Win32;D:\Work\WinMerge\WinMerge_SVN\Externals\pcre;"
+ ExceptionHandling="0"
+ PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"Release\""
+ AssemblerListingLocation="Release"
+ ObjectFile="$(IntDir)\"
+/>
+ <Tool
Name="VCCustomBuildTool"/>
<Tool
+ Name="VCResourceCompilerTool"
+ AdditionalIncludeDirectories="D:\Work\WinMerge\WinMerge_SVN\Externals\pcre\Win32;D:\Work\WinMerge\WinMerge_SVN\Externals\pcre;"
+ PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"Release\""/>
+ <Tool
Name="VCMIDLTool"
PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"Release\""
MkTypLibCompatible="FALSE"
@@ -62,21 +86,35 @@
InterfaceIdentifierFileName="$(InputName)_i.c"
ProxyFileName="$(InputName)_p.c"/>
<Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
</Configuration>
<Configuration
Name="MinSizeRel|Win32"
- OutputDirectory="..\..\..\Build\pcre\MinSizeRel"
- IntermediateDirectory="..\..\..\BuildTmp\pcre\ALL_BUILD.dir\MinSizeRel"
+ OutputDirectory="MinSizeRel"
+ IntermediateDirectory="ALL_BUILD.dir\MinSizeRel"
ConfigurationType="10"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="D:\Work\WinMerge\WinMerge_SVN\Externals\pcre\Win32;D:\Work\WinMerge\WinMerge_SVN\Externals\pcre;"
+ ExceptionHandling="0"
+ PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"MinSizeRel\""
+ AssemblerListingLocation="MinSizeRel"
+ ObjectFile="$(IntDir)\"
+/>
+ <Tool
Name="VCCustomBuildTool"/>
<Tool
+ Name="VCResourceCompilerTool"
+ AdditionalIncludeDirectories="D:\Work\WinMerge\WinMerge_SVN\Externals\pcre\Win32;D:\Work\WinMerge\WinMerge_SVN\Externals\pcre;"
+ PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"MinSizeRel\""/>
+ <Tool
Name="VCMIDLTool"
PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"MinSizeRel\""
MkTypLibCompatible="FALSE"
@@ -89,21 +127,35 @@
InterfaceIdentifierFileName="$(InputName)_i.c"
ProxyFileName="$(InputName)_p.c"/>
<Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
</Configuration>
<Configuration
Name="RelWithDebInfo|Win32"
- OutputDirectory="..\..\..\Build\pcre\RelWithDebInfo"
- IntermediateDirectory="..\..\..\Build\pcre\ALL_BUILD.dir\RelWithDebInfo"
+ OutputDirectory="RelWithDebInfo"
+ IntermediateDirectory="ALL_BUILD.dir\RelWithDebInfo"
ConfigurationType="10"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="D:\Work\WinMerge\WinMerge_SVN\Externals\pcre\Win32;D:\Work\WinMerge\WinMerge_SVN\Externals\pcre;"
+ ExceptionHandling="0"
+ PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"RelWithDebInfo\""
+ AssemblerListingLocation="RelWithDebInfo"
+ ObjectFile="$(IntDir)\"
+/>
+ <Tool
Name="VCCustomBuildTool"/>
<Tool
+ Name="VCResourceCompilerTool"
+ AdditionalIncludeDirectories="D:\Work\WinMerge\WinMerge_SVN\Externals\pcre\Win32;D:\Work\WinMerge\WinMerge_SVN\Externals\pcre;"
+ PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"RelWithDebInfo\""/>
+ <Tool
Name="VCMIDLTool"
PreprocessorDefinitions="HAVE_CONFIG_H,_CRT_SECURE_NO_DEPRECATE,CMAKE_INTDIR=\"RelWithDebInfo\""
MkTypLibCompatible="FALSE"
@@ -116,99 +168,99 @@
InterfaceIdentifierFileName="$(InputName)_i.c"
ProxyFileName="$(InputName)_p.c"/>
<Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
</Configuration>
</Configurations>
- <References>
- </References>
<Files>
- <Filter
- Name="CMake Rules"
- Filter="">
<File
- ...
[truncated message content] |