| 22 |
up the "real" POSIX functions of the same name. |
up the "real" POSIX functions of the same name. |
| 23 |
|
|
| 24 |
|
|
| 25 |
|
Documentation for PCRE |
| 26 |
|
---------------------- |
| 27 |
|
|
| 28 |
|
If you install PCRE in the normal way, you will end up with an installed set of |
| 29 |
|
man pages whose names all start with "pcre". The one that is called "pcre" |
| 30 |
|
lists all the others. In addition to these man pages, the PCRE documentation is |
| 31 |
|
supplied in two other forms; however, as there is no standard place to install |
| 32 |
|
them, they are left in the doc directory of the unpacked source distribution. |
| 33 |
|
These forms are: |
| 34 |
|
|
| 35 |
|
1. Files called doc/pcre.txt, doc/pcregrep.txt, and doc/pcretest.txt. The |
| 36 |
|
first of these is a concatenation of the text forms of all the section 3 |
| 37 |
|
man pages except those that summarize individual functions. The other two |
| 38 |
|
are the text forms of the section 1 man pages for the pcregrep and |
| 39 |
|
pcretest commands. Text forms are provided for ease of scanning with text |
| 40 |
|
editors or similar tools. |
| 41 |
|
|
| 42 |
|
2. A subdirectory called doc/html contains all the documentation in HTML |
| 43 |
|
form, hyperlinked in various ways, and rooted in a file called |
| 44 |
|
doc/index.html. |
| 45 |
|
|
| 46 |
|
|
| 47 |
Contributions by users of PCRE |
Contributions by users of PCRE |
| 48 |
------------------------------ |
------------------------------ |
| 49 |
|
|
| 68 |
|
|
| 69 |
Most commonly, people build PCRE within its own distribution directory, and in |
Most commonly, people build PCRE within its own distribution directory, and in |
| 70 |
this case, on many systems, just running "./configure" is sufficient, but the |
this case, on many systems, just running "./configure" is sufficient, but the |
| 71 |
usual methods of changing standard defaults are available. For example, |
usual methods of changing standard defaults are available. For example: |
| 72 |
|
|
| 73 |
CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local |
CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local |
| 74 |
|
|
| 91 |
for handling UTF-8 is not included in the library. (Even when included, it |
for handling UTF-8 is not included in the library. (Even when included, it |
| 92 |
still has to be enabled by an option at run time.) |
still has to be enabled by an option at run time.) |
| 93 |
|
|
| 94 |
|
. If, in addition to support for UTF-8 character strings, you want to include |
| 95 |
|
support for the \P, \p, and \X sequences that recognize Unicode character |
| 96 |
|
properties, you must add --enable-unicode-properties to the "configure" |
| 97 |
|
command. This adds about 90K to the size of the library (in the form of a |
| 98 |
|
property table); only the basic two-letter properties such as Lu are |
| 99 |
|
supported. |
| 100 |
|
|
| 101 |
. You can build PCRE to recognized CR or NL as the newline character, instead |
. You can build PCRE to recognized CR or NL as the newline character, instead |
| 102 |
of whatever your compiler uses for "\n", by adding --newline-is-cr or |
of whatever your compiler uses for "\n", by adding --newline-is-cr or |
| 103 |
--newline-is-nl to the "configure" command, respectively. Only do this if you |
--newline-is-nl to the "configure" command, respectively. Only do this if you |
| 140 |
on the "configure" command. PCRE runs more slowly in this mode, but it may be |
on the "configure" command. PCRE runs more slowly in this mode, but it may be |
| 141 |
necessary in environments with limited stack sizes. |
necessary in environments with limited stack sizes. |
| 142 |
|
|
| 143 |
The "configure" script builds five files: |
The "configure" script builds seven files: |
| 144 |
|
|
| 145 |
. libtool is a script that builds shared and/or static libraries |
. pcre.h is build by copying pcre.in and making substitutions |
| 146 |
. Makefile is built by copying Makefile.in and making substitutions. |
. Makefile is built by copying Makefile.in and making substitutions. |
| 147 |
. config.h is built by copying config.in and making substitutions. |
. config.h is built by copying config.in and making substitutions. |
| 148 |
. pcre-config is built by copying pcre-config.in and making substitutions. |
. pcre-config is built by copying pcre-config.in and making substitutions. |
| 149 |
|
. libpcre.pc is data for the pkg-config command, built from libpcre.pc.in |
| 150 |
|
. libtool is a script that builds shared and/or static libraries |
| 151 |
. RunTest is a script for running tests |
. RunTest is a script for running tests |
| 152 |
|
|
| 153 |
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 |
| 156 |
pcre.h and pcreposix.h, and the man pages to appropriate live directories on |
pcre.h and pcreposix.h, and the man pages to appropriate live directories on |
| 157 |
your system, in the normal way. |
your system, in the normal way. |
| 158 |
|
|
| 159 |
|
|
| 160 |
|
Retrieving configuration information on Unix-like systems |
| 161 |
|
--------------------------------------------------------- |
| 162 |
|
|
| 163 |
Running "make install" also installs the command pcre-config, which can be used |
Running "make install" also installs the command pcre-config, which can be used |
| 164 |
to recall information about the PCRE configuration and installation. For |
to recall information about the PCRE configuration and installation. For |
| 165 |
example, |
example: |
| 166 |
|
|
| 167 |
pcre-config --version |
pcre-config --version |
| 168 |
|
|
| 169 |
prints the version number, and |
prints the version number, and |
| 170 |
|
|
| 171 |
pcre-config --libs |
pcre-config --libs |
| 172 |
|
|
| 173 |
outputs information about where the library is installed. This command can be |
outputs information about where the library is installed. This command can be |
| 174 |
included in makefiles for programs that use PCRE, saving the programmer from |
included in makefiles for programs that use PCRE, saving the programmer from |
| 175 |
having to remember too many details. |
having to remember too many details. |
| 176 |
|
|
| 177 |
|
The pkg-config command is another system for saving and retrieving information |
| 178 |
|
about installed libraries. Instead of separate commands for each library, a |
| 179 |
|
single command is used. For example: |
| 180 |
|
|
| 181 |
|
pkg-config --cflags pcre |
| 182 |
|
|
| 183 |
|
The data is held in *.pc files that are installed in a directory called |
| 184 |
|
pkgconfig. |
| 185 |
|
|
| 186 |
|
|
| 187 |
Shared libraries on Unix-like systems |
Shared libraries on Unix-like systems |
| 188 |
------------------------------------- |
------------------------------------- |
| 202 |
use the uninstalled libraries. |
use the uninstalled libraries. |
| 203 |
|
|
| 204 |
To build PCRE using static libraries only you must use --disable-shared when |
To build PCRE using static libraries only you must use --disable-shared when |
| 205 |
configuring it. For example |
configuring it. For example: |
| 206 |
|
|
| 207 |
./configure --prefix=/usr/gnu --disable-shared |
./configure --prefix=/usr/gnu --disable-shared |
| 208 |
|
|
| 246 |
The script runs the pcretest test program (which is documented in its own man |
The script runs the pcretest test program (which is documented in its own man |
| 247 |
page) on each of the testinput files (in the testdata directory) in turn, |
page) on each of the testinput files (in the testdata directory) in turn, |
| 248 |
and compares the output with the contents of the corresponding testoutput file. |
and compares the output with the contents of the corresponding testoutput file. |
| 249 |
A file called testtry is used to hold the output from pcretest. To run pcretest |
A file called testtry is used to hold the main output from pcretest |
| 250 |
on just one of the test files, give its number as an argument to RunTest, for |
(testsavedregex is also used as a working file). To run pcretest on just one of |
| 251 |
example: |
the test files, give its number as an argument to RunTest, for example: |
| 252 |
|
|
| 253 |
RunTest 2 |
RunTest 2 |
| 254 |
|
|
| 291 |
provided you are running Perl 5.8 or higher. (For Perl 5.6, a small patch, |
provided you are running Perl 5.8 or higher. (For Perl 5.6, a small patch, |
| 292 |
commented in the script, can be be used.) |
commented in the script, can be be used.) |
| 293 |
|
|
| 294 |
The fifth and final file tests error handling with UTF-8 encoding, and internal |
The fifth test checks error handling with UTF-8 encoding, and internal UTF-8 |
| 295 |
UTF-8 features of PCRE that are not relevant to Perl. |
features of PCRE that are not relevant to Perl. |
| 296 |
|
|
| 297 |
|
The sixth and final test checks the support for Unicode character properties. |
| 298 |
|
It it not run automatically unless PCRE is built with Unicode property support. |
| 299 |
|
To to this you must set --enable-unicode-properties when running "configure". |
| 300 |
|
|
| 301 |
|
|
| 302 |
Character tables |
Character tables |
| 303 |
---------------- |
---------------- |
| 304 |
|
|
| 305 |
PCRE uses four tables for manipulating and identifying characters. The final |
PCRE uses four tables for manipulating and identifying characters whose values |
| 306 |
argument of the pcre_compile() function is a pointer to a block of memory |
are less than 256. The final argument of the pcre_compile() function is a |
| 307 |
containing the concatenated tables. A call to pcre_maketables() can be used to |
pointer to a block of memory containing the concatenated tables. A call to |
| 308 |
generate a set of tables in the current locale. If the final argument for |
pcre_maketables() can be used to generate a set of tables in the current |
| 309 |
pcre_compile() is passed as NULL, a set of default tables that is built into |
locale. If the final argument for pcre_compile() is passed as NULL, a set of |
| 310 |
the binary is used. |
default tables that is built into the binary is used. |
| 311 |
|
|
| 312 |
The source file called chartables.c contains the default set of tables. This is |
The source file called chartables.c contains the default set of tables. This is |
| 313 |
not supplied in the distribution, but is built by the program dftables |
not supplied in the distribution, but is built by the program dftables |
| 347 |
headers: |
headers: |
| 348 |
|
|
| 349 |
dftables.c auxiliary program for building chartables.c |
dftables.c auxiliary program for building chartables.c |
| 350 |
|
|
| 351 |
get.c ) |
get.c ) |
| 352 |
maketables.c ) |
maketables.c ) |
| 353 |
study.c ) source of |
study.c ) source of the functions |
| 354 |
pcre.c ) the functions |
pcre.c ) in the library |
| 355 |
pcreposix.c ) |
pcreposix.c ) |
| 356 |
printint.c ) |
printint.c ) |
| 357 |
|
|
| 358 |
|
ucp.c ) |
| 359 |
|
ucp.h ) source for the code that is used for |
| 360 |
|
ucpinternal.h ) Unicode property handling |
| 361 |
|
ucptable.c ) |
| 362 |
|
ucptypetable.c ) |
| 363 |
|
|
| 364 |
pcre.in "source" for the header for the external API; pcre.h |
pcre.in "source" for the header for the external API; pcre.h |
| 365 |
is built from this by "configure" |
is built from this by "configure" |
| 366 |
pcreposix.h header for the external POSIX wrapper API |
pcreposix.h header for the external POSIX wrapper API |
| 391 |
doc/pcretest.txt plain text documentation of test program |
doc/pcretest.txt plain text documentation of test program |
| 392 |
doc/perltest.txt plain text documentation of Perl test program |
doc/perltest.txt plain text documentation of Perl test program |
| 393 |
install-sh a shell script for installing files |
install-sh a shell script for installing files |
| 394 |
|
libpcre.pc.in "source" for libpcre.pc for pkg-config |
| 395 |
ltmain.sh file used to build a libtool script |
ltmain.sh file used to build a libtool script |
| 396 |
|
mkinstalldirs script for making install directories |
| 397 |
pcretest.c comprehensive test program |
pcretest.c comprehensive test program |
| 398 |
pcredemo.c simple demonstration of coding calls to PCRE |
pcredemo.c simple demonstration of coding calls to PCRE |
| 399 |
perltest Perl test program |
perltest Perl test program |
| 404 |
testdata/testinput3 test data for locale-specific tests |
testdata/testinput3 test data for locale-specific tests |
| 405 |
testdata/testinput4 test data for UTF-8 tests compatible with Perl |
testdata/testinput4 test data for UTF-8 tests compatible with Perl |
| 406 |
testdata/testinput5 test data for other UTF-8 tests |
testdata/testinput5 test data for other UTF-8 tests |
| 407 |
|
testdata/testinput6 test data for Unicode property support tests |
| 408 |
testdata/testoutput1 test results corresponding to testinput1 |
testdata/testoutput1 test results corresponding to testinput1 |
| 409 |
testdata/testoutput2 test results corresponding to testinput2 |
testdata/testoutput2 test results corresponding to testinput2 |
| 410 |
testdata/testoutput3 test results corresponding to testinput3 |
testdata/testoutput3 test results corresponding to testinput3 |
| 411 |
testdata/testoutput4 test results corresponding to testinput4 |
testdata/testoutput4 test results corresponding to testinput4 |
| 412 |
testdata/testoutput5 test results corresponding to testinput5 |
testdata/testoutput5 test results corresponding to testinput5 |
| 413 |
|
testdata/testoutput6 test results corresponding to testinput6 |
| 414 |
|
|
| 415 |
(C) Auxiliary files for Win32 DLL |
(C) Auxiliary files for Win32 DLL |
| 416 |
|
|
| 417 |
dll.mk |
dll.mk |
| 418 |
|
libpcre.def |
| 419 |
|
libpcreposix.def |
| 420 |
pcre.def |
pcre.def |
| 421 |
|
|
| 422 |
(D) Auxiliary file for VPASCAL |
(D) Auxiliary file for VPASCAL |
| 424 |
makevp.bat |
makevp.bat |
| 425 |
|
|
| 426 |
Philip Hazel <ph10@cam.ac.uk> |
Philip Hazel <ph10@cam.ac.uk> |
| 427 |
December 2003 |
September 2004 |