/[pcre]/code/trunk/README
ViewVC logotype

Diff of /code/trunk/README

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 127 by ph10, Mon Mar 19 11:44:45 2007 UTC revision 654 by ph10, Tue Aug 2 11:00:40 2011 UTC
# Line 1  Line 1 
1  README file for PCRE (Perl-compatible regular expression library)  README file for PCRE (Perl-compatible regular expression library)
2  -----------------------------------------------------------------  -----------------------------------------------------------------
3    
4  The latest release of PCRE is always available from  The latest release of PCRE is always available in three alternative formats
5    from:
6    
7    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.tar.gz    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.tar.gz
8      ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.tar.bz2
9      ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.zip
10    
11  There is a mailing list for discussion about the development of PCRE at  There is a mailing list for discussion about the development of PCRE at
12    
# Line 21  The contents of this README file are: Line 24  The contents of this README file are:
24    Shared libraries on Unix-like systems    Shared libraries on Unix-like systems
25    Cross-compiling on Unix-like systems    Cross-compiling on Unix-like systems
26    Using HP's ANSI C++ compiler (aCC)    Using HP's ANSI C++ compiler (aCC)
27      Using PCRE from MySQL
28    Making new tarballs    Making new tarballs
29    Testing PCRE    Testing PCRE
30    Character tables    Character tables
# Line 30  The contents of this README file are: Line 34  The contents of this README file are:
34  The PCRE APIs  The PCRE APIs
35  -------------  -------------
36    
37  PCRE is written in C, and it has its own API. The distribution now includes a  PCRE is written in C, and it has its own API. The distribution also includes a
38  set of C++ wrapper functions, courtesy of Google Inc. (see the pcrecpp man page  set of C++ wrapper functions (see the pcrecpp man page for details), courtesy
39  for details).  of Google Inc.
40    
41  Also included in the distribution are a set of C wrapper functions that are  In addition, there is a set of C wrapper functions that are based on the POSIX
42  based on the POSIX API. These end up in the library called libpcreposix. Note  regular expression API (see the pcreposix man page). These end up in the
43  that this just provides a POSIX calling interface to PCRE; the regular  library called libpcreposix. Note that this just provides a POSIX calling
44  expressions themselves still follow Perl syntax and semantics. The POSIX API is  interface to PCRE; the regular expressions themselves still follow Perl syntax
45  restricted, and does not give full access to all of PCRE's facilities.  and semantics. The POSIX API is restricted, and does not give full access to
46    all of PCRE's facilities.
47    
48  The header file for the POSIX-style functions is called pcreposix.h. The  The header file for the POSIX-style functions is called pcreposix.h. The
49  official POSIX name is regex.h, but I did not want to risk possible problems  official POSIX name is regex.h, but I did not want to risk possible problems
# Line 81  documentation is supplied in two other f Line 86  documentation is supplied in two other f
86       in various ways, and rooted in a file called index.html, is distributed in       in various ways, and rooted in a file called index.html, is distributed in
87       doc/html and installed in <prefix>/share/doc/pcre/html.       doc/html and installed in <prefix>/share/doc/pcre/html.
88    
89    Users of PCRE have contributed files containing the documentation for various
90    releases in CHM format. These can be found in the Contrib directory of the FTP
91    site (see next section).
92    
93    
94  Contributions by users of PCRE  Contributions by users of PCRE
95  ------------------------------  ------------------------------
# Line 91  You can find contributions from PCRE use Line 100  You can find contributions from PCRE use
100    
101  There is a README file giving brief descriptions of what they are. Some are  There is a README file giving brief descriptions of what they are. Some are
102  complete in themselves; others are pointers to URLs containing relevant files.  complete in themselves; others are pointers to URLs containing relevant files.
103  Some of this material is likely to be well out-of-date. In particular, several  Some of this material is likely to be well out-of-date. Several of the earlier
104  of the contributions provide support for compiling PCRE on various flavours of  contributions provided support for compiling PCRE on various flavours of
105  Windows (I myself do not use Windows), but nowadays there is more Windows  Windows (I myself do not use Windows). Nowadays there is more Windows support
106  support in the standard distribution.  in the standard distribution, so these contibutions have been archived.
107    
108    
109  Building PCRE on non-Unix systems  Building PCRE on non-Unix systems
# Line 102  Building PCRE on non-Unix systems Line 111  Building PCRE on non-Unix systems
111    
112  For a non-Unix system, please read the comments in the file NON-UNIX-USE,  For a non-Unix system, please read the comments in the file NON-UNIX-USE,
113  though if your system supports the use of "configure" and "make" you may be  though if your system supports the use of "configure" and "make" you may be
114  able to build PCRE in the same way as for Unix-like systems.  able to build PCRE in the same way as for Unix-like systems. PCRE can also be
115    configured in many platform environments using the GUI facility provided by
116    CMake's cmake-gui command. This creates Makefiles, solution files, etc.
117    
118  PCRE has been compiled on many different operating systems. It should be  PCRE has been compiled on many different operating systems. It should be
119  straightforward to build PCRE on any system that has a Standard C compiler and  straightforward to build PCRE on any system that has a Standard C compiler and
# Line 115  Building PCRE on Unix-like systems Line 126  Building PCRE on Unix-like systems
126  If you are using HP's ANSI C++ compiler (aCC), please see the special note  If you are using HP's ANSI C++ compiler (aCC), please see the special note
127  in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.  in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.
128    
129    The following instructions assume the use of the widely used "configure, make,
130    make install" process. There is also support for CMake in the PCRE
131    distribution; there are some comments about using CMake in the NON-UNIX-USE
132    file, though it can also be used in Unix-like systems.
133    
134  To build PCRE on a Unix-like system, first run the "configure" command from the  To build PCRE on a Unix-like system, first run the "configure" command from the
135  PCRE distribution directory, with your current directory set to the directory  PCRE distribution directory, with your current directory set to the directory
136  where you want the files to be created. This command is a standard GNU  where you want the files to be created. This command is a standard GNU
# Line 143  possible to build it as a C++ library, t Line 159  possible to build it as a C++ library, t
159  does not have any features to support this.  does not have any features to support this.
160    
161  There are some optional features that can be included or omitted from the PCRE  There are some optional features that can be included or omitted from the PCRE
162  library. You can read more about them in the pcrebuild man page.  library. They are also documented in the pcrebuild man page.
163    
164    . By default, both shared and static libraries are built. You can change this
165      by adding one of these options to the "configure" command:
166    
167      --disable-shared
168      --disable-static
169    
170      (See also "Shared libraries on Unix-like systems" below.)
171    
172  . If you want to suppress the building of the C++ wrapper library, you can add  . If you want to suppress the building of the C++ wrapper library, you can add
173    --disable-cpp to the "configure" command. Otherwise, when "configure" is run,    --disable-cpp to the "configure" command. Otherwise, when "configure" is run,
174    will try to find a C++ compiler and C++ header files, and if it succeeds, it    it will try to find a C++ compiler and C++ header files, and if it succeeds,
175    will try to build the C++ wrapper.    it will try to build the C++ wrapper.
176    
177  . If you want to make use of the support for UTF-8 character strings in PCRE,  . If you want to make use of the support for UTF-8 Unicode character strings in
178    you must add --enable-utf8 to the "configure" command. Without it, the code    PCRE, you must add --enable-utf8 to the "configure" command. Without it, the
179    for handling UTF-8 is not included in the library. (Even when included, it    code for handling UTF-8 is not included in the library. Even when included,
180    still has to be enabled by an option at run time.)    it still has to be enabled by an option at run time. When PCRE is compiled
181      with this option, its input can only either be ASCII or UTF-8, even when
182      running on EBCDIC platforms. It is not possible to use both --enable-utf8 and
183      --enable-ebcdic at the same time.
184    
185  . If, in addition to support for UTF-8 character strings, you want to include  . If, in addition to support for UTF-8 character strings, you want to include
186    support for the \P, \p, and \X sequences that recognize Unicode character    support for the \P, \p, and \X sequences that recognize Unicode character
# Line 163  library. You can read more about them in Line 190  library. You can read more about them in
190    supported.    supported.
191    
192  . You can build PCRE to recognize either CR or LF or the sequence CRLF or any  . You can build PCRE to recognize either CR or LF or the sequence CRLF or any
193    of the Unicode newline sequences as indicating the end of a line. Whatever    of the preceding, or any of the Unicode newline sequences as indicating the
194    you specify at build time is the default; the caller of PCRE can change the    end of a line. Whatever you specify at build time is the default; the caller
195    selection at run time. The default newline indicator is a single LF character    of PCRE can change the selection at run time. The default newline indicator
196    (the Unix standard). You can specify the default newline indicator by adding    is a single LF character (the Unix standard). You can specify the default
197    --newline-is-cr or --newline-is-lf or --newline-is-crlf or --newline-is-any    newline indicator by adding --enable-newline-is-cr or --enable-newline-is-lf
198    to the "configure" command, respectively.    or --enable-newline-is-crlf or --enable-newline-is-anycrlf or
199      --enable-newline-is-any to the "configure" command, respectively.
200    If you specify --newline-is-cr or --newline-is-crlf, some of the standard  
201    tests will fail, because the lines in the test files end with LF. Even if    If you specify --enable-newline-is-cr or --enable-newline-is-crlf, some of
202    the files are edited to change the line endings, there are likely to be some    the standard tests will fail, because the lines in the test files end with
203    failures. With --newline-is-any, many tests should succeed, but there may be    LF. Even if the files are edited to change the line endings, there are likely
204    some failures.    to be some failures. With --enable-newline-is-anycrlf or
205      --enable-newline-is-any, many tests should succeed, but there may be some
206      failures.
207    
208    . By default, the sequence \R in a pattern matches any Unicode line ending
209      sequence. This is independent of the option specifying what PCRE considers to
210      be the end of a line (see above). However, the caller of PCRE can restrict \R
211      to match only CR, LF, or CRLF. You can make this the default by adding
212      --enable-bsr-anycrlf to the "configure" command (bsr = "backslash R").
213    
214  . When called via the POSIX interface, PCRE uses malloc() to get additional  . When called via the POSIX interface, PCRE uses malloc() to get additional
215    storage for processing capturing parentheses if there are more than 10 of    storage for processing capturing parentheses if there are more than 10 of
216    them. You can increase this threshold by setting, for example,    them in a pattern. You can increase this threshold by setting, for example,
217    
218    --with-posix-malloc-threshold=20    --with-posix-malloc-threshold=20
219    
# Line 207  library. You can read more about them in Line 242  library. You can read more about them in
242  . The default maximum compiled pattern size is around 64K. You can increase  . The default maximum compiled pattern size is around 64K. You can increase
243    this by adding --with-link-size=3 to the "configure" command. You can    this by adding --with-link-size=3 to the "configure" command. You can
244    increase it even more by setting --with-link-size=4, but this is unlikely    increase it even more by setting --with-link-size=4, but this is unlikely
245    ever to be necessary.    ever to be necessary. Increasing the internal link size will reduce
246      performance.
247    
248  . You can build PCRE so that its internal match() function that is called from  . You can build PCRE so that its internal match() function that is called from
249    pcre_exec() does not call itself recursively. Instead, it uses memory blocks    pcre_exec() does not call itself recursively. Instead, it uses memory blocks
# Line 223  library. You can read more about them in Line 259  library. You can read more about them in
259    use deeply nested recursion. There is a discussion about stack sizes in the    use deeply nested recursion. There is a discussion about stack sizes in the
260    pcrestack man page.    pcrestack man page.
261    
262    . For speed, PCRE uses four tables for manipulating and identifying characters
263      whose code point values are less than 256. By default, it uses a set of
264      tables for ASCII encoding that is part of the distribution. If you specify
265    
266      --enable-rebuild-chartables
267    
268      a program called dftables is compiled and run in the default C locale when
269      you obey "make". It builds a source file called pcre_chartables.c. If you do
270      not specify this option, pcre_chartables.c is created as a copy of
271      pcre_chartables.c.dist. See "Character tables" below for further information.
272    
273    . It is possible to compile PCRE for use on systems that use EBCDIC as their
274      character code (as opposed to ASCII) by specifying
275    
276      --enable-ebcdic
277    
278      This automatically implies --enable-rebuild-chartables (see above). However,
279      when PCRE is built this way, it always operates in EBCDIC. It cannot support
280      both EBCDIC and UTF-8.
281    
282    . It is possible to compile pcregrep to use libz and/or libbz2, in order to
283      read .gz and .bz2 files (respectively), by specifying one or both of
284    
285      --enable-pcregrep-libz
286      --enable-pcregrep-libbz2
287    
288      Of course, the relevant libraries must be installed on your system.
289    
290    . The default size of internal buffer used by pcregrep can be set by, for
291      example:
292    
293      --with-pcregrep-bufsize=50K
294    
295      The default value is 20K.
296    
297    . It is possible to compile pcretest so that it links with the libreadline
298      library, by specifying
299    
300      --enable-pcretest-libreadline
301    
302      If this is done, when pcretest's input is from a terminal, it reads it using
303      the readline() function. This provides line-editing and history facilities.
304      Note that libreadline is GPL-licenced, so if you distribute a binary of
305      pcretest linked in this way, there may be licensing issues.
306    
307      Setting this option causes the -lreadline option to be added to the pcretest
308      build. In many operating environments with a sytem-installed readline
309      library this is sufficient. However, in some environments (e.g. if an
310      unmodified distribution version of readline is in use), it may be necessary
311      to specify something like LIBS="-lncurses" as well. This is because, to quote
312      the readline INSTALL, "Readline uses the termcap functions, but does not link
313      with the termcap or curses library itself, allowing applications which link
314      with readline the to choose an appropriate library." If you get error
315      messages about missing functions tgetstr, tgetent, tputs, tgetflag, or tgoto,
316      this is the problem, and linking with the ncurses library should fix it.
317    
318  The "configure" script builds the following files for the basic C library:  The "configure" script builds the following files for the basic C library:
319    
320  . Makefile is the makefile that builds the library  . Makefile is the makefile that builds the library
# Line 234  The "configure" script builds the follow Line 326  The "configure" script builds the follow
326  . RunTest is a script for running tests on the basic C library  . RunTest is a script for running tests on the basic C library
327  . RunGrepTest is a script for running tests on the pcregrep command  . RunGrepTest is a script for running tests on the pcregrep command
328    
329  Versions of config.h and pcre.h are distributed in the PCRE tarballs under  Versions of config.h and pcre.h are distributed in the PCRE tarballs under the
330  the names config.h.generic and pcre.h.generic. These are provided for the  names config.h.generic and pcre.h.generic. These are provided for those who
331  benefit of those who have to built PCRE without the benefit of "configure". If  have to built PCRE without using "configure" or CMake. If you use "configure"
332  you use "configure", the .generic versions are not used.  or CMake, the .generic versions are not used.
333    
334  If a C++ compiler is found, the following files are also built:  If a C++ compiler is found, the following files are also built:
335    
# Line 250  script that can be run to recreate the c Line 342  script that can be run to recreate the c
342  contains compiler output from tests that "configure" runs.  contains compiler output from tests that "configure" runs.
343    
344  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
345  libpcre and libpcreposix, a test program called pcretest, a demonstration  libpcre and libpcreposix, a test program called pcretest, and the pcregrep
346  program called pcredemo, and the pcregrep command. If a C++ compiler was found  command. If a C++ compiler was found on your system, "make" also builds the C++
347  on your system, "make" also builds the C++ wrapper library, which is called  wrapper library, which is called libpcrecpp, and some test programs called
348  libpcrecpp, and some test programs called pcrecpp_unittest,  pcrecpp_unittest, pcre_scanner_unittest, and pcre_stringpiece_unittest.
349  pcre_scanner_unittest, and pcre_stringpiece_unittest. Building the C++ wrapper  Building the C++ wrapper can be disabled by adding --disable-cpp to the
350  can be disabled by adding --disable-cpp to the "configure" command.  "configure" command.
351    
352  The command "make check" runs all the appropriate tests. Details of the PCRE  The command "make check" runs all the appropriate tests. Details of the PCRE
353  tests are given below in a separate section of this document.  tests are given below in a separate section of this document.
# Line 307  system. The following are installed (fil Line 399  system. The following are installed (fil
399      pcretest.txt   the pcretest man page      pcretest.txt   the pcretest man page
400      pcregrep.txt   the pcregrep man page      pcregrep.txt   the pcregrep man page
401    
 Note that the pcredemo program that is built by "configure" is *not* installed  
 anywhere. It is a demonstration for programmers wanting to use PCRE.  
   
