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 |