This commit is contained in:
parent
2a422c2c11
commit
7917c53661
41
pcre-7.0.dif
41
pcre-7.0.dif
@ -1,41 +0,0 @@
|
||||
--- RunGrepTest.in
|
||||
+++ RunGrepTest.in 2007/01/18 08:01:45
|
||||
@@ -139,7 +139,7 @@
|
||||
echo "RC=$?" >>testtry
|
||||
|
||||
echo "---------------------------- Test 36 -----------------------------" >>testtry
|
||||
-$valgrind ./pcregrep -L -r --include=grepinput --exclude 'grepinput$' 'fox' $testdata >>testtry
|
||||
+$valgrind ./pcregrep -L -r --include=grepinput --exclude 'grepinput$' 'fox' $testdata | sort >>testtry
|
||||
echo "RC=$?" >>testtry
|
||||
|
||||
echo "---------------------------- Test 37 -----------------------------" >>testtry
|
||||
--- pcrecpp.cc
|
||||
+++ pcrecpp.cc 2007/02/09 09:12:11
|
||||
@@ -356,8 +356,13 @@
|
||||
newline_mode = PCRE_NEWLINE_CR;
|
||||
else if (newline == 3338)
|
||||
newline_mode = PCRE_NEWLINE_CRLF;
|
||||
- else
|
||||
- assert("" == "Unexpected return value from pcre_config(NEWLINE)");
|
||||
+ else {
|
||||
+ fprintf (stderr,
|
||||
+ "Unexpected return value from pcre_config(NEWLINE) -> %d\n",
|
||||
+ newline
|
||||
+ );
|
||||
+ abort();
|
||||
+ }
|
||||
}
|
||||
return newline_mode;
|
||||
}
|
||||
--- testdata/grepoutput
|
||||
+++ testdata/grepoutput 2007/01/18 08:01:45
|
||||
@@ -342,8 +342,8 @@
|
||||
./testdata/grepinputx
|
||||
RC=0
|
||||
---------------------------- Test 36 -----------------------------
|
||||
-./testdata/grepinputx
|
||||
./testdata/grepinput8
|
||||
+./testdata/grepinputx
|
||||
RC=0
|
||||
---------------------------- Test 37 -----------------------------
|
||||
aaaaa0
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:27265b2eb2c2e8026e02df7fbdc30eec05f00b9a1e7f9e652a0258d4888f0bbe
|
||||
size 607541
|
3
pcre-7.1.tar.bz2
Normal file
3
pcre-7.1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9182500abc517c833f054ad38e146776d5cc7e8976a8ad0c77432b790067f366
|
||||
size 729915
|
152
pcre.changes
152
pcre.changes
@ -1,3 +1,155 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 25 13:39:55 CEST 2007 - ms@suse.de
|
||||
|
||||
- update to pcre 7.1
|
||||
|
||||
1. Applied Bob Rossi and Daniel G's patches to convert the build system to one
|
||||
that is more "standard", making use of automake and other Autotools. There
|
||||
is some re-arrangement of the files and adjustment of comments consequent
|
||||
on this.
|
||||
|
||||
2. Part of the patch fixed a problem with the pcregrep tests. The test of -r
|
||||
for recursive directory scanning broke on some systems because the files
|
||||
are not scanned in any specific order and on different systems the order
|
||||
was different. A call to "sort" has been inserted into RunGrepTest for the
|
||||
approprate test as a short-term fix. In the longer term there may be an
|
||||
alternative.
|
||||
|
||||
3. I had an email from Eric Raymond about problems translating some of PCRE's
|
||||
man pages to HTML (despite the fact that I distribute HTML pages, some
|
||||
people do their own conversions for various reasons). The problems
|
||||
concerned the use of low-level troff macros .br and .in. I have therefore
|
||||
removed all such uses from the man pages (some were redundant, some could
|
||||
be replaced by .nf/.fi pairs). The 132html script that I use to generate
|
||||
HTML has been updated to handle .nf/.fi and to complain if it encounters
|
||||
.br or .in.
|
||||
|
||||
4. Updated comments in configure.ac that get placed in config.h.in and also
|
||||
arranged for config.h to be included in the distribution, with the name
|
||||
config.h.generic, for the benefit of those who have to compile without
|
||||
Autotools (compare pcre.h, which is now distributed as pcre.h.generic).
|
||||
|
||||
5. Updated the support (such as it is) for Virtual Pascal, thanks to Stefan
|
||||
Weber: (1) pcre_internal.h was missing some function renames; (2) updated
|
||||
makevp.bat for the current PCRE, using the additional files
|
||||
makevp_c.txt, makevp_l.txt, and pcregexp.pas.
|
||||
|
||||
6. A Windows user reported a minor discrepancy with test 2, which turned out
|
||||
to be caused by a trailing space on an input line that had got lost in his
|
||||
copy. The trailing space was an accident, so I've just removed it.
|
||||
|
||||
7. Add -Wl,-R... flags in pcre-config.in for *BSD* systems, as I'm told
|
||||
that is needed.
|
||||
|
||||
8. Mark ucp_table (in ucptable.h) and ucp_gentype (in pcre_ucp_searchfuncs.c)
|
||||
as "const" (a) because they are and (b) because it helps the PHP
|
||||
maintainers who have recently made a script to detect big data structures
|
||||
in the php code that should be moved to the .rodata section. I remembered
|
||||
to update Builducptable as well, so it won't revert if ucptable.h is ever
|
||||
re-created.
|
||||
|
||||
9. Added some extra #ifdef SUPPORT_UTF8 conditionals into pcretest.c,
|
||||
pcre_printint.src, pcre_compile.c, pcre_study.c, and pcre_tables.c, in
|
||||
order to be able to cut out the UTF-8 tables in the latter when UTF-8
|
||||
support is not required. This saves 1.5-2K of code, which is important in
|
||||
some applications.
|
||||
|
||||
Later: more #ifdefs are needed in pcre_ord2utf8.c and pcre_valid_utf8.c
|
||||
so as not to refer to the tables, even though these functions will never be
|
||||
called when UTF-8 support is disabled. Otherwise there are problems with a
|
||||
shared library.
|
||||
|
||||
10. Fixed two bugs in the emulated memmove() function in pcre_internal.h:
|
||||
|
||||
(a) It was defining its arguments as char * instead of void *.
|
||||
|
||||
(b) It was assuming that all moves were upwards in memory; this was true
|
||||
a long time ago when I wrote it, but is no longer the case.
|
||||
|
||||
The emulated memove() is provided for those environments that have neither
|
||||
memmove() nor bcopy(). I didn't think anyone used it these days, but that
|
||||
is clearly not the case, as these two bugs were recently reported.
|
||||
|
||||
11. The script PrepareRelease is now distributed: it calls 132html, CleanTxt,
|
||||
and Detrail to create the HTML documentation, the .txt form of the man
|
||||
pages, and it removes trailing spaces from listed files. It also creates
|
||||
pcre.h.generic and config.h.generic from pcre.h and config.h. In the latter
|
||||
case, it wraps all the #defines with #ifndefs. This script should be run
|
||||
before "make dist".
|
||||
|
||||
12. Fixed two fairly obscure bugs concerned with quantified caseless matching
|
||||
with Unicode property support.
|
||||
|
||||
(a) For a maximizing quantifier, if the two different cases of the
|
||||
character were of different lengths in their UTF-8 codings (there are
|
||||
some cases like this - I found 11), and the matching function had to
|
||||
back up over a mixture of the two cases, it incorrectly assumed they
|
||||
were both the same length.
|
||||
|
||||
(b) When PCRE was configured to use the heap rather than the stack for
|
||||
recursion during matching, it was not correctly preserving the data for
|
||||
the other case of a UTF-8 character when checking ahead for a match
|
||||
while processing a minimizing repeat. If the check also involved
|
||||
matching a wide character, but failed, corruption could cause an
|
||||
erroneous result when trying to check for a repeat of the original
|
||||
character.
|
||||
|
||||
13. Some tidying changes to the testing mechanism:
|
||||
|
||||
(a) The RunTest script now detects the internal link size and whether there
|
||||
is UTF-8 and UCP support by running ./pcretest -C instead of relying on
|
||||
values substituted by "configure". (The RunGrepTest script already did
|
||||
this for UTF-8.) The configure.ac script no longer substitutes the
|
||||
relevant variables.
|
||||
|
||||
(b) The debugging options /B and /D in pcretest show the compiled bytecode
|
||||
with length and offset values. This means that the output is different
|
||||
for different internal link sizes. Test 2 is skipped for link sizes
|
||||
other than 2 because of this, bypassing the problem. Unfortunately,
|
||||
there was also a test in test 3 (the locale tests) that used /B and
|
||||
failed for link sizes other than 2. Rather than cut the whole test out,
|
||||
I have added a new /Z option to pcretest that replaces the length and
|
||||
offset values with spaces. This is now used to make test 3 independent
|
||||
of link size. (Test 2 will be tidied up later.)
|
||||
|
||||
14. If erroroffset was passed as NULL to pcre_compile, it provoked a
|
||||
segmentation fault instead of returning the appropriate error message.
|
||||
|
||||
15. In multiline mode when the newline sequence was set to "any", the pattern
|
||||
^$ would give a match between the \r and \n of a subject such as "A\r\nB".
|
||||
This doesn't seem right; it now treats the CRLF combination as the line
|
||||
ending, and so does not match in that case. It's only a pattern such as ^$
|
||||
that would hit this one: something like ^ABC$ would have failed after \r
|
||||
and then tried again after \r\n.
|
||||
|
||||
16. Changed the comparison command for RunGrepTest from "diff -u" to "diff -ub"
|
||||
in an attempt to make files that differ only in their line terminators
|
||||
compare equal. This works on Linux.
|
||||
|
||||
17. Under certain error circumstances pcregrep might try to free random memory
|
||||
as it exited. This is now fixed, thanks to valgrind.
|
||||
|
||||
19. In pcretest, if the pattern /(?m)^$/g<any> was matched against the string
|
||||
"abc\r\n\r\n", it found an unwanted second match after the second \r. This
|
||||
was because its rules for how to advance for /g after matching an empty
|
||||
string at the end of a line did not allow for this case. They now check for
|
||||
it specially.
|
||||
|
||||
20. pcretest is supposed to handle patterns and data of any length, by
|
||||
extending its buffers when necessary. It was getting this wrong when the
|
||||
buffer for a data line had to be extended.
|
||||
|
||||
21. Added PCRE_NEWLINE_ANYCRLF which is like ANY, but matches only CR, LF, or
|
||||
CRLF as a newline sequence.
|
||||
|
||||
22. Code for handling Unicode properties in pcre_dfa_exec() wasn't being cut
|
||||
out by #ifdef SUPPORT_UCP. This did no harm, as it could never be used, but
|
||||
I have nevertheless tidied it up.
|
||||
|
||||
23. Added some casts to kill warnings from HP-UX ia64 compiler.
|
||||
|
||||
24. Added a man page for pcre-config.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 9 10:07:29 CET 2007 - ms@suse.de
|
||||
|
||||
|
130
pcre.spec
130
pcre.spec
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package pcre (Version 7.0)
|
||||
# spec file for package pcre (Version 7.1)
|
||||
#
|
||||
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
@ -12,15 +12,14 @@
|
||||
|
||||
Name: pcre
|
||||
BuildRequires: gcc-c++
|
||||
Version: 7.0
|
||||
Release: 5
|
||||
Version: 7.1
|
||||
Release: 1
|
||||
Summary: A library for Perl-compatible regular expressions
|
||||
License: BSD License and BSD-like, Other uncritical OpenSource License
|
||||
Group: System/Libraries
|
||||
Autoreqprov: on
|
||||
URL: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
|
||||
Source: %name-%version.tar.bz2
|
||||
Patch: pcre-%version.dif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%package devel
|
||||
Summary: A library for Perl-compatible regular expressions
|
||||
@ -55,7 +54,6 @@ Authors:
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch
|
||||
|
||||
%build
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fstack-protector"
|
||||
@ -77,6 +75,8 @@ make test
|
||||
|
||||
%install
|
||||
make DESTDIR=$RPM_BUILD_ROOT install
|
||||
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}
|
||||
mv $RPM_BUILD_ROOT/usr/share/doc/pcre $RPM_BUILD_ROOT/%{_defaultdocdir}/pcre
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
@ -101,7 +101,125 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%_libdir/pkgconfig/libpcrecpp.pc
|
||||
%_mandir/man3/*.gz
|
||||
|
||||
%changelog -n pcre
|
||||
%changelog
|
||||
* Wed Apr 25 2007 - ms@suse.de
|
||||
- update to pcre 7.1
|
||||
1. Applied Bob Rossi and Daniel G's patches to convert the build system to one
|
||||
that is more "standard", making use of automake and other Autotools. There
|
||||
is some re-arrangement of the files and adjustment of comments consequent
|
||||
on this.
|
||||
2. Part of the patch fixed a problem with the pcregrep tests. The test of -r
|
||||
for recursive directory scanning broke on some systems because the files
|
||||
are not scanned in any specific order and on different systems the order
|
||||
was different. A call to "sort" has been inserted into RunGrepTest for the
|
||||
approprate test as a short-term fix. In the longer term there may be an
|
||||
alternative.
|
||||
3. I had an email from Eric Raymond about problems translating some of PCRE's
|
||||
man pages to HTML (despite the fact that I distribute HTML pages, some
|
||||
people do their own conversions for various reasons). The problems
|
||||
concerned the use of low-level troff macros .br and .in. I have therefore
|
||||
removed all such uses from the man pages (some were redundant, some could
|
||||
be replaced by .nf/.fi pairs). The 132html script that I use to generate
|
||||
HTML has been updated to handle .nf/.fi and to complain if it encounters
|
||||
.br or .in.
|
||||
4. Updated comments in configure.ac that get placed in config.h.in and also
|
||||
arranged for config.h to be included in the distribution, with the name
|
||||
config.h.generic, for the benefit of those who have to compile without
|
||||
Autotools (compare pcre.h, which is now distributed as pcre.h.generic).
|
||||
5. Updated the support (such as it is) for Virtual Pascal, thanks to Stefan
|
||||
Weber: (1) pcre_internal.h was missing some function renames; (2) updated
|
||||
makevp.bat for the current PCRE, using the additional files
|
||||
makevp_c.txt, makevp_l.txt, and pcregexp.pas.
|
||||
6. A Windows user reported a minor discrepancy with test 2, which turned out
|
||||
to be caused by a trailing space on an input line that had got lost in his
|
||||
copy. The trailing space was an accident, so I've just removed it.
|
||||
7. Add -Wl,-R... flags in pcre-config.in for *BSD* systems, as I'm told
|
||||
that is needed.
|
||||
8. Mark ucp_table (in ucptable.h) and ucp_gentype (in pcre_ucp_searchfuncs.c)
|
||||
as "const" (a) because they are and (b) because it helps the PHP
|
||||
maintainers who have recently made a script to detect big data structures
|
||||
in the php code that should be moved to the .rodata section. I remembered
|
||||
to update Builducptable as well, so it won't revert if ucptable.h is ever
|
||||
re-created.
|
||||
9. Added some extra #ifdef SUPPORT_UTF8 conditionals into pcretest.c,
|
||||
pcre_printint.src, pcre_compile.c, pcre_study.c, and pcre_tables.c, in
|
||||
order to be able to cut out the UTF-8 tables in the latter when UTF-8
|
||||
support is not required. This saves 1.5-2K of code, which is important in
|
||||
some applications.
|
||||
Later: more #ifdefs are needed in pcre_ord2utf8.c and pcre_valid_utf8.c
|
||||
so as not to refer to the tables, even though these functions will never be
|
||||
called when UTF-8 support is disabled. Otherwise there are problems with a
|
||||
shared library.
|
||||
10. Fixed two bugs in the emulated memmove() function in pcre_internal.h:
|
||||
(a) It was defining its arguments as char * instead of void *.
|
||||
(b) It was assuming that all moves were upwards in memory; this was true
|
||||
a long time ago when I wrote it, but is no longer the case.
|
||||
The emulated memove() is provided for those environments that have neither
|
||||
memmove() nor bcopy(). I didn't think anyone used it these days, but that
|
||||
is clearly not the case, as these two bugs were recently reported.
|
||||
11. The script PrepareRelease is now distributed: it calls 132html, CleanTxt,
|
||||
and Detrail to create the HTML documentation, the .txt form of the man
|
||||
pages, and it removes trailing spaces from listed files. It also creates
|
||||
pcre.h.generic and config.h.generic from pcre.h and config.h. In the latter
|
||||
case, it wraps all the #defines with #ifndefs. This script should be run
|
||||
before "make dist".
|
||||
12. Fixed two fairly obscure bugs concerned with quantified caseless matching
|
||||
with Unicode property support.
|
||||
(a) For a maximizing quantifier, if the two different cases of the
|
||||
character were of different lengths in their UTF-8 codings (there are
|
||||
some cases like this - I found 11), and the matching function had to
|
||||
back up over a mixture of the two cases, it incorrectly assumed they
|
||||
were both the same length.
|
||||
(b) When PCRE was configured to use the heap rather than the stack for
|
||||
recursion during matching, it was not correctly preserving the data for
|
||||
the other case of a UTF-8 character when checking ahead for a match
|
||||
while processing a minimizing repeat. If the check also involved
|
||||
matching a wide character, but failed, corruption could cause an
|
||||
erroneous result when trying to check for a repeat of the original
|
||||
character.
|
||||
13. Some tidying changes to the testing mechanism:
|
||||
(a) The RunTest script now detects the internal link size and whether there
|
||||
is UTF-8 and UCP support by running ./pcretest -C instead of relying on
|
||||
values substituted by "configure". (The RunGrepTest script already did
|
||||
this for UTF-8.) The configure.ac script no longer substitutes the
|
||||
relevant variables.
|
||||
(b) The debugging options /B and /D in pcretest show the compiled bytecode
|
||||
with length and offset values. This means that the output is different
|
||||
for different internal link sizes. Test 2 is skipped for link sizes
|
||||
other than 2 because of this, bypassing the problem. Unfortunately,
|
||||
there was also a test in test 3 (the locale tests) that used /B and
|
||||
failed for link sizes other than 2. Rather than cut the whole test out,
|
||||
I have added a new /Z option to pcretest that replaces the length and
|
||||
offset values with spaces. This is now used to make test 3 independent
|
||||
of link size. (Test 2 will be tidied up later.)
|
||||
14. If erroroffset was passed as NULL to pcre_compile, it provoked a
|
||||
segmentation fault instead of returning the appropriate error message.
|
||||
15. In multiline mode when the newline sequence was set to "any", the pattern
|
||||
^$ would give a match between the \r and \n of a subject such as "A\r\nB".
|
||||
This doesn't seem right; it now treats the CRLF combination as the line
|
||||
ending, and so does not match in that case. It's only a pattern such as ^$
|
||||
that would hit this one: something like ^ABC$ would have failed after \r
|
||||
and then tried again after \r\n.
|
||||
16. Changed the comparison command for RunGrepTest from "diff -u" to "diff -ub"
|
||||
in an attempt to make files that differ only in their line terminators
|
||||
compare equal. This works on Linux.
|
||||
17. Under certain error circumstances pcregrep might try to free random memory
|
||||
as it exited. This is now fixed, thanks to valgrind.
|
||||
19. In pcretest, if the pattern /(?m)^$/g<any> was matched against the string
|
||||
"abc\r\n\r\n", it found an unwanted second match after the second \r. This
|
||||
was because its rules for how to advance for /g after matching an empty
|
||||
string at the end of a line did not allow for this case. They now check for
|
||||
it specially.
|
||||
20. pcretest is supposed to handle patterns and data of any length, by
|
||||
extending its buffers when necessary. It was getting this wrong when the
|
||||
buffer for a data line had to be extended.
|
||||
21. Added PCRE_NEWLINE_ANYCRLF which is like ANY, but matches only CR, LF, or
|
||||
CRLF as a newline sequence.
|
||||
22. Code for handling Unicode properties in pcre_dfa_exec() wasn't being cut
|
||||
out by #ifdef SUPPORT_UCP. This did no harm, as it could never be used, but
|
||||
I have nevertheless tidied it up.
|
||||
23. Added some casts to kill warnings from HP-UX ia64 compiler.
|
||||
24. Added a man page for pcre-config.
|
||||
* Fri Feb 09 2007 - ms@suse.de
|
||||
- fixed wrong usage of assert() call
|
||||
* Tue Jan 09 2007 - ms@suse.de
|
||||
|
Loading…
Reference in New Issue
Block a user