402  If you want to remove PCRE from your system, you can run "make uninstall".  If you want to remove PCRE from your system, you can run "make uninstall".
403  This removes all the files that "make install" installed. However, it does not  This removes all the files that "make install" installed. However, it does not
404  remove any directories, because these are often shared with other programs.  remove any directories, because these are often shared with other programs.
# Line 371  Cross-compiling on Unix-like systems Line 460  Cross-compiling on Unix-like systems
460  ------------------------------------  ------------------------------------
461    
462  You can specify CC and CFLAGS in the normal way to the "configure" command, in  You can specify CC and CFLAGS in the normal way to the "configure" command, in
463  order to cross-compile PCRE for some other host. However, during the building  order to cross-compile PCRE for some other host. However, you should NOT
464  process, the dftables.c source file is compiled *and run* on the local host, in  specify --enable-rebuild-chartables, because if you do, the dftables.c source
465  order to generate the default character tables (the chartables.c file). It  file is compiled and run on the local host, in order to generate the inbuilt
466  therefore needs to be compiled with the local compiler, not the cross compiler.  character tables (the pcre_chartables.c file). This will probably not work,
467  You can do this by specifying CC_FOR_BUILD (and if necessary CFLAGS_FOR_BUILD;  because dftables.c needs to be compiled with the local compiler, not the cross
468  there are also CXX_FOR_BUILD and CXXFLAGS_FOR_BUILD for the C++ wrapper)  compiler.
469  when calling the "configure" command. If they are not specified, they default  
470  to the values of CC and CFLAGS.  When --enable-rebuild-chartables is not specified, pcre_chartables.c is created
471    by making a copy of pcre_chartables.c.dist, which is a default set of tables
472    that assumes ASCII code. Cross-compiling with the default tables should not be
473    a problem.
474    
475    If you need to modify the character tables when cross-compiling, you should
476    move pcre_chartables.c.dist out of the way, then compile dftables.c by hand and
477    run it on the local host to make a new version of pcre_chartables.c.dist.
478    Then when you cross-compile PCRE this new version of the tables will be used.
479    
480    
481  Using HP's ANSI C++ compiler (aCC)  Using HP's ANSI C++ compiler (aCC)
# Line 397  running the "configure" script: Line 494  running the "configure" script:
494    CXXLDFLAGS="-lstd_v2 -lCsup_v2"    CXXLDFLAGS="-lstd_v2 -lCsup_v2"
495    
496    
497    Using Sun's compilers for Solaris
498    ---------------------------------
499    
500    A user reports that the following configurations work on Solaris 9 sparcv9 and
501    Solaris 9 x86 (32-bit):
502    
503      Solaris 9 sparcv9: ./configure --disable-cpp CC=/bin/cc CFLAGS="-m64 -g"
504      Solaris 9 x86:     ./configure --disable-cpp CC=/bin/cc CFLAGS="-g"
505    
506    
507    Using PCRE from MySQL
508    ---------------------
509    
510    On systems where both PCRE and MySQL are installed, it is possible to make use
511    of PCRE from within MySQL, as an alternative to the built-in pattern matching.
512    There is a web page that tells you how to do this:
513    
514      http://www.mysqludf.org/lib_mysqludf_preg/index.php
515    
516    
517  Making new tarballs  Making new tarballs
518  -------------------  -------------------
519    
520  The command "make dist" creates three PCRE tarballs, in tar.gz, tar.bz2, and  The command "make dist" creates three PCRE tarballs, in tar.gz, tar.bz2, and
521  zip formats. However, if you have modified any of the man page sources in the  zip formats. The command "make distcheck" does the same, but then does a trial
522  doc directory, you should first run the PrepareRelease script. This re-creates  build of the new distribution to ensure that it works.
523  the .txt and HTML forms of the documentation from the man pages.  
524    If you have modified any of the man page sources in the doc directory, you
525    should first run the PrepareRelease script before making a distribution. This
526    script creates the .txt and HTML forms of the documentation from the man pages.
527    
528    
529  Testing PCRE  Testing PCRE
# Line 461  is output to say why. If running this te Line 581  is output to say why. If running this te
581  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,
582  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.
583    
584    [If you are trying to run this test on Windows, you may be able to get it to
585    work by changing "fr_FR" to "french" everywhere it occurs. Alternatively, use
586    RunTest.bat. The version of RunTest.bat included with PCRE 7.4 and above uses
587    Windows versions of test 2. More info on using RunTest.bat is included in the
588    document entitled NON-UNIX-USE.]
589    
590  The fourth test checks the UTF-8 support. It is not run automatically unless  The fourth test checks the UTF-8 support. It is not run automatically unless
591  PCRE is built with UTF-8 support. To do this you must set --enable-utf8 when  PCRE is built with UTF-8 support. To do this you must set --enable-utf8 when
592  running "configure". This file can be also fed directly to the perltest script,  running "configure". This file can be also fed directly to the perltest.pl
593  provided you are running Perl 5.8 or higher. (For Perl 5.6, a small patch,  script, provided you are running Perl 5.8 or higher.
 commented in the script, can be be used.)  
