| 7 |
|
|
| 8 |
Please read the NEWS file if you are upgrading from a previous release. |
Please read the NEWS file if you are upgrading from a previous release. |
| 9 |
|
|
| 10 |
|
PCRE has its own native API, but a set of "wrapper" functions that are based on |
| 11 |
|
the POSIX API are also supplied in the library libpcreposix. Note that this |
| 12 |
|
just provides a POSIX calling interface to PCRE: the regular expressions |
| 13 |
|
themselves still follow Perl syntax and semantics. The header file |
| 14 |
|
for the POSIX-style functions is called pcreposix.h. The official POSIX name is |
| 15 |
|
regex.h, but I didn't want to risk possible problems with existing files of |
| 16 |
|
that name by distributing it that way. To use it with an existing program that |
| 17 |
|
uses the POSIX API, it will have to be renamed or pointed at by a link. |
| 18 |
|
|
| 19 |
|
|
| 20 |
Building PCRE on a Unix system |
Building PCRE on a Unix system |
| 21 |
------------------------------ |
------------------------------ |
| 24 |
distribution directory. This is a standard GNU "autoconf" configuration script, |
distribution directory. This is a standard GNU "autoconf" configuration script, |
| 25 |
for which generic instructions are supplied in INSTALL. On many systems just |
for which generic instructions are supplied in INSTALL. On many systems just |
| 26 |
running "./configure" is sufficient, but the usual methods of changing standard |
running "./configure" is sufficient, but the usual methods of changing standard |
| 27 |
defaults are available. For example |
defaults are available. For example, |
| 28 |
|
|
| 29 |
CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local |
CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local |
| 30 |
|
|
| 31 |
specifies that the C compiler should be run with the flags '-O2 -Wall' instead |
specifies that the C compiler should be run with the flags '-O2 -Wall' instead |
| 32 |
of the default, and that "make install" should install PCRE under /opt/local |
of the default, and that "make install" should install PCRE under /opt/local |
| 33 |
instead of the default /usr/local. The "configure" script builds thre files: |
instead of the default /usr/local. |
| 34 |
|
|
| 35 |
|
If you want to make use of the experimential, incomplete support for UTF-8 |
| 36 |
|
character strings in PCRE, you must add --enable-utf8 to the "configure" |
| 37 |
|
command. Without it, the code for handling UTF-8 is not included in the |
| 38 |
|
library. (Even when included, it still has to be enabled by an option at run |
| 39 |
|
time.) |
| 40 |
|
|
| 41 |
|
The "configure" script builds four files: |
| 42 |
|
|
| 43 |
. Makefile is built by copying Makefile.in and making substitutions. |
. Makefile is built by copying Makefile.in and making substitutions. |
| 44 |
. config.h is built by copying config.in and making substitutions. |
. config.h is built by copying config.in and making substitutions. |
| 45 |
. pcre-config is built by copying pcre-config.in and making substitutions. |
. pcre-config is built by copying pcre-config.in and making substitutions. |
| 46 |
|
. RunTest is a script for running tests |
| 47 |
|
|
| 48 |
Once "configure" has run, you can run "make". It builds two libraries called |
Once "configure" has run, you can run "make". It builds two libraries called |
| 49 |
libpcre and libpcreposix, a test program called pcretest, and the pgrep |
libpcre and libpcreposix, a test program called pcretest, and the pcregrep |
| 50 |
command. You can use "make install" to copy these, and the public header file |
command. You can use "make install" to copy these, and the public header file |
| 51 |
pcre.h, to appropriate live directories on your system, in the normal way. |
pcre.h, to appropriate live directories on your system, in the normal way. |
| 52 |
|
|
| 72 |
new and experimental and may not work on all systems. It relies on the |
new and experimental and may not work on all systems. It relies on the |
| 73 |
"libtool" scripts - these are distributed with PCRE. It should build a |
"libtool" scripts - these are distributed with PCRE. It should build a |
| 74 |
"libtool" script and use this to compile and link shared libraries, which are |
"libtool" script and use this to compile and link shared libraries, which are |
| 75 |
placed in a subdirectory called .libs. The programs pcretest and pgrep are |
placed in a subdirectory called .libs. The programs pcretest and pcregrep are |
| 76 |
built to use these uninstalled libraries by means of wrapper scripts. When you |
built to use these uninstalled libraries by means of wrapper scripts. When you |
| 77 |
use "make install" to install shared libraries, pgrep and pcretest are |
use "make install" to install shared libraries, pcregrep and pcretest are |
| 78 |
automatically re-built to use the newly installed libraries. However, only |
automatically re-built to use the newly installed libraries. However, only |
| 79 |
pgrep is installed, as pcretest is really just a test program. |
pcregrep is installed, as pcretest is really just a test program. |
| 80 |
|
|
| 81 |
To build PCRE using static libraries you must use --disable-shared when |
To build PCRE using static libraries you must use --disable-shared when |
| 82 |
configuring it. For example |
configuring it. For example |
| 100 |
------------ |
------------ |
| 101 |
|
|
| 102 |
To test PCRE on a Unix system, run the RunTest script in the pcre directory. |
To test PCRE on a Unix system, run the RunTest script in the pcre directory. |
| 103 |
(This can also be run by "make runtest" or "make check".) For other systems, |
(This can also be run by "make runtest", "make check", or "make test".) For |
| 104 |
see the instruction in NON-UNIX-USE. |
other systems, see the instruction in NON-UNIX-USE. |
| 105 |
|
|
| 106 |
The script runs the pcretest test program (which is documented in |
The script runs the pcretest test program (which is documented in |
| 107 |
doc/pcretest.txt) on each of the testinput files (in the testdata directory) in |
doc/pcretest.txt) on each of the testinput files (in the testdata directory) in |
| 115 |
The first and third test files can also be fed directly into the perltest |
The first and third test files can also be fed directly into the perltest |
| 116 |
script to check that Perl gives the same results. The third file requires the |
script to check that Perl gives the same results. The third file requires the |
| 117 |
additional features of release 5.005, which is why it is kept separate from the |
additional features of release 5.005, which is why it is kept separate from the |
| 118 |
main test input, which needs only Perl 5.004. In the long run, when 5.005 is |
main test input, which needs only Perl 5.004. In the long run, when 5.005 (or |
| 119 |
widespread, these two test files may get amalgamated. |
higher) is widespread, these two test files may get amalgamated. |
| 120 |
|
|
| 121 |
The second set of tests check pcre_info(), pcre_study(), pcre_copy_substring(), |
The second set of tests check pcre_fullinfo(), pcre_info(), pcre_study(), |
| 122 |
pcre_get_substring(), pcre_get_substring_list(), error detection and run-time |
pcre_copy_substring(), pcre_get_substring(), pcre_get_substring_list(), error |
| 123 |
flags that are specific to PCRE, as well as the POSIX wrapper API. |
detection, and run-time flags that are specific to PCRE, as well as the POSIX |
| 124 |
|
wrapper API. It also uses the debugging flag to check some of the internals of |
| 125 |
|
pcre_compile(). |
| 126 |
|
|
| 127 |
|
If you build PCRE with a locale setting that is not the standard C locale, the |
| 128 |
|
character tables may be different (see next paragraph). In some cases, this may |
| 129 |
|
cause failures in the second set of tests. For example, in a locale where the |
| 130 |
|
isprint() function yields TRUE for characters in the range 128-255, the use of |
| 131 |
|
[:isascii:] inside a character class defines a different set of characters, and |
| 132 |
|
this shows up in this test as a difference in the compiled code, which is being |
| 133 |
|
listed for checking. Where the comparison test output contains [\x00-\x7f] the |
| 134 |
|
test will contain [\x00-\xff], and similarly in some other cases. This is not a |
| 135 |
|
bug in PCRE. |
| 136 |
|
|
| 137 |
The fourth set of tests checks pcre_maketables(), the facility for building a |
The fourth set of tests checks pcre_maketables(), the facility for building a |
| 138 |
set of character tables for a specific locale and using them instead of the |
set of character tables for a specific locale and using them instead of the |
| 147 |
in the comparison output, it means that locale is not available on your system, |
in the comparison output, it means that locale is not available on your system, |
| 148 |
despite being listed by "locale". This does not mean that PCRE is broken. |
despite being listed by "locale". This does not mean that PCRE is broken. |
| 149 |
|
|
| 150 |
PCRE has its own native API, but a set of "wrapper" functions that are based on |
The fifth test checks the experimental, incomplete UTF-8 support. It is not run |
| 151 |
the POSIX API are also supplied in the library libpcreposix.a. Note that this |
automatically unless PCRE is built with UTF-8 support. This file can be fed |
| 152 |
just provides a POSIX calling interface to PCRE: the regular expressions |
directly to the perltest8 script, which requires Perl 5.6 or higher. The sixth |
| 153 |
themselves still follow Perl syntax and semantics. The header file |
file tests internal UTF-8 features of PCRE that are not relevant to Perl. |
|
for the POSIX-style functions is called pcreposix.h. The official POSIX name is |
|
|
regex.h, but I didn't want to risk possible problems with existing files of |
|
|
that name by distributing it that way. To use it with an existing program that |
|
|
uses the POSIX API, it will have to be renamed or pointed at by a link. |
|
| 154 |
|
|
| 155 |
|
|
| 156 |
Character tables |
Character tables |
| 223 |
NEWS important changes in this release |
NEWS important changes in this release |
| 224 |
NON-UNIX-USE notes on building PCRE on non-Unix systems |
NON-UNIX-USE notes on building PCRE on non-Unix systems |
| 225 |
README this file |
README this file |
| 226 |
RunTest a Unix shell script for running tests |
RunTest.in template for a Unix shell script for running tests |
| 227 |
config.guess ) files used by libtool, |
config.guess ) files used by libtool, |
| 228 |
config.sub ) used only when building a shared library |
config.sub ) used only when building a shared library |
| 229 |
configure a configuring shell script (built by autoconf) |
configure a configuring shell script (built by autoconf) |
| 237 |
doc/pcreposix.txt plain text version |
doc/pcreposix.txt plain text version |
| 238 |
doc/pcretest.txt documentation of test program |
doc/pcretest.txt documentation of test program |
| 239 |
doc/perltest.txt documentation of Perl test program |
doc/perltest.txt documentation of Perl test program |
| 240 |
doc/pgrep.1 man page source for the pgrep utility |
doc/pcregrep.1 man page source for the pcregrep utility |
| 241 |
doc/pgrep.html HTML version |
doc/pcregrep.html HTML version |
| 242 |
doc/pgrep.txt plain text version |
doc/pcregrep.txt plain text version |
| 243 |
install-sh a shell script for installing files |
install-sh a shell script for installing files |
| 244 |
ltconfig ) files used to build "libtool", |
ltconfig ) files used to build "libtool", |
| 245 |
ltmain.sh ) used only when building a shared library |
ltmain.sh ) used only when building a shared library |
| 246 |
pcretest.c test program |
pcretest.c test program |
| 247 |
perltest Perl test program |
perltest Perl test program |
| 248 |
pgrep.c source of a grep utility that uses PCRE |
perltest8 Perl test program for UTF-8 tests |
| 249 |
|
pcregrep.c source of a grep utility that uses PCRE |
| 250 |
pcre-config.in source of script which retains PCRE information |
pcre-config.in source of script which retains PCRE information |
| 251 |
testdata/testinput1 test data, compatible with Perl 5.004 and 5.005 |
testdata/testinput1 test data, compatible with Perl 5.004 and 5.005 |
| 252 |
testdata/testinput2 test data for error messages and non-Perl things |
testdata/testinput2 test data for error messages and non-Perl things |
| 253 |
testdata/testinput3 test data, compatible with Perl 5.005 |
testdata/testinput3 test data, compatible with Perl 5.005 |
| 254 |
testdata/testinput4 test data for locale-specific tests |
testdata/testinput4 test data for locale-specific tests |
| 255 |
|
testdata/testinput5 test data for UTF-8 tests compatible with Perl 5.6 |
| 256 |
|
testdata/testinput6 test data for other UTF-8 tests |
| 257 |
testdata/testoutput1 test results corresponding to testinput1 |
testdata/testoutput1 test results corresponding to testinput1 |
| 258 |
testdata/testoutput2 test results corresponding to testinput2 |
testdata/testoutput2 test results corresponding to testinput2 |
| 259 |
testdata/testoutput3 test results corresponding to testinput3 |
testdata/testoutput3 test results corresponding to testinput3 |
| 260 |
testdata/testoutput4 test results corresponding to testinput4 |
testdata/testoutput4 test results corresponding to testinput4 |
| 261 |
|
testdata/testoutput5 test results corresponding to testinput5 |
| 262 |
|
testdata/testoutput6 test results corresponding to testinput6 |
| 263 |
|
|
| 264 |
(C) Auxiliary files for Win32 DLL |
(C) Auxiliary files for Win32 DLL |
| 265 |
|
|
| 267 |
pcre.def |
pcre.def |
| 268 |
|
|
| 269 |
Philip Hazel <ph10@cam.ac.uk> |
Philip Hazel <ph10@cam.ac.uk> |
| 270 |
February 2000 |
August 2000 |