594    
595  The fifth test checks error handling with UTF-8 encoding, and internal UTF-8  The fifth test checks error handling with UTF-8 encoding, and internal UTF-8
596  features of PCRE that are not relevant to Perl.  features of PCRE that are not relevant to Perl.
597    
598  The sixth test checks the support for Unicode character properties. It it not  The sixth test (which is Perl-5.10 compatible) checks the support for Unicode
599  run automatically unless PCRE is built with Unicode property support. To to  character properties. It it not run automatically unless PCRE is built with
600  this you must set --enable-unicode-properties when running "configure".  Unicode property support. To to this you must set --enable-unicode-properties
601    when running "configure".
602    
603  The seventh, eighth, and ninth tests check the pcre_dfa_exec() alternative  The seventh, eighth, and ninth tests check the pcre_dfa_exec() alternative
604  matching function, in non-UTF-8 mode, UTF-8 mode, and UTF-8 mode with Unicode  matching function, in non-UTF-8 mode, UTF-8 mode, and UTF-8 mode with Unicode
605  property support, respectively. The eighth and ninth tests are not run  property support, respectively. The eighth and ninth tests are not run
606  automatically unless PCRE is build with the relevant support.  automatically unless PCRE is build with the relevant support.
607    
608    The tenth test checks some internal offsets and code size features; it is run
609    only when the default "link size" of 2 is set (in other cases the sizes
610    change).
611    
612    The eleventh test checks out features that are new in Perl 5.10, and the
613    twelfth test checks a number internals and non-Perl features concerned with
614    Unicode property support. It it not run automatically unless PCRE is built with
615    Unicode property support. To to this you must set --enable-unicode-properties
616    when running "configure".
617    
618    
619  Character tables  Character tables
620  ----------------  ----------------
# Line 490  concatenated tables. A call to pcre_make Line 626  concatenated tables. A call to pcre_make
626  of tables in the current locale. If the final argument for pcre_compile() is  of tables in the current locale. If the final argument for pcre_compile() is
627  passed as NULL, a set of default tables that is built into the binary is used.  passed as NULL, a set of default tables that is built into the binary is used.
628    
629  The source file called chartables.c contains the default set of tables. This is  The source file called pcre_chartables.c contains the default set of tables. By
630  not supplied in the distribution, but is built by the program dftables  default, this is created as a copy of pcre_chartables.c.dist, which contains
631  (compiled from dftables.c), which uses the ANSI C character handling functions  tables for ASCII coding. However, if --enable-rebuild-chartables is specified
632  such as isalnum(), isalpha(), isupper(), islower(), etc. to build the table  for ./configure, a different version of pcre_chartables.c is built by the
633  sources. This means that the default C locale which is set for your system will  program dftables (compiled from dftables.c), which uses the ANSI C character
634  control the contents of these default tables. You can change the default tables  handling functions such as isalnum(), isalpha(), isupper(), islower(), etc. to
635  by editing chartables.c and then re-building PCRE. If you do this, you should  build the table sources. This means that the default C locale which is set for
636  take care to ensure that the file does not get automaticaly re-generated.  your system will control the contents of these default tables. You can change
637    the default tables by editing pcre_chartables.c and then re-building PCRE. If
638    you do this, you should take care to ensure that the file does not get
639    automatically re-generated. The best way to do this is to move
640    pcre_chartables.c.dist out of the way and replace it with your customized
641    tables.
642    
643    When the dftables program is run as a result of --enable-rebuild-chartables,
644    it uses the default C locale that is set on your system. It does not pay
645    attention to the LC_xxx environment variables. In other words, it uses the
646    system's default locale rather than whatever the compiling user happens to have
647    set. If you really do want to build a source set of character tables in a
648    locale that is specified by the LC_xxx variables, you can run the dftables
649    program by hand with the -L option. For example:
650    
651      ./dftables -L pcre_chartables.c.special
652    
653  The first two 256-byte tables provide lower casing and case flipping functions,  The first two 256-byte tables provide lower casing and case flipping functions,
654  respectively. The next table consists of three 32-byte bit maps which identify  respectively. The next table consists of three 32-byte bit maps which identify
# Line 526  The distribution should contain the foll Line 677  The distribution should contain the foll
677    
678  (A) Source files of the PCRE library functions and their headers:  (A) Source files of the PCRE library functions and their headers:
679    
680    dftables.c             auxiliary program for building chartables.c    dftables.c              auxiliary program for building pcre_chartables.c
681                                when --enable-rebuild-chartables is specified
682    
683    pcreposix.c            )    pcre_chartables.c.dist  a default set of character tables that assume ASCII
684    pcre_compile.c         )                              coding; used, unless --enable-rebuild-chartables is
685    pcre_config.c          )                              specified, by copying to pcre_chartables.c
686    pcre_dfa_exec.c        )  
687    pcre_exec.c            )    pcreposix.c             )
688    pcre_fullinfo.c        )    pcre_compile.c          )
689    pcre_get.c             ) sources for the functions in the library,    pcre_config.c           )
690    pcre_globals.c         )   and some internal functions that they use    pcre_dfa_exec.c         )
691    pcre_info.c            )    pcre_exec.c             )
692    pcre_maketables.c      )    pcre_fullinfo.c         )
693    pcre_newline.c         )    pcre_get.c              ) sources for the functions in the library,
694    pcre_ord2utf8.c        )    pcre_globals.c          )   and some internal functions that they use
695    pcre_refcount.c        )    pcre_info.c             )
696    pcre_study.c           )    pcre_maketables.c       )
697    pcre_tables.c          )    pcre_newline.c          )
698    pcre_try_flipped.c     )    pcre_ord2utf8.c         )
699    pcre_ucp_searchfuncs.c )    pcre_refcount.c         )
700    pcre_valid_utf8.c      )    pcre_study.c            )
701    pcre_version.c         )    pcre_tables.c           )
702    pcre_xclass.c          )    pcre_try_flipped.c      )
703    pcre_printint.src      ) debugging function that is #included in pcretest,    pcre_ucd.c              )
704                           )   and can also be #included in pcre_compile()    pcre_valid_utf8.c       )
705    pcre.h.in              template for pcre.h when built by "configure"    pcre_version.c          )
706    pcreposix.h            header for the external POSIX wrapper API    pcre_xclass.c           )
707    pcre_internal.h        header for internal use    pcre_printint.src       ) debugging function that is #included in pcretest,
708    ucp.h                  ) headers concerned with                            )   and can also be #included in pcre_compile()
709    ucpinternal.h          )   Unicode property handling    pcre.h.in               template for pcre.h when built by "configure"
710    ucptable.h             ) (this one is the data table)    pcreposix.h             header for the external POSIX wrapper API
711      pcre_internal.h         header for internal use
712    config.h.in            template for config.h, which is built by "configure"    ucp.h                   header for Unicode property handling
713    
714    pcrecpp.h              public header file for the C++ wrapper    config.h.in             template for config.h, which is built by "configure"
715    pcrecpparg.h.in        template for another C++ header file  
716    pcre_scanner.h         public header file for C++ scanner functions    pcrecpp.h               public header file for the C++ wrapper
717    pcrecpp.cc             )    pcrecpparg.h.in         template for another C++ header file
718    pcre_scanner.cc        ) source for the C++ wrapper library    pcre_scanner.h          public header file for C++ scanner functions
719      pcrecpp.cc              )
720    pcre_stringpiece.h.in  template for pcre_stringpiece.h, the header for the    pcre_scanner.cc         ) source for the C++ wrapper library
721                             C++ stringpiece functions  
722    pcre_stringpiece.cc    source for the C++ stringpiece functions    pcre_stringpiece.h.in   template for pcre_stringpiece.h, the header for the
723                                C++ stringpiece functions
724      pcre_stringpiece.cc     source for the C++ stringpiece functions
725    
726  (B) Source files for programs that use PCRE:  (B) Source files for programs that use PCRE:
727    
728    pcredemo.c             simple demonstration of coding calls to PCRE    pcredemo.c              simple demonstration of coding calls to PCRE
729    pcregrep.c             source of a grep utility that uses PCRE    pcregrep.c              source of a grep utility that uses PCRE
730    pcretest.c             comprehensive test program    pcretest.c              comprehensive test program
731    
732  (C) Auxiliary files:  (C) Auxiliary files:
733    
734    132html                script to turn "man" pages into HTML    132html                 script to turn "man" pages into HTML
735    AUTHORS                information about the author of PCRE    AUTHORS                 information about the author of PCRE
736    ChangeLog              log of changes to the code    ChangeLog               log of changes to the code
737    CleanTxt               script to clean nroff output for txt man pages    CleanTxt                script to clean nroff output for txt man pages
738    Detrail                script to remove trailing spaces    Detrail                 script to remove trailing spaces
739    HACKING                some notes about the internals of PCRE    HACKING                 some notes about the internals of PCRE
740    INSTALL                generic installation instructions    INSTALL                 generic installation instructions
741    LICENCE                conditions for the use of PCRE    LICENCE                 conditions for the use of PCRE
742    COPYING                the same, using GNU's standard name    COPYING                 the same, using GNU's standard name
743    Makefile.in            ) template for Unix Makefile, which is built by    Makefile.in             ) template for Unix Makefile, which is built by
744                           )   "configure"                            )   "configure"
745    Makefile.am            ) the automake input that was used to create    Makefile.am             ) the automake input that was used to create
746                           )   Makefile.in                            )   Makefile.in
747    NEWS                   important changes in this release    NEWS                    important changes in this release
748    NON-UNIX-USE           notes on building PCRE on non-Unix systems    NON-UNIX-USE            notes on building PCRE on non-Unix systems
749    PrepareRelease         script to make preparations for "make dist"    PrepareRelease          script to make preparations for "make dist"
750    README                 this file    README                  this file
751    RunTest.in             template for a Unix shell script for running tests    RunTest                 a Unix shell script for running tests
752    RunGrepTest.in         template for a Unix shell script for pcregrep tests    RunGrepTest             a Unix shell script for pcregrep tests
753    aclocal.m4             m4 macros (generated by "aclocal")    aclocal.m4              m4 macros (generated by "aclocal")
754    config.guess           ) files used by libtool,    config.guess            ) files used by libtool,
755    config.sub             )   used only when building a shared library    config.sub              )   used only when building a shared library
756    configure              a configuring shell script (built by autoconf)    configure               a configuring shell script (built by autoconf)
757    configure.ac           ) the autoconf input that was used to build    configure.ac            ) the autoconf input that was used to build
758                           )   "configure" and config.h                            )   "configure" and config.h
759    depcomp                ) script to find program dependencies, generated by    depcomp                 ) script to find program dependencies, generated by
760                           )   automake                            )   automake
761    doc/*.3                man page sources for the PCRE functions    doc/*.3                 man page sources for PCRE
762    doc/*.1                man page sources for pcregrep and pcretest    doc/*.1                 man page sources for pcregrep and pcretest
763    doc/index.html.src     the base HTML page    doc/index.html.src      the base HTML page
764    doc/html/*             HTML documentation    doc/html/*              HTML documentation
765    doc/pcre.txt           plain text version of the man pages    doc/pcre.txt            plain text version of the man pages
766    doc/pcretest.txt       plain text documentation of test program    doc/pcretest.txt        plain text documentation of test program
767    doc/perltest.txt       plain text documentation of Perl test program    doc/perltest.txt        plain text documentation of Perl test program
768    install-sh             a shell script for installing files    install-sh              a shell script for installing files
769    libpcre.pc.in          template for libpcre.pc for pkg-config    libpcre.pc.in           template for libpcre.pc for pkg-config
770    libpcrecpp.pc.in       template for libpcrecpp.pc for pkg-config    libpcreposix.pc.in      template for libpcreposix.pc for pkg-config
771    ltmain.sh              file used to build a libtool script    libpcrecpp.pc.in        template for libpcrecpp.pc for pkg-config
772    missing                ) common stub for a few missing GNU programs while    ltmain.sh               file used to build a libtool script
773                           )   installing, generated by automake    missing                 ) common stub for a few missing GNU programs while
774    mkinstalldirs          script for making install directories                            )   installing, generated by automake
775    perltest.pl            Perl test program    mkinstalldirs           script for making install directories
776    pcre-config.in         source of script which retains PCRE information    perltest.pl             Perl test program
777      pcre-config.in          source of script which retains PCRE information
778    pcrecpp_unittest.cc          )    pcrecpp_unittest.cc          )
779    pcre_scanner_unittest.cc     ) test programs for the C++ wrapper    pcre_scanner_unittest.cc     ) test programs for the C++ wrapper
780    pcre_stringpiece_unittest.cc )    pcre_stringpiece_unittest.cc )
781    testdata/testinput*    test data for main library tests    testdata/testinput*     test data for main library tests
782    testdata/testoutput*   expected test results    testdata/testoutput*    expected test results
783    testdata/grep*         input and output for pcregrep tests    testdata/grep*          input and output for pcregrep tests
784    
785  (D) Auxiliary files for cmake support  (D) Auxiliary files for cmake support
786    
787      cmake/COPYING-CMAKE-SCRIPTS
788      cmake/FindPackageHandleStandardArgs.cmake
789      cmake/FindReadline.cmake
790    CMakeLists.txt    CMakeLists.txt
791    config-cmake.h.in    config-cmake.h.in
792    
793  (E) Auxiliary files for VPASCAL  (E) Auxiliary files for VPASCAL
794    
795    makevp.bat    makevp.bat
796    makevp-compile.txt    makevp_c.txt
797    makevp-linklib.txt    makevp_l.txt
798    pcregexp.pas    pcregexp.pas
799    
800  (F) Auxiliary files for building PCRE "by hand"  (F) Auxiliary files for building PCRE "by hand"
801    
802    pcre.h.generic         ) a version of the public PCRE header file    pcre.h.generic          ) a version of the public PCRE header file
803                           )   for use in non-"configure" environments                            )   for use in non-"configure" environments
804    config.h.generic       ) a version of config.h for use in non-"configure"    config.h.generic        ) a version of config.h for use in non-"configure"
805                           )   environments                            )   environments
806    
807  (F) Miscellaneous  (F) Miscellaneous
808    
# Line 653  The distribution should contain the foll Line 811  The distribution should contain the foll
811  Philip Hazel  Philip Hazel
812  Email local part: ph10  Email local part: ph10
813  Email domain: cam.ac.uk  Email domain: cam.ac.uk
814  Last updated: March 2007  Last updated: 02 August 2011

Legend:
Removed from v.127  
changed lines
  Added in v.654

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12