[Pcre-svn] [1332] code/trunk: Updates to building documentat…

Top Page
Delete this message
Author: Subversion repository
Date:  
To: pcre-svn
Subject: [Pcre-svn] [1332] code/trunk: Updates to building documentation.
Revision: 1332
          http://vcs.pcre.org/viewvc?view=rev&revision=1332
Author:   ph10
Date:     2013-05-14 15:26:37 +0100 (Tue, 14 May 2013)


Log Message:
-----------
Updates to building documentation.

Modified Paths:
--------------
    code/trunk/Makefile.am
    code/trunk/NON-AUTOTOOLS-BUILD
    code/trunk/PrepareRelease
    code/trunk/doc/html/index.html
    code/trunk/doc/html/pcre.html
    code/trunk/doc/html/pcrebuild.html
    code/trunk/doc/index.html.src
    code/trunk/doc/pcre.3
    code/trunk/doc/pcre.txt
    code/trunk/doc/pcrebuild.3


Added Paths:
-----------
    code/trunk/doc/html/NON-AUTOTOOLS-BUILD.txt
    code/trunk/doc/html/README.txt


Modified: code/trunk/Makefile.am
===================================================================
--- code/trunk/Makefile.am    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/Makefile.am    2013-05-14 14:26:37 UTC (rev 1332)
@@ -14,12 +14,16 @@
   NEWS \
   README


+# Note that pcrecpp.html is not in this list; it is listed separately below.
+
dist_html_DATA = \
+ doc/html/NON-AUTOTOOLS-BUILD.txt \
+ doc/html/README.txt \
doc/html/index.html \
+ doc/html/pcre-config.html \
doc/html/pcre.html \
doc/html/pcre16.html \
doc/html/pcre32.html \
- doc/html/pcre-config.html \
doc/html/pcre_assign_jit_stack.html \
doc/html/pcre_compile.html \
doc/html/pcre_compile2.html \
@@ -661,11 +665,13 @@
pkgconfig_DATA += libpcrecpp.pc
endif

+# Note that pcrecpp.3 is not in this list, but is included separately below.
+
dist_man_MANS = \
+ doc/pcre-config.1 \
doc/pcre.3 \
doc/pcre16.3 \
doc/pcre32.3 \
- doc/pcre-config.1 \
doc/pcre_assign_jit_stack.3 \
doc/pcre_compile.3 \
doc/pcre_compile2.3 \
@@ -697,6 +703,7 @@
doc/pcrebuild.3 \
doc/pcrecallout.3 \
doc/pcrecompat.3 \
+ doc/pcredemo.3 \
doc/pcregrep.1 \
doc/pcrejit.3 \
doc/pcrelimits.3 \

Modified: code/trunk/NON-AUTOTOOLS-BUILD
===================================================================
--- code/trunk/NON-AUTOTOOLS-BUILD    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/NON-AUTOTOOLS-BUILD    2013-05-14 14:26:37 UTC (rev 1332)
@@ -9,11 +9,14 @@
   Building for virtual Pascal
   Stack size in Windows environments
   Linking programs in Windows environments
+  Calling conventions in Windows environments
   Comments about Win32 builds
   Building PCRE on Windows with CMake
   Use of relative paths with CMake on Windows
   Testing with RunTest.bat
+  Building under Windows CE with Visual Studio 200x
   Building under Windows with BCC5.5
+  Building using Borland C++ Builder 2007 (CB2007) and higher
   Building PCRE on OpenVMS
   Building PCRE on Stratus OpenVOS
   Building PCRE on native z/OS and z/VM
@@ -429,12 +432,9 @@


USE OF RELATIVE PATHS WITH CMAKE ON WINDOWS

-A PCRE user comments as follows:
+A PCRE user comments as follows: I thought that others may want to know the
+current state of CMAKE_USE_RELATIVE_PATHS support on Windows. Here it is:

-I thought that others may want to know the current state of
-CMAKE_USE_RELATIVE_PATHS support on Windows.
-
-Here it is:
 -- AdditionalIncludeDirectories is only partially modified (only the
    first path - see below)
 -- Only some of the contained file paths are modified - shown below for
@@ -490,27 +490,141 @@
 pcre_scanner_unittest.exe.



+BUILDING UNDER WINDOWS CE WITH VISUAL STUDIO 200x
+
+Vincent Richomme sent a zip archive of files to help with this process. They
+can be found in the file "pcre-vsbuild.zip" in the Contrib directory of the FTP
+site.
+
+
BUILDING UNDER WINDOWS WITH BCC5.5

Michael Roy sent these comments about building PCRE under Windows with BCC5.5:

- Some of the core BCC libraries have a version of PCRE from 1998 built in,
- which can lead to pcre_exec() giving an erroneous PCRE_ERROR_NULL from a
- version mismatch. I'm including an easy workaround below, if you'd like to
- include it in the non-unix instructions:
+Some of the core BCC libraries have a version of PCRE from 1998 built in, which
+can lead to pcre_exec() giving an erroneous PCRE_ERROR_NULL from a version
+mismatch. I'm including an easy workaround below, if you'd like to include it
+in the non-unix instructions:

- When linking a project with BCC5.5, pcre.lib must be included before any of
- the libraries cw32.lib, cw32i.lib, cw32mt.lib, and cw32mti.lib on the command
- line.
+When linking a project with BCC5.5, pcre.lib must be included before any of the
+libraries cw32.lib, cw32i.lib, cw32mt.lib, and cw32mti.lib on the command line.


-BUILDING UNDER WINDOWS CE WITH VISUAL STUDIO 200x
+BUILDING USING BORLAND C++ BUILDER 2007 (CB2007) AND HIGHER

-Vincent Richomme sent a zip archive of files to help with this process. They
-can be found in the file "pcre-vsbuild.zip" in the Contrib directory of the FTP
-site.
+A PCRE user sent these comments about this environment (see also the comment
+from another user that follows them):

+The XE versions of C++ Builder come with a RegularExpressionsCore class which
+contain a version of TPerlRegEx. However, direct use of the C PCRE library may
+be desirable.

+The default makevp.bat, however, supplied with PCRE builds a version of PCRE
+that is not usable with any version of C++ Builder because the compiler ships
+with an embedded version of PCRE, version 2.01 from 1998! [See also the note
+about BCC5.5 above.] If you want to use PCRE you'll need to rename the
+functions (pcre_compile to pcre_compile_bcc, etc) or do as I have done and just
+use the 16 bit versions. I'm using std::wstring everywhere anyway. Since the
+embedded version of PCRE does not have the 16 bit function names, there is no
+conflict.
+
+Building PCRE using a C++ Builder static library project file (recommended):
+
+1. Rename or remove pcre.h, pcreposi.h, and pcreposix.h from your C++ Builder
+original include path.
+
+2. Download PCRE from pcre.org and extract to a directory.
+
+3. Rename pcre_chartables.c.dist to pcre_chartables.c, pcre.h.generic to
+pcre.h, and config.h.generic to config.h.
+
+4. Edit pcre.h and pcre_config.c so that they include config.h.
+
+5. Edit config.h like so:
+
+Comment out the following lines:
+#define PACKAGE "pcre"
+#define PACKAGE_BUGREPORT ""
+#define PACKAGE_NAME "PCRE"
+#define PACKAGE_STRING "PCRE 8.32"
+#define PACKAGE_TARNAME "pcre"
+#define PACKAGE_URL ""
+#define PACKAGE_VERSION "8.32"
+
+Add the following lines:
+#ifndef SUPPORT_UTF
+#define SUPPORT_UTF 100 // any value is fine
+#endif
+
+#ifndef SUPPORT_UCP
+#define SUPPORT_UCP 101 // any value is fine
+#endif
+
+#ifndef SUPPORT_UCP
+#define SUPPORT_PCRE16 102 // any value is fine
+#endif
+
+#ifndef SUPPORT_UTF8
+#define SUPPORT_UTF8 103 // any value is fine
+#endif
+
+6. Build a C++ Builder project using the IDE. Go to File / New / Other and
+choose Static Library. You can name it pcre.cbproj or whatever. Now set your
+paths by going to Project / Options. Set the Include path. Do this from the
+"Base" option to apply to both Release and Debug builds. Now add the following
+files to the project:
+
+pcre.h
+pcre16_byte_order.c
+pcre16_chartables.c
+pcre16_compile.c
+pcre16_config.c
+pcre16_dfa_exec.c
+pcre16_exec.c
+pcre16_fullinfo.c
+pcre16_get.c
+pcre16_globals.c
+pcre16_maketables.c
+pcre16_newline.c
+pcre16_ord2utf16.c
+pcre16_printint.c
+pcre16_refcount.c
+pcre16_string_utils.c
+pcre16_study.c
+pcre16_tables.c
+pcre16_ucd.c
+pcre16_utf16_utils.c
+pcre16_valid_utf16.c
+pcre16_version.c
+pcre16_xclass.c
+
+//Optional
+pcre_version.c
+
+7. After compiling the .lib file, copy the .lib and header files to a project
+you want to use PCRE with. Enjoy.
+
+Optional ... Building PCRE using the makevp.bat file:
+
+1. Edit makevp_c.txt and makevp_l.txt and change all the names to the 16 bit
+versions.
+
+2. Edit makevp.bat and set the path to C++ Builder. Run makevp.bat.
+
+Another PCRE user added this comment:
+
+Another approach I successfully used for some years with BCB 5 and 6 was to
+make sure that include and library paths of PCRE are configured before the
+default paths of the IDE in the dialogs where one can manage those paths.
+Afterwards one can open the project files using a text editor and manually add
+the self created library for pcre itself, pcrecpp doesn't ship with the IDE, in
+the library nodes where the IDE manages its own libraries to link against in
+front of the IDE-own libraries. This way one can use the default PCRE function
+names without getting access violations on runtime.
+
+ <ALLLIB value="libpcre.lib $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
+
+
BUILDING PCRE ON OPENVMS

Stephen Hoffman sent the following, in December 2012:
@@ -647,4 +761,4 @@
http://www.vsoft-software.com/downloads.html

==========================
-Last Updated: 28 April 2013
+Last Updated: 14 May 2013

Modified: code/trunk/PrepareRelease
===================================================================
--- code/trunk/PrepareRelease    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/PrepareRelease    2013-05-14 14:26:37 UTC (rev 1332)
@@ -25,7 +25,13 @@
 #             when the HTML documentation is built. It works like this so that
 #             doc/html can be deleted and re-created from scratch.


+# README & NON-AUTOTOOLS-BUILD
+#             These files are copied into the doc/html directory, with .txt
+#             extensions so that they can by hyperlinked from the HTML 
+#             documentation, because some people just go to the HTML without
+#             looking for text files.


+
# First, sort out the documentation. Remove pcredemo.3 first because it won't
# pass the markup check (it is created below, using markup that none of the
# other pages use).
@@ -122,6 +128,8 @@
echo "Making HTML documentation"
/bin/rm html/*
cp index.html.src html/index.html
+cp ../README html/README.txt
+cp ../NON-AUTOTOOLS-BUILD html/NON-AUTOTOOLS-BUILD.txt

for file in *.1 ; do
base=`basename $file .1`

Added: code/trunk/doc/html/NON-AUTOTOOLS-BUILD.txt
===================================================================
--- code/trunk/doc/html/NON-AUTOTOOLS-BUILD.txt                            (rev 0)
+++ code/trunk/doc/html/NON-AUTOTOOLS-BUILD.txt    2013-05-14 14:26:37 UTC (rev 1332)
@@ -0,0 +1,650 @@
+Building PCRE without using autotools
+-------------------------------------
+
+This document contains the following sections:
+
+  General
+  Generic instructions for the PCRE C library
+  The C++ wrapper functions
+  Building for virtual Pascal
+  Stack size in Windows environments
+  Linking programs in Windows environments
+  Comments about Win32 builds
+  Building PCRE on Windows with CMake
+  Use of relative paths with CMake on Windows
+  Testing with RunTest.bat
+  Building under Windows with BCC5.5
+  Building PCRE on OpenVMS
+  Building PCRE on Stratus OpenVOS
+  Building PCRE on native z/OS and z/VM
+
+
+GENERAL
+
+I (Philip Hazel) have no experience of Windows or VMS sytems and how their
+libraries work. The items in the PCRE distribution and Makefile that relate to
+anything other than Linux systems are untested by me.
+
+There are some other comments and files (including some documentation in CHM
+format) in the Contrib directory on the FTP site:
+
+  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Contrib
+
+The basic PCRE library consists entirely of code written in Standard C, and so
+should compile successfully on any system that has a Standard C compiler and
+library. The C++ wrapper functions are a separate issue (see below).
+
+The PCRE distribution includes a "configure" file for use by the configure/make
+(autotools) build system, as found in many Unix-like environments. The README
+file contains information about the options for "configure".
+
+There is also support for CMake, which some users prefer, especially in Windows
+environments, though it can also be run in Unix-like environments. See the
+section entitled "Building PCRE on Windows with CMake" below.
+
+Versions of config.h and pcre.h are distributed in the PCRE tarballs under the
+names config.h.generic and pcre.h.generic. These are provided for those who
+build PCRE without using "configure" or CMake. If you use "configure" or CMake,
+the .generic versions are not used.
+
+
+GENERIC INSTRUCTIONS FOR THE PCRE C LIBRARY
+
+The following are generic instructions for building the PCRE C library "by
+hand". If you are going to use CMake, this section does not apply to you; you
+can skip ahead to the CMake section.
+
+ (1) Copy or rename the file config.h.generic as config.h, and edit the macro
+     settings that it contains to whatever is appropriate for your environment.
+
+     In particular, you can alter the definition of the NEWLINE macro to
+     specify what character(s) you want to be interpreted as line terminators.
+     In an EBCDIC environment, you MUST change NEWLINE, because its default
+     value is 10, an ASCII LF. The usual EBCDIC newline character is 21 (0x15,
+     NL), though in some cases it may be 37 (0x25).
+
+     When you compile any of the PCRE modules, you must specify -DHAVE_CONFIG_H
+     to your compiler so that config.h is included in the sources.
+
+     An alternative approach is not to edit config.h, but to use -D on the
+     compiler command line to make any changes that you need to the
+     configuration options. In this case -DHAVE_CONFIG_H must not be set.
+
+     NOTE: There have been occasions when the way in which certain parameters
+     in config.h are used has changed between releases. (In the configure/make
+     world, this is handled automatically.) When upgrading to a new release,
+     you are strongly advised to review config.h.generic before re-using what
+     you had previously.
+
+ (2) Copy or rename the file pcre.h.generic as pcre.h.
+
+ (3) EITHER:
+       Copy or rename file pcre_chartables.c.dist as pcre_chartables.c.
+
+     OR:
+       Compile dftables.c as a stand-alone program (using -DHAVE_CONFIG_H if
+       you have set up config.h), and then run it with the single argument
+       "pcre_chartables.c". This generates a set of standard character tables
+       and writes them to that file. The tables are generated using the default
+       C locale for your system. If you want to use a locale that is specified
+       by LC_xxx environment variables, add the -L option to the dftables
+       command. You must use this method if you are building on a system that
+       uses EBCDIC code.
+
+     The tables in pcre_chartables.c are defaults. The caller of PCRE can
+     specify alternative tables at run time.
+
+ (4) Ensure that you have the following header files:
+
+       pcre_internal.h
+       ucp.h
+
+ (5) For an 8-bit library, compile the following source files, setting
+     -DHAVE_CONFIG_H as a compiler option if you have set up config.h with your
+     configuration, or else use other -D settings to change the configuration
+     as required.
+
+       pcre_byte_order.c
+       pcre_chartables.c
+       pcre_compile.c
+       pcre_config.c
+       pcre_dfa_exec.c
+       pcre_exec.c
+       pcre_fullinfo.c
+       pcre_get.c
+       pcre_globals.c
+       pcre_jit_compile.c
+       pcre_maketables.c
+       pcre_newline.c
+       pcre_ord2utf8.c
+       pcre_refcount.c
+       pcre_string_utils.c
+       pcre_study.c
+       pcre_tables.c
+       pcre_ucd.c
+       pcre_valid_utf8.c
+       pcre_version.c
+       pcre_xclass.c
+
+     Make sure that you include -I. in the compiler command (or equivalent for
+     an unusual compiler) so that all included PCRE header files are first
+     sought in the current directory. Otherwise you run the risk of picking up
+     a previously-installed file from somewhere else.
+
+     Note that you must still compile pcre_jit_compile.c, even if you have not
+     defined SUPPORT_JIT in config.h, because when JIT support is not
+     configured, dummy functions are compiled. When JIT support IS configured,
+     pcre_jit_compile.c #includes sources from the sljit subdirectory, where
+     there should be 16 files, all of whose names begin with "sljit".
+
+ (6) Now link all the compiled code into an object library in whichever form
+     your system keeps such libraries. This is the basic PCRE C 8-bit library.
+     If your system has static and shared libraries, you may have to do this
+     once for each type.
+
+ (7) If you want to build a 16-bit library (as well as, or instead of the 8-bit
+     or 32-bit libraries) repeat steps 5-6 with the following files:
+
+       pcre16_byte_order.c
+       pcre16_chartables.c
+       pcre16_compile.c
+       pcre16_config.c
+       pcre16_dfa_exec.c
+       pcre16_exec.c
+       pcre16_fullinfo.c
+       pcre16_get.c
+       pcre16_globals.c
+       pcre16_jit_compile.c
+       pcre16_maketables.c
+       pcre16_newline.c
+       pcre16_ord2utf16.c
+       pcre16_refcount.c
+       pcre16_string_utils.c
+       pcre16_study.c
+       pcre16_tables.c
+       pcre16_ucd.c
+       pcre16_utf16_utils.c
+       pcre16_valid_utf16.c
+       pcre16_version.c
+       pcre16_xclass.c
+
+ (8) If you want to build a 16-bit library (as well as, or instead of the 8-bit
+     or 32-bit libraries) repeat steps 5-6 with the following files:
+
+       pcre32_byte_order.c
+       pcre32_chartables.c
+       pcre32_compile.c
+       pcre32_config.c
+       pcre32_dfa_exec.c
+       pcre32_exec.c
+       pcre32_fullinfo.c
+       pcre32_get.c
+       pcre32_globals.c
+       pcre32_jit_compile.c
+       pcre32_maketables.c
+       pcre32_newline.c
+       pcre32_ord2utf32.c
+       pcre32_refcount.c
+       pcre32_string_utils.c
+       pcre32_study.c
+       pcre32_tables.c
+       pcre32_ucd.c
+       pcre32_utf32_utils.c
+       pcre32_valid_utf32.c
+       pcre32_version.c
+       pcre32_xclass.c
+
+ (9) If you want to build the POSIX wrapper functions (which apply only to the
+     8-bit library), ensure that you have the pcreposix.h file and then compile
+     pcreposix.c (remembering -DHAVE_CONFIG_H if necessary). Link the result
+     (on its own) as the pcreposix library.
+
+(10) The pcretest program can be linked with any combination of the 8-bit,
+     16-bit and 32-bit libraries (depending on what you selected in config.h).
+     Compile pcretest.c and pcre_printint.c (again, don't forget
+     -DHAVE_CONFIG_H) and link them together with the appropriate library/ies.
+     If you compiled an 8-bit library, pcretest also needs the pcreposix
+     wrapper library unless you compiled it with -DNOPOSIX.
+
+(11) Run pcretest on the testinput files in the testdata directory, and check
+     that the output matches the corresponding testoutput files. There are
+     comments about what each test does in the section entitled "Testing PCRE"
+     in the README file. If you compiled more than one of the 8-bit, 16-bit and
+     32-bit libraries, you need to run pcretest with the -16 option to do
+     16-bit tests and with the -32 option to do 32-bit tests.
+
+     Some tests are relevant only when certain build-time options are selected.
+     For example, test 4 is for UTF-8/UTF-16/UTF-32 support, and will not run
+     if you have built PCRE without it. See the comments at the start of each
+     testinput file. If you have a suitable Unix-like shell, the RunTest script
+     will run the appropriate tests for you. The command "RunTest list" will
+     output a list of all the tests.
+
+     Note that the supplied files are in Unix format, with just LF characters
+     as line terminators. You may need to edit them to change this if your
+     system uses a different convention. If you are using Windows, you probably
+     should use the wintestinput3 file instead of testinput3 (and the
+     corresponding output file). This is a locale test; wintestinput3 sets the
+     locale to "french" rather than "fr_FR", and there some minor output
+     differences.
+
+(12) If you have built PCRE with SUPPORT_JIT, the JIT features will be tested
+     by the testdata files. However, you might also like to build and run
+     the freestanding JIT test program, pcre_jit_test.c.
+
+(13) If you want to use the pcregrep command, compile and link pcregrep.c; it
+     uses only the basic 8-bit PCRE library (it does not need the pcreposix
+     library).
+
+
+THE C++ WRAPPER FUNCTIONS
+
+The PCRE distribution also contains some C++ wrapper functions and tests,
+applicable to the 8-bit library, which were contributed by Google Inc. On a
+system that can use "configure" and "make", the functions are automatically
+built into a library called pcrecpp. It should be straightforward to compile
+the .cc files manually on other systems. The files called xxx_unittest.cc are
+test programs for each of the corresponding xxx.cc files.
+
+
+BUILDING FOR VIRTUAL PASCAL
+
+A script for building PCRE using Borland's C++ compiler for use with VPASCAL
+was contributed by Alexander Tokarev. Stefan Weber updated the script and added
+additional files. The following files in the distribution are for building PCRE
+for use with VP/Borland: makevp_c.txt, makevp_l.txt, makevp.bat, pcregexp.pas.
+
+
+STACK SIZE IN WINDOWS ENVIRONMENTS
+
+The default processor stack size of 1Mb in some Windows environments is too
+small for matching patterns that need much recursion. In particular, test 2 may
+fail because of this. Normally, running out of stack causes a crash, but there
+have been cases where the test program has just died silently. See your linker
+documentation for how to increase stack size if you experience problems. The
+Linux default of 8Mb is a reasonable choice for the stack, though even that can
+be too small for some pattern/subject combinations.
+
+PCRE has a compile configuration option to disable the use of stack for
+recursion so that heap is used instead. However, pattern matching is
+significantly slower when this is done. There is more about stack usage in the
+"pcrestack" documentation.
+
+
+LINKING PROGRAMS IN WINDOWS ENVIRONMENTS
+
+If you want to statically link a program against a PCRE library in the form of
+a non-dll .a file, you must define PCRE_STATIC before including pcre.h or
+pcrecpp.h, otherwise the pcre_malloc() and pcre_free() exported functions will
+be declared __declspec(dllimport), with unwanted results.
+
+
+CALLING CONVENTIONS IN WINDOWS ENVIRONMENTS
+
+It is possible to compile programs to use different calling conventions using
+MSVC. Search the web for "calling conventions" for more information. To make it
+easier to change the calling convention for the exported functions in the
+PCRE library, the macro PCRE_CALL_CONVENTION is present in all the external
+definitions. It can be set externally when compiling (e.g. in CFLAGS). If it is
+not set, it defaults to empty; the default calling convention is then used
+(which is what is wanted most of the time).
+
+
+COMMENTS ABOUT WIN32 BUILDS (see also "BUILDING PCRE ON WINDOWS WITH CMAKE")
+
+There are two ways of building PCRE using the "configure, make, make install"
+paradigm on Windows systems: using MinGW or using Cygwin. These are not at all
+the same thing; they are completely different from each other. There is also
+support for building using CMake, which some users find a more straightforward
+way of building PCRE under Windows.
+
+The MinGW home page (http://www.mingw.org/) says this:
+
+  MinGW: A collection of freely available and freely distributable Windows
+  specific header files and import libraries combined with GNU toolsets that
+  allow one to produce native Windows programs that do not rely on any
+  3rd-party C runtime DLLs.
+
+The Cygwin home page (http://www.cygwin.com/) says this:
+
+  Cygwin is a Linux-like environment for Windows. It consists of two parts:
+
+  . A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing
+    substantial Linux API functionality
+
+  . A collection of tools which provide Linux look and feel.
+
+  The Cygwin DLL currently works with all recent, commercially released x86 32
+  bit and 64 bit versions of Windows, with the exception of Windows CE.
+
+On both MinGW and Cygwin, PCRE should build correctly using:
+
+  ./configure && make && make install
+
+This should create two libraries called libpcre and libpcreposix, and, if you
+have enabled building the C++ wrapper, a third one called libpcrecpp. These are
+independent libraries: when you link with libpcreposix or libpcrecpp you must
+also link with libpcre, which contains the basic functions. (Some earlier
+releases of PCRE included the basic libpcre functions in libpcreposix. This no
+longer happens.)
+
+A user submitted a special-purpose patch that makes it easy to create
+"pcre.dll" under mingw32 using the "msys" environment. It provides "pcre.dll"
+as a special target. If you use this target, no other files are built, and in
+particular, the pcretest and pcregrep programs are not built. An example of how
+this might be used is:
+
+  ./configure --enable-utf --disable-cpp CFLAGS="-03 -s"; make pcre.dll
+
+Using Cygwin's compiler generates libraries and executables that depend on
+cygwin1.dll. If a library that is generated this way is distributed,
+cygwin1.dll has to be distributed as well. Since cygwin1.dll is under the GPL
+licence, this forces not only PCRE to be under the GPL, but also the entire
+application. A distributor who wants to keep their own code proprietary must
+purchase an appropriate Cygwin licence.
+
+MinGW has no such restrictions. The MinGW compiler generates a library or
+executable that can run standalone on Windows without any third party dll or
+licensing issues.
+
+But there is more complication:
+
+If a Cygwin user uses the -mno-cygwin Cygwin gcc flag, what that really does is
+to tell Cygwin's gcc to use the MinGW gcc. Cygwin's gcc is only acting as a
+front end to MinGW's gcc (if you install Cygwin's gcc, you get both Cygwin's
+gcc and MinGW's gcc). So, a user can:
+
+. Build native binaries by using MinGW or by getting Cygwin and using
+  -mno-cygwin.
+
+. Build binaries that depend on cygwin1.dll by using Cygwin with the normal
+  compiler flags.
+
+The test files that are supplied with PCRE are in UNIX format, with LF
+characters as line terminators. Unless your PCRE library uses a default newline
+option that includes LF as a valid newline, it may be necessary to change the
+line terminators in the test files to get some of the tests to work.
+
+
+BUILDING PCRE ON WINDOWS WITH CMAKE
+
+CMake is an alternative configuration facility that can be used instead of
+"configure". CMake creates project files (make files, solution files, etc.)
+tailored to numerous development environments, including Visual Studio,
+Borland, Msys, MinGW, NMake, and Unix. If possible, use short paths with no
+spaces in the names for your CMake installation and your PCRE source and build
+directories.
+
+The following instructions were contributed by a PCRE user. If they are not
+followed exactly, errors may occur. In the event that errors do occur, it is
+recommended that you delete the CMake cache before attempting to repeat the
+CMake build process. In the CMake GUI, the cache can be deleted by selecting
+"File > Delete Cache".
+
+1.  Install the latest CMake version available from http://www.cmake.org/, and
+    ensure that cmake\bin is on your path.
+
+2.  Unzip (retaining folder structure) the PCRE source tree into a source
+    directory such as C:\pcre. You should ensure your local date and time
+    is not earlier than the file dates in your source dir if the release is
+    very new.
+
+3.  Create a new, empty build directory, preferably a subdirectory of the
+    source dir. For example, C:\pcre\pcre-xx\build.
+
+4.  Run cmake-gui from the Shell envirornment of your build tool, for example,
+    Msys for Msys/MinGW or Visual Studio Command Prompt for VC/VC++. Do not try
+    to start Cmake from the Windows Start menu, as this can lead to errors.
+
+5.  Enter C:\pcre\pcre-xx and C:\pcre\pcre-xx\build for the source and build
+    directories, respectively.
+
+6.  Hit the "Configure" button.
+
+7.  Select the particular IDE / build tool that you are using (Visual
+    Studio, MSYS makefiles, MinGW makefiles, etc.)
+
+8.  The GUI will then list several configuration options. This is where
+    you can enable UTF-8 support or other PCRE optional features.
+
+9.  Hit "Configure" again. The adjacent "Generate" button should now be
+    active.
+
+10. Hit "Generate".
+
+11. The build directory should now contain a usable build system, be it a
+    solution file for Visual Studio, makefiles for MinGW, etc. Exit from
+    cmake-gui and use the generated build system with your compiler or IDE.
+    E.g., for MinGW you can run "make", or for Visual Studio, open the PCRE
+    solution, select the desired configuration (Debug, or Release, etc.) and
+    build the ALL_BUILD project.
+
+12. If during configuration with cmake-gui you've elected to build the test
+    programs, you can execute them by building the test project. E.g., for
+    MinGW: "make test"; for Visual Studio build the RUN_TESTS project. The
+    most recent build configuration is targeted by the tests. A summary of
+    test results is presented. Complete test output is subsequently
+    available for review in Testing\Temporary under your build dir.
+
+
+USE OF RELATIVE PATHS WITH CMAKE ON WINDOWS
+
+A PCRE user comments as follows:
+
+I thought that others may want to know the current state of
+CMAKE_USE_RELATIVE_PATHS support on Windows.
+
+Here it is:
+-- AdditionalIncludeDirectories is only partially modified (only the
+   first path - see below)
+-- Only some of the contained file paths are modified - shown below for
+   pcre.vcproj
+-- It properly modifies
+
+I am sure CMake people can fix that if they want to. Until then one will
+need to replace existing absolute paths in project files with relative
+paths manually (e.g. from VS) - relative to project file location. I did
+just that before being told to try CMAKE_USE_RELATIVE_PATHS. Not a big
+deal.
+
+AdditionalIncludeDirectories="E:\builds\pcre\build;E:\builds\pcre\pcre-7.5;"
+AdditionalIncludeDirectories=".;E:\builds\pcre\pcre-7.5;"
+
+RelativePath="pcre.h"
+RelativePath="pcre_chartables.c"
+RelativePath="pcre_chartables.c.rule"
+
+
+TESTING WITH RUNTEST.BAT
+
+If configured with CMake, building the test project ("make test" or building
+ALL_TESTS in Visual Studio) creates (and runs) pcre_test.bat (and depending
+on your configuration options, possibly other test programs) in the build
+directory. Pcre_test.bat runs RunTest.Bat with correct source and exe paths.
+
+For manual testing with RunTest.bat, provided the build dir is a subdirectory
+of the source directory: Open command shell window. Chdir to the location
+of your pcretest.exe and pcregrep.exe programs. Call RunTest.bat with
+"..\RunTest.Bat" or "..\..\RunTest.bat" as appropriate.
+
+To run only a particular test with RunTest.Bat provide a test number argument.
+
+Otherwise:
+
+1. Copy RunTest.bat into the directory where pcretest.exe and pcregrep.exe
+   have been created.
+
+2. Edit RunTest.bat to indentify the full or relative location of
+   the pcre source (wherein which the testdata folder resides), e.g.:
+
+   set srcdir=C:\pcre\pcre-8.20
+
+3. In a Windows command environment, chdir to the location of your bat and
+   exe programs.
+
+4. Run RunTest.bat. Test outputs will automatically be compared to expected
+   results, and discrepancies will be identified in the console output.
+
+To independently test the just-in-time compiler, run pcre_jit_test.exe.
+To test pcrecpp, run pcrecpp_unittest.exe, pcre_stringpiece_unittest.exe and
+pcre_scanner_unittest.exe.
+
+
+BUILDING UNDER WINDOWS WITH BCC5.5
+
+Michael Roy sent these comments about building PCRE under Windows with BCC5.5:
+
+  Some of the core BCC libraries have a version of PCRE from 1998 built in,
+  which can lead to pcre_exec() giving an erroneous PCRE_ERROR_NULL from a
+  version mismatch. I'm including an easy workaround below, if you'd like to
+  include it in the non-unix instructions:
+
+  When linking a project with BCC5.5, pcre.lib must be included before any of
+  the libraries cw32.lib, cw32i.lib, cw32mt.lib, and cw32mti.lib on the command
+  line.
+
+
+BUILDING UNDER WINDOWS CE WITH VISUAL STUDIO 200x
+
+Vincent Richomme sent a zip archive of files to help with this process. They
+can be found in the file "pcre-vsbuild.zip" in the Contrib directory of the FTP
+site.
+
+
+BUILDING PCRE ON OPENVMS
+
+Stephen Hoffman sent the following, in December 2012:
+
+"Here <http://labs.hoffmanlabs.com/node/1847> is a very short write-up on the
+OpenVMS port and here
+
+<http://labs.hoffmanlabs.com/labsnotes/pcre-vms-8_32.zip>
+
+is a zip with the OpenVMS files, and with one modified testing-related PCRE
+file." This is a port of PCRE 8.32.
+
+Earlier, Dan Mooney sent the following comments about building PCRE on OpenVMS.
+They relate to an older version of PCRE that used fewer source files, so the
+exact commands will need changing. See the current list of source files above.
+
+"It was quite easy to compile and link the library. I don't have a formal
+make file but the attached file [reproduced below] contains the OpenVMS DCL
+commands I used to build the library. I had to add #define
+POSIX_MALLOC_THRESHOLD 10 to pcre.h since it was not defined anywhere.
+
+The library was built on:
+O/S: HP OpenVMS v7.3-1
+Compiler: Compaq C v6.5-001-48BCD
+Linker: vA13-01
+
+The test results did not match 100% due to the issues you mention in your
+documentation regarding isprint(), iscntrl(), isgraph() and ispunct(). I
+modified some of the character tables temporarily and was able to get the
+results to match. Tests using the fr locale did not match since I don't have
+that locale loaded. The study size was always reported to be 3 less than the
+value in the standard test output files."
+
+=========================
+$! This DCL procedure builds PCRE on OpenVMS
+$!
+$! I followed the instructions in the non-unix-use file in the distribution.
+$!
+$ COMPILE == "CC/LIST/NOMEMBER_ALIGNMENT/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
+$ COMPILE DFTABLES.C
+$ LINK/EXE=DFTABLES.EXE DFTABLES.OBJ
+$ RUN DFTABLES.EXE/OUTPUT=CHARTABLES.C
+$ COMPILE MAKETABLES.C
+$ COMPILE GET.C
+$ COMPILE STUDY.C
+$! I had to set POSIX_MALLOC_THRESHOLD to 10 in PCRE.H since the symbol
+$! did not seem to be defined anywhere.
+$! I edited pcre.h and added #DEFINE SUPPORT_UTF8 to enable UTF8 support.
+$ COMPILE PCRE.C
+$ LIB/CREATE PCRE MAKETABLES.OBJ, GET.OBJ, STUDY.OBJ, PCRE.OBJ
+$! I had to set POSIX_MALLOC_THRESHOLD to 10 in PCRE.H since the symbol
+$! did not seem to be defined anywhere.
+$ COMPILE PCREPOSIX.C
+$ LIB/CREATE PCREPOSIX PCREPOSIX.OBJ
+$ COMPILE PCRETEST.C
+$ LINK/EXE=PCRETEST.EXE PCRETEST.OBJ, PCRE/LIB, PCREPOSIX/LIB
+$! C programs that want access to command line arguments must be
+$! defined as a symbol
+$ PCRETEST :== "$ SYS$ROADSUSERS:[DMOONEY.REGEXP]PCRETEST.EXE"
+$! Arguments must be enclosed in quotes.
+$ PCRETEST "-C"
+$! Test results:
+$!
+$!   The test results did not match 100%. The functions isprint(), iscntrl(),
+$!   isgraph() and ispunct() on OpenVMS must not produce the same results
+$!   as the system that built the test output files provided with the
+$!   distribution.
+$!
+$!   The study size did not match and was always 3 less on OpenVMS.
+$!
+$!   Locale could not be set to fr
+$!
+=========================
+
+
+BUILDING PCRE ON STRATUS OPENVOS
+
+These notes on the port of PCRE to VOS (lightly edited) were supplied by
+Ashutosh Warikoo, whose email address has the local part awarikoo and the
+domain nse.co.in. The port was for version 7.9 in August 2009.
+
+1.   Building PCRE
+
+I built pcre on OpenVOS Release 17.0.1at using GNU Tools 3.4a without any
+problems. I used the following packages to build PCRE:
+
+  ftp://ftp.stratus.com/pub/vos/posix/ga/posix.save.evf.gz
+
+Please read and follow the instructions that come with these packages. To start
+the build of pcre, from the root of the package type:
+
+  ./build.sh
+
+2. Installing PCRE
+
+Once you have successfully built PCRE, login to the SysAdmin group, switch to
+the root user, and type
+
+  [ !create_dir (master_disk)>usr   --if needed ]
+  [ !create_dir (master_disk)>usr>local   --if needed ]
+    !gmake install
+
+This installs PCRE and its man pages into /usr/local. You can add
+(master_disk)>usr>local>bin to your command search paths, or if you are in
+BASH, add /usr/local/bin to the PATH environment variable.
+
+4. Restrictions
+
+This port requires readline library optionally. However during the build I
+faced some yet unexplored errors while linking with readline. As it was an
+optional component I chose to disable it.
+
+5. Known Problems
+
+I ran the test suite, but you will have to be your own judge of whether this
+command, and this port, suits your purposes. If you find any problems that
+appear to be related to the port itself, please let me know. Please see the
+build.log file in the root of the package also.
+
+
+BUILDING PCRE ON NATIVE Z/OS AND Z/VM
+
+z/OS and z/VM are operating systems for mainframe computers, produced by IBM.
+The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and
+applications can be supported through UNIX System Services, and in such an
+environment PCRE can be built in the same way as in other systems. However, in
+native z/OS (without UNIX System Services) and in z/VM, special ports are
+required. For details, please see this web site:
+
+  http://www.zaconsultants.net
+
+There is also a mirror here:
+
+  http://www.vsoft-software.com/downloads.html
+
+==========================
+Last Updated: 28 April 2013


Added: code/trunk/doc/html/README.txt
===================================================================
--- code/trunk/doc/html/README.txt                            (rev 0)
+++ code/trunk/doc/html/README.txt    2013-05-14 14:26:37 UTC (rev 1332)
@@ -0,0 +1,974 @@
+README file for PCRE (Perl-compatible regular expression library)
+-----------------------------------------------------------------
+
+The latest release of PCRE is always available in three alternative formats
+from:
+
+  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.bz2
+  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.zip
+
+There is a mailing list for discussion about the development of PCRE at
+
+  pcre-dev@???
+
+Please read the NEWS file if you are upgrading from a previous release.
+The contents of this README file are:
+
+  The PCRE APIs
+  Documentation for PCRE
+  Contributions by users of PCRE
+  Building PCRE on non-Unix-like systems
+  Building PCRE without using autotools
+  Building PCRE using autotools
+  Retrieving configuration information
+  Shared libraries
+  Cross-compiling using autotools
+  Using HP's ANSI C++ compiler (aCC)
+  Compiling in Tru64 using native compilers
+  Using Sun's compilers for Solaris
+  Using PCRE from MySQL
+  Making new tarballs
+  Testing PCRE
+  Character tables
+  File manifest
+
+
+The PCRE APIs
+-------------
+
+PCRE is written in C, and it has its own API. There are three sets of
+functions, one for the 8-bit library, which processes strings of bytes, one for
+the 16-bit library, which processes strings of 16-bit values, and one for the
+32-bit library, which processes strings of 32-bit values. The distribution also
+includes a set of C++ wrapper functions (see the pcrecpp man page for details),
+courtesy of Google Inc., which can be used to call the 8-bit PCRE library from
+C++.
+
+In addition, there is a set of C wrapper functions (again, just for the 8-bit
+library) that are based on the POSIX regular expression API (see the pcreposix
+man page). These end up in the library called libpcreposix. Note that this just
+provides a POSIX calling interface to PCRE; the regular expressions themselves
+still follow Perl syntax and semantics. The POSIX API is restricted, and does
+not give full access to all of PCRE's facilities.
+
+The header file for the POSIX-style functions is called pcreposix.h. The
+official POSIX name is regex.h, but I did not want to risk possible problems
+with existing files of that name by distributing it that way. To use PCRE with
+an existing program that uses the POSIX API, pcreposix.h will have to be
+renamed or pointed at by a link.
+
+If you are using the POSIX interface to PCRE and there is already a POSIX regex
+library installed on your system, as well as worrying about the regex.h header
+file (as mentioned above), you must also take care when linking programs to
+ensure that they link with PCRE's libpcreposix library. Otherwise they may pick
+up the POSIX functions of the same name from the other library.
+
+One way of avoiding this confusion is to compile PCRE with the addition of
+-Dregcomp=PCREregcomp (and similarly for the other POSIX functions) to the
+compiler flags (CFLAGS if you are using "configure" -- see below). This has the
+effect of renaming the functions so that the names no longer clash. Of course,
+you have to do the same thing for your applications, or write them using the
+new names.
+
+
+Documentation for PCRE
+----------------------
+
+If you install PCRE in the normal way on a Unix-like system, you will end up
+with a set of man pages whose names all start with "pcre". The one that is just
+called "pcre" lists all the others. In addition to these man pages, the PCRE
+documentation is supplied in two other forms:
+
+  1. There are files called doc/pcre.txt, doc/pcregrep.txt, and
+     doc/pcretest.txt in the source distribution. The first of these is a
+     concatenation of the text forms of all the section 3 man pages except
+     those that summarize individual functions. The other two are the text
+     forms of the section 1 man pages for the pcregrep and pcretest commands.
+     These text forms are provided for ease of scanning with text editors or
+     similar tools. They are installed in <prefix>/share/doc/pcre, where
+     <prefix> is the installation prefix (defaulting to /usr/local).
+
+  2. A set of files containing all the documentation in HTML form, hyperlinked
+     in various ways, and rooted in a file called index.html, is distributed in
+     doc/html and installed in <prefix>/share/doc/pcre/html.
+
+Users of PCRE have contributed files containing the documentation for various
+releases in CHM format. These can be found in the Contrib directory of the FTP
+site (see next section).
+
+
+Contributions by users of PCRE
+------------------------------
+
+You can find contributions from PCRE users in the directory
+
+  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Contrib
+
+There is a README file giving brief descriptions of what they are. Some are
+complete in themselves; others are pointers to URLs containing relevant files.
+Some of this material is likely to be well out-of-date. Several of the earlier
+contributions provided support for compiling PCRE on various flavours of
+Windows (I myself do not use Windows). Nowadays there is more Windows support
+in the standard distribution, so these contibutions have been archived.
+
+
+Building PCRE on non-Unix-like systems
+--------------------------------------
+
+For a non-Unix-like system, please read the comments in the file
+NON-AUTOTOOLS-BUILD, though if your system supports the use of "configure" and
+"make" you may be able to build PCRE using autotools in the same way as for
+many Unix-like systems.
+
+PCRE can also be configured using the GUI facility provided by CMake's
+cmake-gui command. This creates Makefiles, solution files, etc. The file
+NON-AUTOTOOLS-BUILD has information about CMake.
+
+PCRE has been compiled on many different operating systems. It should be
+straightforward to build PCRE on any system that has a Standard C compiler and
+library, because it uses only Standard C functions.
+
+
+Building PCRE without using autotools
+-------------------------------------
+
+The use of autotools (in particular, libtool) is problematic in some
+environments, even some that are Unix or Unix-like. See the NON-AUTOTOOLS-BUILD
+file for ways of building PCRE without using autotools.
+
+
+Building PCRE using autotools
+-----------------------------
+
+If you are using HP's ANSI C++ compiler (aCC), please see the special note
+in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.
+
+The following instructions assume the use of the widely used "configure; make;
+make install" (autotools) process.
+
+To build PCRE on system that supports autotools, first run the "configure"
+command from the PCRE distribution directory, with your current directory set
+to the directory where you want the files to be created. This command is a
+standard GNU "autoconf" configuration script, for which generic instructions
+are supplied in the file INSTALL.
+
+Most commonly, people build PCRE within its own distribution directory, and in
+this case, on many systems, just running "./configure" is sufficient. However,
+the usual methods of changing standard defaults are available. For example:
+
+CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local
+
+This command specifies that the C compiler should be run with the flags '-O2
+-Wall' instead of the default, and that "make install" should install PCRE
+under /opt/local instead of the default /usr/local.
+
+If you want to build in a different directory, just run "configure" with that
+directory as current. For example, suppose you have unpacked the PCRE source
+into /source/pcre/pcre-xxx, but you want to build it in /build/pcre/pcre-xxx:
+
+cd /build/pcre/pcre-xxx
+/source/pcre/pcre-xxx/configure
+
+PCRE is written in C and is normally compiled as a C library. However, it is
+possible to build it as a C++ library, though the provided building apparatus
+does not have any features to support this.
+
+There are some optional features that can be included or omitted from the PCRE
+library. They are also documented in the pcrebuild man page.
+
+. By default, both shared and static libraries are built. You can change this
+  by adding one of these options to the "configure" command:
+
+  --disable-shared
+  --disable-static
+
+  (See also "Shared libraries on Unix-like systems" below.)
+
+. By default, only the 8-bit library is built. If you add --enable-pcre16 to
+  the "configure" command, the 16-bit library is also built. If you add
+  --enable-pcre32 to the "configure" command, the 32-bit library is also built.
+  If you want only the 16-bit or 32-bit library, use --disable-pcre8 to disable
+  building the 8-bit library.
+
+. If you are building the 8-bit library and want to suppress the building of
+  the C++ wrapper library, you can add --disable-cpp to the "configure"
+  command. Otherwise, when "configure" is run without --disable-pcre8, it will
+  try to find a C++ compiler and C++ header files, and if it succeeds, it will
+  try to build the C++ wrapper.
+
+. If you want to include support for just-in-time compiling, which can give
+  large performance improvements on certain platforms, add --enable-jit to the
+  "configure" command. This support is available only for certain hardware
+  architectures. If you try to enable it on an unsupported architecture, there
+  will be a compile time error.
+
+. When JIT support is enabled, pcregrep automatically makes use of it, unless
+  you add --disable-pcregrep-jit to the "configure" command.
+
+. If you want to make use of the support for UTF-8 Unicode character strings in
+  the 8-bit library, or UTF-16 Unicode character strings in the 16-bit library,
+  or UTF-32 Unicode character strings in the 32-bit library, you must add
+  --enable-utf to the "configure" command. Without it, the code for handling
+  UTF-8, UTF-16 and UTF-8 is not included in the relevant library. Even
+  when --enable-utf is included, the use of a UTF encoding still has to be
+  enabled by an option at run time. When PCRE is compiled with this option, its
+  input can only either be ASCII or UTF-8/16/32, even when running on EBCDIC
+  platforms. It is not possible to use both --enable-utf and --enable-ebcdic at
+  the same time.
+
+. There are no separate options for enabling UTF-8, UTF-16 and UTF-32
+  independently because that would allow ridiculous settings such as requesting
+  UTF-16 support while building only the 8-bit library. However, the option
+  --enable-utf8 is retained for backwards compatibility with earlier releases
+  that did not support 16-bit or 32-bit character strings. It is synonymous with
+  --enable-utf. It is not possible to configure one library with UTF support
+  and the other without in the same configuration.
+
+. If, in addition to support for UTF-8/16/32 character strings, you want to
+  include support for the \P, \p, and \X sequences that recognize Unicode
+  character properties, you must add --enable-unicode-properties to the
+  "configure" command. This adds about 30K to the size of the library (in the
+  form of a property table); only the basic two-letter properties such as Lu
+  are supported.
+
+. You can build PCRE to recognize either CR or LF or the sequence CRLF or any
+  of the preceding, or any of the Unicode newline sequences as indicating the
+  end of a line. Whatever you specify at build time is the default; the caller
+  of PCRE can change the selection at run time. The default newline indicator
+  is a single LF character (the Unix standard). You can specify the default
+  newline indicator by adding --enable-newline-is-cr or --enable-newline-is-lf
+  or --enable-newline-is-crlf or --enable-newline-is-anycrlf or
+  --enable-newline-is-any to the "configure" command, respectively.
+
+  If you specify --enable-newline-is-cr or --enable-newline-is-crlf, some of
+  the standard tests will fail, because the lines in the test files end with
+  LF. Even if the files are edited to change the line endings, there are likely
+  to be some failures. With --enable-newline-is-anycrlf or
+  --enable-newline-is-any, many tests should succeed, but there may be some
+  failures.
+
+. By default, the sequence \R in a pattern matches any Unicode line ending
+  sequence. This is independent of the option specifying what PCRE considers to
+  be the end of a line (see above). However, the caller of PCRE can restrict \R
+  to match only CR, LF, or CRLF. You can make this the default by adding
+  --enable-bsr-anycrlf to the "configure" command (bsr = "backslash R").
+
+. When called via the POSIX interface, PCRE uses malloc() to get additional
+  storage for processing capturing parentheses if there are more than 10 of
+  them in a pattern. You can increase this threshold by setting, for example,
+
+  --with-posix-malloc-threshold=20
+
+  on the "configure" command.
+
+. PCRE has a counter that can be set to limit the amount of resources it uses.
+  If the limit is exceeded during a match, the match fails. The default is ten
+  million. You can change the default by setting, for example,
+
+  --with-match-limit=500000
+
+  on the "configure" command. This is just the default; individual calls to
+  pcre_exec() can supply their own value. There is more discussion on the
+  pcreapi man page.
+
+. There is a separate counter that limits the depth of recursive function calls
+  during a matching process. This also has a default of ten million, which is
+  essentially "unlimited". You can change the default by setting, for example,
+
+  --with-match-limit-recursion=500000
+
+  Recursive function calls use up the runtime stack; running out of stack can
+  cause programs to crash in strange ways. There is a discussion about stack
+  sizes in the pcrestack man page.
+
+. The default maximum compiled pattern size is around 64K. You can increase
+  this by adding --with-link-size=3 to the "configure" command. In the 8-bit
+  library, PCRE then uses three bytes instead of two for offsets to different
+  parts of the compiled pattern. In the 16-bit library, --with-link-size=3 is
+  the same as --with-link-size=4, which (in both libraries) uses four-byte
+  offsets. Increasing the internal link size reduces performance. In the 32-bit
+  library, the only supported link size is 4.
+
+. You can build PCRE so that its internal match() function that is called from
+  pcre_exec() does not call itself recursively. Instead, it uses memory blocks
+  obtained from the heap via the special functions pcre_stack_malloc() and
+  pcre_stack_free() to save data that would otherwise be saved on the stack. To
+  build PCRE like this, use
+
+  --disable-stack-for-recursion
+
+  on the "configure" command. PCRE runs more slowly in this mode, but it may be
+  necessary in environments with limited stack sizes. This applies only to the
+  normal execution of the pcre_exec() function; if JIT support is being
+  successfully used, it is not relevant. Equally, it does not apply to
+  pcre_dfa_exec(), which does not use deeply nested recursion. There is a
+  discussion about stack sizes in the pcrestack man page.
+
+. For speed, PCRE uses four tables for manipulating and identifying characters
+  whose code point values are less than 256. By default, it uses a set of
+  tables for ASCII encoding that is part of the distribution. If you specify
+
+  --enable-rebuild-chartables
+
+  a program called dftables is compiled and run in the default C locale when
+  you obey "make". It builds a source file called pcre_chartables.c. If you do
+  not specify this option, pcre_chartables.c is created as a copy of
+  pcre_chartables.c.dist. See "Character tables" below for further information.
+
+. It is possible to compile PCRE for use on systems that use EBCDIC as their
+  character code (as opposed to ASCII/Unicode) by specifying
+
+  --enable-ebcdic
+
+  This automatically implies --enable-rebuild-chartables (see above). However,
+  when PCRE is built this way, it always operates in EBCDIC. It cannot support
+  both EBCDIC and UTF-8/16/32. There is a second option, --enable-ebcdic-nl25,
+  which specifies that the code value for the EBCDIC NL character is 0x25
+  instead of the default 0x15.
+
+. In environments where valgrind is installed, if you specify
+
+  --enable-valgrind
+
+  PCRE will use valgrind annotations to mark certain memory regions as
+  unaddressable. This allows it to detect invalid memory accesses, and is
+  mostly useful for debugging PCRE itself.
+
+. In environments where the gcc compiler is used and lcov version 1.6 or above
+  is installed, if you specify
+
+  --enable-coverage
+
+  the build process implements a code coverage report for the test suite. The
+  report is generated by running "make coverage". If ccache is installed on
+  your system, it must be disabled when building PCRE for coverage reporting.
+  You can do this by setting the environment variable CCACHE_DISABLE=1 before
+  running "make" to build PCRE.
+
+. The pcregrep program currently supports only 8-bit data files, and so
+  requires the 8-bit PCRE library. It is possible to compile pcregrep to use
+  libz and/or libbz2, in order to read .gz and .bz2 files (respectively), by
+  specifying one or both of
+
+  --enable-pcregrep-libz
+  --enable-pcregrep-libbz2
+
+  Of course, the relevant libraries must be installed on your system.
+
+. The default size of internal buffer used by pcregrep can be set by, for
+  example:
+
+  --with-pcregrep-bufsize=50K
+
+  The default value is 20K.
+
+. It is possible to compile pcretest so that it links with the libreadline
+  or libedit libraries, by specifying, respectively,
+
+  --enable-pcretest-libreadline or --enable-pcretest-libedit
+
+  If this is done, when pcretest's input is from a terminal, it reads it using
+  the readline() function. This provides line-editing and history facilities.
+  Note that libreadline is GPL-licenced, so if you distribute a binary of
+  pcretest linked in this way, there may be licensing issues. These can be
+  avoided by linking with libedit (which has a BSD licence) instead.
+
+  Enabling libreadline causes the -lreadline option to be added to the pcretest
+  build. In many operating environments with a sytem-installed readline
+  library this is sufficient. However, in some environments (e.g. if an
+  unmodified distribution version of readline is in use), it may be necessary
+  to specify something like LIBS="-lncurses" as well. This is because, to quote
+  the readline INSTALL, "Readline uses the termcap functions, but does not link
+  with the termcap or curses library itself, allowing applications which link
+  with readline the to choose an appropriate library." If you get error
+  messages about missing functions tgetstr, tgetent, tputs, tgetflag, or tgoto,
+  this is the problem, and linking with the ncurses library should fix it.
+
+The "configure" script builds the following files for the basic C library:
+
+. Makefile             the makefile that builds the library
+. config.h             build-time configuration options for the library
+. pcre.h               the public PCRE header file
+. pcre-config          script that shows the building settings such as CFLAGS
+                         that were set for "configure"
+. libpcre.pc         ) data for the pkg-config command
+. libpcre16.pc       )
+. libpcre32.pc       )
+. libpcreposix.pc    )
+. libtool              script that builds shared and/or static libraries
+
+Versions of config.h and pcre.h are distributed in the PCRE tarballs under the
+names config.h.generic and pcre.h.generic. These are provided for those who
+have to built PCRE without using "configure" or CMake. If you use "configure"
+or CMake, the .generic versions are not used.
+
+When building the 8-bit library, if a C++ compiler is found, the following
+files are also built:
+
+. libpcrecpp.pc        data for the pkg-config command
+. pcrecpparg.h         header file for calling PCRE via the C++ wrapper
+. pcre_stringpiece.h   header for the C++ "stringpiece" functions
+
+The "configure" script also creates config.status, which is an executable
+script that can be run to recreate the configuration, and config.log, which
+contains compiler output from tests that "configure" runs.
+
+Once "configure" has run, you can run "make". This builds the the libraries
+libpcre, libpcre16 and/or libpcre32, and a test program called pcretest. If you
+enabled JIT support with --enable-jit, a test program called pcre_jit_test is
+built as well.
+
+If the 8-bit library is built, libpcreposix and the pcregrep command are also
+built, and if a C++ compiler was found on your system, and you did not disable
+it with --disable-cpp, "make" builds the C++ wrapper library, which is called
+libpcrecpp, as well as some test programs called pcrecpp_unittest,
+pcre_scanner_unittest, and pcre_stringpiece_unittest.
+
+The command "make check" runs all the appropriate tests. Details of the PCRE
+tests are given below in a separate section of this document.
+
+You can use "make install" to install PCRE into live directories on your
+system. The following are installed (file names are all relative to the
+<prefix> that is set when "configure" is run):
+
+  Commands (bin):
+    pcretest
+    pcregrep (if 8-bit support is enabled)
+    pcre-config
+
+  Libraries (lib):
+    libpcre16     (if 16-bit support is enabled)
+    libpcre32     (if 32-bit support is enabled)
+    libpcre       (if 8-bit support is enabled)
+    libpcreposix  (if 8-bit support is enabled)
+    libpcrecpp    (if 8-bit and C++ support is enabled)
+
+  Configuration information (lib/pkgconfig):
+    libpcre16.pc
+    libpcre32.pc
+    libpcre.pc
+    libpcreposix.pc
+    libpcrecpp.pc (if C++ support is enabled)
+
+  Header files (include):
+    pcre.h
+    pcreposix.h
+    pcre_scanner.h      )
+    pcre_stringpiece.h  ) if C++ support is enabled
+    pcrecpp.h           )
+    pcrecpparg.h        )
+
+  Man pages (share/man/man{1,3}):
+    pcregrep.1
+    pcretest.1
+    pcre-config.1
+    pcre.3
+    pcre*.3 (lots more pages, all starting "pcre")
+
+  HTML documentation (share/doc/pcre/html):
+    index.html
+    *.html (lots more pages, hyperlinked from index.html)
+
+  Text file documentation (share/doc/pcre):
+    AUTHORS
+    COPYING
+    ChangeLog
+    LICENCE
+    NEWS
+    README
+    pcre.txt         (a concatenation of the man(3) pages)
+    pcretest.txt     the pcretest man page
+    pcregrep.txt     the pcregrep man page
+    pcre-config.txt  the pcre-config man page
+
+If you want to remove PCRE from your system, you can run "make uninstall".
+This removes all the files that "make install" installed. However, it does not
+remove any directories, because these are often shared with other programs.
+
+
+Retrieving configuration information
+------------------------------------
+
+Running "make install" installs the command pcre-config, which can be used to
+recall information about the PCRE configuration and installation. For example:
+
+  pcre-config --version
+
+prints the version number, and
+
+  pcre-config --libs
+
+outputs information about where the library is installed. This command can be
+included in makefiles for programs that use PCRE, saving the programmer from
+having to remember too many details.
+
+The pkg-config command is another system for saving and retrieving information
+about installed libraries. Instead of separate commands for each library, a
+single command is used. For example:
+
+  pkg-config --cflags pcre
+
+The data is held in *.pc files that are installed in a directory called
+<prefix>/lib/pkgconfig.
+
+
+Shared libraries
+----------------
+
+The default distribution builds PCRE as shared libraries and static libraries,
+as long as the operating system supports shared libraries. Shared library
+support relies on the "libtool" script which is built as part of the
+"configure" process.
+
+The libtool script is used to compile and link both shared and static
+libraries. They are placed in a subdirectory called .libs when they are newly
+built. The programs pcretest and pcregrep are built to use these uninstalled
+libraries (by means of wrapper scripts in the case of shared libraries). When
+you use "make install" to install shared libraries, pcregrep and pcretest are
+automatically re-built to use the newly installed shared libraries before being
+installed themselves. However, the versions left in the build directory still
+use the uninstalled libraries.
+
+To build PCRE using static libraries only you must use --disable-shared when
+configuring it. For example:
+
+./configure --prefix=/usr/gnu --disable-shared
+
+Then run "make" in the usual way. Similarly, you can use --disable-static to
+build only shared libraries.
+
+
+Cross-compiling using autotools
+-------------------------------
+
+You can specify CC and CFLAGS in the normal way to the "configure" command, in
+order to cross-compile PCRE for some other host. However, you should NOT
+specify --enable-rebuild-chartables, because if you do, the dftables.c source
+file is compiled and run on the local host, in order to generate the inbuilt
+character tables (the pcre_chartables.c file). This will probably not work,
+because dftables.c needs to be compiled with the local compiler, not the cross
+compiler.
+
+When --enable-rebuild-chartables is not specified, pcre_chartables.c is created
+by making a copy of pcre_chartables.c.dist, which is a default set of tables
+that assumes ASCII code. Cross-compiling with the default tables should not be
+a problem.
+
+If you need to modify the character tables when cross-compiling, you should
+move pcre_chartables.c.dist out of the way, then compile dftables.c by hand and
+run it on the local host to make a new version of pcre_chartables.c.dist.
+Then when you cross-compile PCRE this new version of the tables will be used.
+
+
+Using HP's ANSI C++ compiler (aCC)
+----------------------------------
+
+Unless C++ support is disabled by specifying the "--disable-cpp" option of the
+"configure" script, you must include the "-AA" option in the CXXFLAGS
+environment variable in order for the C++ components to compile correctly.
+
+Also, note that the aCC compiler on PA-RISC platforms may have a defect whereby
+needed libraries fail to get included when specifying the "-AA" compiler
+option. If you experience unresolved symbols when linking the C++ programs,
+use the workaround of specifying the following environment variable prior to
+running the "configure" script:
+
+  CXXLDFLAGS="-lstd_v2 -lCsup_v2"
+
+
+Compiling in Tru64 using native compilers
+-----------------------------------------
+
+The following error may occur when compiling with native compilers in the Tru64
+operating system:
+
+  CXX    libpcrecpp_la-pcrecpp.lo
+cxx: Error: /usr/lib/cmplrs/cxx/V7.1-006/include/cxx/iosfwd, line 58: #error
+          directive: "cannot include iosfwd -- define __USE_STD_IOSTREAM to
+          override default - see section 7.1.2 of the C++ Using Guide"
+#error "cannot include iosfwd -- define __USE_STD_IOSTREAM to override default
+- see section 7.1.2 of the C++ Using Guide"
+
+This may be followed by other errors, complaining that 'namespace "std" has no
+member'. The solution to this is to add the line
+
+#define __USE_STD_IOSTREAM 1
+
+to the config.h file.
+
+
+Using Sun's compilers for Solaris
+---------------------------------
+
+A user reports that the following configurations work on Solaris 9 sparcv9 and
+Solaris 9 x86 (32-bit):
+
+  Solaris 9 sparcv9: ./configure --disable-cpp CC=/bin/cc CFLAGS="-m64 -g"
+  Solaris 9 x86:     ./configure --disable-cpp CC=/bin/cc CFLAGS="-g"
+
+
+Using PCRE from MySQL
+---------------------
+
+On systems where both PCRE and MySQL are installed, it is possible to make use
+of PCRE from within MySQL, as an alternative to the built-in pattern matching.
+There is a web page that tells you how to do this:
+
+  http://www.mysqludf.org/lib_mysqludf_preg/index.php
+
+
+Making new tarballs
+-------------------
+
+The command "make dist" creates three PCRE tarballs, in tar.gz, tar.bz2, and
+zip formats. The command "make distcheck" does the same, but then does a trial
+build of the new distribution to ensure that it works.
+
+If you have modified any of the man page sources in the doc directory, you
+should first run the PrepareRelease script before making a distribution. This
+script creates the .txt and HTML forms of the documentation from the man pages.
+
+
+Testing PCRE
+------------
+
+To test the basic PCRE library on a Unix-like system, run the RunTest script.
+There is another script called RunGrepTest that tests the options of the
+pcregrep command. If the C++ wrapper library is built, three test programs
+called pcrecpp_unittest, pcre_scanner_unittest, and pcre_stringpiece_unittest
+are also built. When JIT support is enabled, another test program called
+pcre_jit_test is built.
+
+Both the scripts and all the program tests are run if you obey "make check" or
+"make test". For other environments, see the instructions in
+NON-AUTOTOOLS-BUILD.
+
+The RunTest script runs the pcretest test program (which is documented in its
+own man page) on each of the relevant testinput files in the testdata
+directory, and compares the output with the contents of the corresponding
+testoutput files. RunTest uses a file called testtry to hold the main output
+from pcretest. Other files whose names begin with "test" are used as working
+files in some tests.
+
+Some tests are relevant only when certain build-time options were selected. For
+example, the tests for UTF-8/16/32 support are run only if --enable-utf was
+used. RunTest outputs a comment when it skips a test.
+
+Many of the tests that are not skipped are run up to three times. The second
+run forces pcre_study() to be called for all patterns except for a few in some
+tests that are marked "never study" (see the pcretest program for how this is
+done). If JIT support is available, the non-DFA tests are run a third time,
+this time with a forced pcre_study() with the PCRE_STUDY_JIT_COMPILE option.
+This testing can be suppressed by putting "nojit" on the RunTest command line.
+
+The entire set of tests is run once for each of the 8-bit, 16-bit and 32-bit
+libraries that are enabled. If you want to run just one set of tests, call
+RunTest with either the -8, -16 or -32 option.
+
+If valgrind is installed, you can run the tests under it by putting "valgrind"
+on the RunTest command line. To run pcretest on just one or more specific test
+files, give their numbers as arguments to RunTest, for example:
+
+  RunTest 2 7 11
+
+You can also specify ranges of tests such as 3-6 or 3- (meaning 3 to the
+end), or a number preceded by ~ to exclude a test. For example:
+
+  Runtest 3-15 ~10
+
+This runs tests 3 to 15, excluding test 10, and just ~13 runs all the tests
+except test 13. Whatever order the arguments are in, the tests are always run
+in numerical order.
+
+You can also call RunTest with the single argument "list" to cause it to output
+a list of tests.
+
+The first test file can be fed directly into the perltest.pl script to check
+that Perl gives the same results. The only difference you should see is in the
+first few lines, where the Perl version is given instead of the PCRE version.
+
+The second set of tests check pcre_fullinfo(), pcre_study(),
+pcre_copy_substring(), pcre_get_substring(), pcre_get_substring_list(), error
+detection, and run-time flags that are specific to PCRE, as well as the POSIX
+wrapper API. It also uses the debugging flags to check some of the internals of
+pcre_compile().
+
+If you build PCRE with a locale setting that is not the standard C locale, the
+character tables may be different (see next paragraph). In some cases, this may
+cause failures in the second set of tests. For example, in a locale where the
+isprint() function yields TRUE for characters in the range 128-255, the use of
+[:isascii:] inside a character class defines a different set of characters, and
+this shows up in this test as a difference in the compiled code, which is being
+listed for checking. Where the comparison test output contains [\x00-\x7f] the
+test will contain [\x00-\xff], and similarly in some other cases. This is not a
+bug in PCRE.
+
+The third set of tests checks pcre_maketables(), the facility for building a
+set of character tables for a specific locale and using them instead of the
+default tables. The tests make use of the "fr_FR" (French) locale. Before
+running the test, the script checks for the presence of this locale by running
+the "locale" command. If that command fails, or if it doesn't include "fr_FR"
+in the list of available locales, the third test cannot be run, and a comment
+is output to say why. If running this test produces instances of the error
+
+  ** Failed to set locale "fr_FR"
+
+in the comparison output, it means that locale is not available on your system,
+despite being listed by "locale". This does not mean that PCRE is broken.
+
+[If you are trying to run this test on Windows, you may be able to get it to
+work by changing "fr_FR" to "french" everywhere it occurs. Alternatively, use
+RunTest.bat. The version of RunTest.bat included with PCRE 7.4 and above uses
+Windows versions of test 2. More info on using RunTest.bat is included in the
+document entitled NON-UNIX-USE.]
+
+The fourth and fifth tests check the UTF-8/16/32 support and error handling and
+internal UTF features of PCRE that are not relevant to Perl, respectively. The
+sixth and seventh tests do the same for Unicode character properties support.
+
+The eighth, ninth, and tenth tests check the pcre_dfa_exec() alternative
+matching function, in non-UTF-8/16/32 mode, UTF-8/16/32 mode, and UTF-8/16/32
+mode with Unicode property support, respectively.
+
+The eleventh test checks some internal offsets and code size features; it is
+run only when the default "link size" of 2 is set (in other cases the sizes
+change) and when Unicode property support is enabled.
+
+The twelfth test is run only when JIT support is available, and the thirteenth
+test is run only when JIT support is not available. They test some JIT-specific
+features such as information output from pcretest about JIT compilation.
+
+The fourteenth, fifteenth, and sixteenth tests are run only in 8-bit mode, and
+the seventeenth, eighteenth, and nineteenth tests are run only in 16/32-bit
+mode. These are tests that generate different output in the two modes. They are
+for general cases, UTF-8/16/32 support, and Unicode property support,
+respectively.
+
+The twentieth test is run only in 16/32-bit mode. It tests some specific
+16/32-bit features of the DFA matching engine.
+
+The twenty-first and twenty-second tests are run only in 16/32-bit mode, when
+the link size is set to 2 for the 16-bit library. They test reloading
+pre-compiled patterns.
+
+The twenty-third and twenty-fourth tests are run only in 16-bit mode. They are
+for general cases, and UTF-16 support, respectively.
+
+The twenty-fifth and twenty-sixth tests are run only in 32-bit mode. They are
+for general cases, and UTF-32 support, respectively.
+
+
+Character tables
+----------------
+
+For speed, PCRE uses four tables for manipulating and identifying characters
+whose code point values are less than 256. The final argument of the
+pcre_compile() function is a pointer to a block of memory containing the
+concatenated tables. A call to pcre_maketables() can be used to generate a set
+of tables in the current locale. If the final argument for pcre_compile() is
+passed as NULL, a set of default tables that is built into the binary is used.
+
+The source file called pcre_chartables.c contains the default set of tables. By
+default, this is created as a copy of pcre_chartables.c.dist, which contains
+tables for ASCII coding. However, if --enable-rebuild-chartables is specified
+for ./configure, a different version of pcre_chartables.c is built by the
+program dftables (compiled from dftables.c), which uses the ANSI C character
+handling functions such as isalnum(), isalpha(), isupper(), islower(), etc. to
+build the table sources. This means that the default C locale which is set for
+your system will control the contents of these default tables. You can change
+the default tables by editing pcre_chartables.c and then re-building PCRE. If
+you do this, you should take care to ensure that the file does not get
+automatically re-generated. The best way to do this is to move
+pcre_chartables.c.dist out of the way and replace it with your customized
+tables.
+
+When the dftables program is run as a result of --enable-rebuild-chartables,
+it uses the default C locale that is set on your system. It does not pay
+attention to the LC_xxx environment variables. In other words, it uses the
+system's default locale rather than whatever the compiling user happens to have
+set. If you really do want to build a source set of character tables in a
+locale that is specified by the LC_xxx variables, you can run the dftables
+program by hand with the -L option. For example:
+
+  ./dftables -L pcre_chartables.c.special
+
+The first two 256-byte tables provide lower casing and case flipping functions,
+respectively. The next table consists of three 32-byte bit maps which identify
+digits, "word" characters, and white space, respectively. These are used when
+building 32-byte bit maps that represent character classes for code points less
+than 256.
+
+The final 256-byte table has bits indicating various character types, as
+follows:
+
+    1   white space character
+    2   letter
+    4   decimal digit
+    8   hexadecimal digit
+   16   alphanumeric or '_'
+  128   regular expression metacharacter or binary zero
+
+You should not alter the set of characters that contain the 128 bit, as that
+will cause PCRE to malfunction.
+
+
+File manifest
+-------------
+
+The distribution should contain the files listed below. Where a file name is
+given as pcre[16|32]_xxx it means that there are three files, one with the name
+pcre_xxx, one with the name pcre16_xx, and a third with the name pcre32_xxx.
+
+(A) Source files of the PCRE library functions and their headers:
+
+  dftables.c              auxiliary program for building pcre_chartables.c
+                          when --enable-rebuild-chartables is specified
+
+  pcre_chartables.c.dist  a default set of character tables that assume ASCII
+                          coding; used, unless --enable-rebuild-chartables is
+                          specified, by copying to pcre[16]_chartables.c
+
+  pcreposix.c                )
+  pcre[16|32]_byte_order.c   )
+  pcre[16|32]_compile.c      )
+  pcre[16|32]_config.c       )
+  pcre[16|32]_dfa_exec.c     )
+  pcre[16|32]_exec.c         )
+  pcre[16|32]_fullinfo.c     )
+  pcre[16|32]_get.c          ) sources for the functions in the library,
+  pcre[16|32]_globals.c      )   and some internal functions that they use
+  pcre[16|32]_jit_compile.c  )
+  pcre[16|32]_maketables.c   )
+  pcre[16|32]_newline.c      )
+  pcre[16|32]_refcount.c     )
+  pcre[16|32]_string_utils.c )
+  pcre[16|32]_study.c        )
+  pcre[16|32]_tables.c       )
+  pcre[16|32]_ucd.c          )
+  pcre[16|32]_version.c      )
+  pcre[16|32]_xclass.c       )
+  pcre_ord2utf8.c            )
+  pcre_valid_utf8.c          )
+  pcre16_ord2utf16.c         )
+  pcre16_utf16_utils.c       )
+  pcre16_valid_utf16.c       )
+  pcre32_utf32_utils.c       )
+  pcre32_valid_utf32.c       )
+
+  pcre[16|32]_printint.c     ) debugging function that is used by pcretest,
+                             )   and can also be #included in pcre_compile()
+
+  pcre.h.in               template for pcre.h when built by "configure"
+  pcreposix.h             header for the external POSIX wrapper API
+  pcre_internal.h         header for internal use
+  sljit/*                 16 files that make up the JIT compiler
+  ucp.h                   header for Unicode property handling
+
+  config.h.in             template for config.h, which is built by "configure"
+
+  pcrecpp.h               public header file for the C++ wrapper
+  pcrecpparg.h.in         template for another C++ header file
+  pcre_scanner.h          public header file for C++ scanner functions
+  pcrecpp.cc              )
+  pcre_scanner.cc         ) source for the C++ wrapper library
+
+  pcre_stringpiece.h.in   template for pcre_stringpiece.h, the header for the
+                            C++ stringpiece functions
+  pcre_stringpiece.cc     source for the C++ stringpiece functions
+
+(B) Source files for programs that use PCRE:
+
+  pcredemo.c              simple demonstration of coding calls to PCRE
+  pcregrep.c              source of a grep utility that uses PCRE
+  pcretest.c              comprehensive test program
+
+(C) Auxiliary files:
+
+  132html                 script to turn "man" pages into HTML
+  AUTHORS                 information about the author of PCRE
+  ChangeLog               log of changes to the code
+  CleanTxt                script to clean nroff output for txt man pages
+  Detrail                 script to remove trailing spaces
+  HACKING                 some notes about the internals of PCRE
+  INSTALL                 generic installation instructions
+  LICENCE                 conditions for the use of PCRE
+  COPYING                 the same, using GNU's standard name
+  Makefile.in             ) template for Unix Makefile, which is built by
+                          )   "configure"
+  Makefile.am             ) the automake input that was used to create
+                          )   Makefile.in
+  NEWS                    important changes in this release
+  NON-UNIX-USE            the previous name for NON-AUTOTOOLS-BUILD
+  NON-AUTOTOOLS-BUILD     notes on building PCRE without using autotools
+  PrepareRelease          script to make preparations for "make dist"
+  README                  this file
+  RunTest                 a Unix shell script for running tests
+  RunGrepTest             a Unix shell script for pcregrep tests
+  aclocal.m4              m4 macros (generated by "aclocal")
+  config.guess            ) files used by libtool,
+  config.sub              )   used only when building a shared library
+  configure               a configuring shell script (built by autoconf)
+  configure.ac            ) the autoconf input that was used to build
+                          )   "configure" and config.h
+  depcomp                 ) script to find program dependencies, generated by
+                          )   automake
+  doc/*.3                 man page sources for PCRE
+  doc/*.1                 man page sources for pcregrep and pcretest
+  doc/index.html.src      the base HTML page
+  doc/html/*              HTML documentation
+  doc/pcre.txt            plain text version of the man pages
+  doc/pcretest.txt        plain text documentation of test program
+  doc/perltest.txt        plain text documentation of Perl test program
+  install-sh              a shell script for installing files
+  libpcre16.pc.in         template for libpcre16.pc for pkg-config
+  libpcre32.pc.in         template for libpcre32.pc for pkg-config
+  libpcre.pc.in           template for libpcre.pc for pkg-config
+  libpcreposix.pc.in      template for libpcreposix.pc for pkg-config
+  libpcrecpp.pc.in        template for libpcrecpp.pc for pkg-config
+  ltmain.sh               file used to build a libtool script
+  missing                 ) common stub for a few missing GNU programs while
+                          )   installing, generated by automake
+  mkinstalldirs           script for making install directories
+  perltest.pl             Perl test program
+  pcre-config.in          source of script which retains PCRE information
+  pcre_jit_test.c         test program for the JIT compiler
+  pcrecpp_unittest.cc          )
+  pcre_scanner_unittest.cc     ) test programs for the C++ wrapper
+  pcre_stringpiece_unittest.cc )
+  testdata/testinput*     test data for main library tests
+  testdata/testoutput*    expected test results
+  testdata/grep*          input and output for pcregrep tests
+  testdata/*              other supporting test files
+
+(D) Auxiliary files for cmake support
+
+  cmake/COPYING-CMAKE-SCRIPTS
+  cmake/FindPackageHandleStandardArgs.cmake
+  cmake/FindEditline.cmake
+  cmake/FindReadline.cmake
+  CMakeLists.txt
+  config-cmake.h.in
+
+(E) Auxiliary files for VPASCAL
+
+  makevp.bat
+  makevp_c.txt
+  makevp_l.txt
+  pcregexp.pas
+
+(F) Auxiliary files for building PCRE "by hand"
+
+  pcre.h.generic          ) a version of the public PCRE header file
+                          )   for use in non-"configure" environments
+  config.h.generic        ) a version of config.h for use in non-"configure"
+                          )   environments
+
+(F) Miscellaneous
+
+  RunTest.bat            a script for running tests under Windows
+
+Philip Hazel
+Email local part: ph10
+Email domain: cam.ac.uk
+Last updated: 28 April 2013


Modified: code/trunk/doc/html/index.html
===================================================================
--- code/trunk/doc/html/index.html    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/doc/html/index.html    2013-05-14 14:26:37 UTC (rev 1332)
@@ -11,27 +11,29 @@
 <body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
 <h1>Perl-compatible Regular Expressions (PCRE)</h1>
 <p>
-The HTML documentation for PCRE comprises the following pages:
+The HTML documentation for PCRE consists of a number of pages that are listed
+below in alphabetical order. If you are new to PCRE, please read the first one
+first.
 </p>


 <table>
 <tr><td><a href="pcre.html">pcre</a></td>
     <td>&nbsp;&nbsp;Introductory page</td></tr>


+<tr><td><a href="pcre-config.html">pcre-config</a></td>
+    <td>&nbsp;&nbsp;Information about the installation configuration</td></tr>
+
 <tr><td><a href="pcre16.html">pcre16</a></td>
     <td>&nbsp;&nbsp;Discussion of the 16-bit PCRE library</td></tr>


 <tr><td><a href="pcre32.html">pcre32</a></td>
     <td>&nbsp;&nbsp;Discussion of the 32-bit PCRE library</td></tr>


-<tr><td><a href="pcre-config.html">pcre-config</a></td>
-    <td>&nbsp;&nbsp;Information about the installation configuration</td></tr>
-
 <tr><td><a href="pcreapi.html">pcreapi</a></td>
     <td>&nbsp;&nbsp;PCRE's native API</td></tr>


 <tr><td><a href="pcrebuild.html">pcrebuild</a></td>
-    <td>&nbsp;&nbsp;Options for building PCRE</td></tr>
+    <td>&nbsp;&nbsp;Building PCRE</td></tr>


 <tr><td><a href="pcrecallout.html">pcrecallout</a></td>
     <td>&nbsp;&nbsp;The <i>callout</i> facility</td></tr>
@@ -67,7 +69,7 @@
     <td>&nbsp;&nbsp;Some comments on performance</td></tr>


 <tr><td><a href="pcreposix.html">pcreposix</a></td>
-    <td>&nbsp;&nbsp;The POSIX API to the PCRE library</td></tr>
+    <td>&nbsp;&nbsp;The POSIX API to the PCRE 8-bit library</td></tr>


 <tr><td><a href="pcreprecompile.html">pcreprecompile</a></td>
     <td>&nbsp;&nbsp;How to save and re-use compiled patterns</td></tr>
@@ -118,13 +120,13 @@
     <td>&nbsp;&nbsp;Match a compiled pattern to a subject string
     (DFA algorithm; <i>not</i> Perl compatible)</td></tr>


-<tr><td><a href="pcre_free_study.html">pcre_free_study</a></td>
-    <td>&nbsp;&nbsp;Free study data</td></tr>
-
 <tr><td><a href="pcre_exec.html">pcre_exec</a></td>
     <td>&nbsp;&nbsp;Match a compiled pattern to a subject string
     (Perl compatible)</td></tr>


+<tr><td><a href="pcre_free_study.html">pcre_free_study</a></td>
+    <td>&nbsp;&nbsp;Free study data</td></tr>
+
 <tr><td><a href="pcre_free_substring.html">pcre_free_substring</a></td>
     <td>&nbsp;&nbsp;Free extracted substring</td></tr>


@@ -140,12 +142,18 @@
 <tr><td><a href="pcre_get_stringnumber.html">pcre_get_stringnumber</a></td>
     <td>&nbsp;&nbsp;Convert captured string name to number</td></tr>


+<tr><td><a href="pcre_get_stringtable_entries.html">pcre_get_stringtable_entries</a></td>
+    <td>&nbsp;&nbsp;Find table entries for given string name</td></tr>
+
 <tr><td><a href="pcre_get_substring.html">pcre_get_substring</a></td>
     <td>&nbsp;&nbsp;Extract numbered substring into new memory</td></tr>


 <tr><td><a href="pcre_get_substring_list.html">pcre_get_substring_list</a></td>
     <td>&nbsp;&nbsp;Extract all substrings into new memory</td></tr>


+<tr><td><a href="pcre_jit_exec.html">pcre_jit_exec</a></td>
+    <td>&nbsp;&nbsp;Fast path interface to JIT matching</td></tr>
+
 <tr><td><a href="pcre_jit_stack_alloc.html">pcre_jit_stack_alloc</a></td>
     <td>&nbsp;&nbsp;Create a stack for JIT matching</td></tr>



Modified: code/trunk/doc/html/pcre.html
===================================================================
--- code/trunk/doc/html/pcre.html    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/doc/html/pcre.html    2013-05-14 14:26:37 UTC (rev 1332)
@@ -38,9 +38,9 @@
 </P>
 <P>
 Starting with release 8.32 it is possible to compile a third separate PCRE
-library, which supports 32-bit character strings (including
-UTF-32 strings). The build process allows any set of the 8-, 16- and 32-bit
-libraries. The work to make this possible was done by Christian Persch.
+library that supports 32-bit character strings (including UTF-32 strings). The
+build process allows any combination of the 8-, 16- and 32-bit libraries. The
+work to make this possible was done by Christian Persch.
 </P>
 <P>
 The three libraries contain identical sets of functions, except that the names
@@ -100,8 +100,11 @@
 available. The features themselves are described in the
 <a href="pcrebuild.html"><b>pcrebuild</b></a>
 page. Documentation about building PCRE for various operating systems can be
-found in the <b>README</b> and <b>NON-AUTOTOOLS_BUILD</b> files in the source
-distribution.
+found in the 
+<a href="README.txt"><b>README</b></a>
+and 
+<a href="NON-AUTOTOOLS-BUILD.txt"><b>NON-AUTOTOOLS_BUILD</b></a>
+files in the source distribution.
 </P>
 <P>
 The libraries contains a number of undocumented internal functions and data
@@ -155,11 +158,11 @@
 of searching. The sections are as follows:
 <pre>
   pcre              this document
+  pcre-config       show PCRE installation configuration information
   pcre16            details of the 16-bit library
   pcre32            details of the 32-bit library
-  pcre-config       show PCRE installation configuration information
   pcreapi           details of PCRE's native C API
-  pcrebuild         options for building PCRE
+  pcrebuild         building PCRE
   pcrecallout       details of the callout feature
   pcrecompat        discussion of Perl compatibility
   pcrecpp           details of the C++ wrapper for the 8-bit library
@@ -198,7 +201,7 @@
 </P>
 <br><a name="SEC5" href="#TOC1">REVISION</a><br>
 <P>
-Last updated: 26 April 2013
+Last updated: 13 May 2013
 <br>
 Copyright &copy; 1997-2013 University of Cambridge.
 <br>


Modified: code/trunk/doc/html/pcrebuild.html
===================================================================
--- code/trunk/doc/html/pcrebuild.html    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/doc/html/pcrebuild.html    2013-05-14 14:26:37 UTC (rev 1332)
@@ -13,48 +13,65 @@
 man page, in case the conversion went wrong.
 <br>
 <ul>
-<li><a name="TOC1" href="#SEC1">PCRE BUILD-TIME OPTIONS</a>
-<li><a name="TOC2" href="#SEC2">BUILDING 8-BIT, 16-BIT AND 32-BIT LIBRARIES</a>
-<li><a name="TOC3" href="#SEC3">BUILDING SHARED AND STATIC LIBRARIES</a>
-<li><a name="TOC4" href="#SEC4">C++ SUPPORT</a>
-<li><a name="TOC5" href="#SEC5">UTF-8, UTF-16 AND UTF-32 SUPPORT</a>
-<li><a name="TOC6" href="#SEC6">UNICODE CHARACTER PROPERTY SUPPORT</a>
-<li><a name="TOC7" href="#SEC7">JUST-IN-TIME COMPILER SUPPORT</a>
-<li><a name="TOC8" href="#SEC8">CODE VALUE OF NEWLINE</a>
-<li><a name="TOC9" href="#SEC9">WHAT \R MATCHES</a>
-<li><a name="TOC10" href="#SEC10">POSIX MALLOC USAGE</a>
-<li><a name="TOC11" href="#SEC11">HANDLING VERY LARGE PATTERNS</a>
-<li><a name="TOC12" href="#SEC12">AVOIDING EXCESSIVE STACK USAGE</a>
-<li><a name="TOC13" href="#SEC13">LIMITING PCRE RESOURCE USAGE</a>
-<li><a name="TOC14" href="#SEC14">CREATING CHARACTER TABLES AT BUILD TIME</a>
-<li><a name="TOC15" href="#SEC15">USING EBCDIC CODE</a>
-<li><a name="TOC16" href="#SEC16">PCREGREP OPTIONS FOR COMPRESSED FILE SUPPORT</a>
-<li><a name="TOC17" href="#SEC17">PCREGREP BUFFER SIZE</a>
-<li><a name="TOC18" href="#SEC18">PCRETEST OPTION FOR LIBREADLINE SUPPORT</a>
-<li><a name="TOC19" href="#SEC19">DEBUGGING WITH VALGRIND SUPPORT</a>
-<li><a name="TOC20" href="#SEC20">CODE COVERAGE REPORTING</a>
-<li><a name="TOC21" href="#SEC21">SEE ALSO</a>
-<li><a name="TOC22" href="#SEC22">AUTHOR</a>
-<li><a name="TOC23" href="#SEC23">REVISION</a>
+<li><a name="TOC1" href="#SEC1">BUILDING PCRE</a>
+<li><a name="TOC2" href="#SEC2">PCRE BUILD-TIME OPTIONS</a>
+<li><a name="TOC3" href="#SEC3">BUILDING 8-BIT, 16-BIT AND 32-BIT LIBRARIES</a>
+<li><a name="TOC4" href="#SEC4">BUILDING SHARED AND STATIC LIBRARIES</a>
+<li><a name="TOC5" href="#SEC5">C++ SUPPORT</a>
+<li><a name="TOC6" href="#SEC6">UTF-8, UTF-16 AND UTF-32 SUPPORT</a>
+<li><a name="TOC7" href="#SEC7">UNICODE CHARACTER PROPERTY SUPPORT</a>
+<li><a name="TOC8" href="#SEC8">JUST-IN-TIME COMPILER SUPPORT</a>
+<li><a name="TOC9" href="#SEC9">CODE VALUE OF NEWLINE</a>
+<li><a name="TOC10" href="#SEC10">WHAT \R MATCHES</a>
+<li><a name="TOC11" href="#SEC11">POSIX MALLOC USAGE</a>
+<li><a name="TOC12" href="#SEC12">HANDLING VERY LARGE PATTERNS</a>
+<li><a name="TOC13" href="#SEC13">AVOIDING EXCESSIVE STACK USAGE</a>
+<li><a name="TOC14" href="#SEC14">LIMITING PCRE RESOURCE USAGE</a>
+<li><a name="TOC15" href="#SEC15">CREATING CHARACTER TABLES AT BUILD TIME</a>
+<li><a name="TOC16" href="#SEC16">USING EBCDIC CODE</a>
+<li><a name="TOC17" href="#SEC17">PCREGREP OPTIONS FOR COMPRESSED FILE SUPPORT</a>
+<li><a name="TOC18" href="#SEC18">PCREGREP BUFFER SIZE</a>
+<li><a name="TOC19" href="#SEC19">PCRETEST OPTION FOR LIBREADLINE SUPPORT</a>
+<li><a name="TOC20" href="#SEC20">DEBUGGING WITH VALGRIND SUPPORT</a>
+<li><a name="TOC21" href="#SEC21">CODE COVERAGE REPORTING</a>
+<li><a name="TOC22" href="#SEC22">SEE ALSO</a>
+<li><a name="TOC23" href="#SEC23">AUTHOR</a>
+<li><a name="TOC24" href="#SEC24">REVISION</a>
 </ul>
-<br><a name="SEC1" href="#TOC1">PCRE BUILD-TIME OPTIONS</a><br>
+<br><a name="SEC1" href="#TOC1">BUILDING PCRE</a><br>
 <P>
-This document describes the optional features of PCRE that can be selected when
-the library is compiled. It assumes use of the <b>configure</b> script, where
-the optional features are selected or deselected by providing options to
-<b>configure</b> before running the <b>make</b> command. However, the same
-options can be selected in both Unix-like and non-Unix-like environments using
-the GUI facility of <b>cmake-gui</b> if you are using <b>CMake</b> instead of
-<b>configure</b> to build PCRE.
+PCRE is distributed with a <b>configure</b> script that can be used to build the 
+library in Unix-like environments using the applications known as Autotools.
+Also in the distribution are files to support building using <b>CMake</b>
+instead of <b>configure</b>. The text file
+<a href="README.txt"><b>README</b></a>
+contains general information about building with Autotools (some of which is
+repeated below), and also has some comments about building on various operating
+systems. There is a lot more information about building PCRE without using
+Autotools (including information about using <b>CMake</b> and building "by
+hand") in the text file called
+<a href="NON-AUTOTOOLS-BUILD.txt"><b>NON-AUTOTOOLS-BUILD</b>.</a>
+You should consult this file as well as the 
+<a href="README.txt"><b>README</b></a>
+file if you are building in a non-Unix-like environment.
 </P>
+<br><a name="SEC2" href="#TOC1">PCRE BUILD-TIME OPTIONS</a><br>
 <P>
-There is a lot more information about building PCRE without using
-<b>configure</b> (including information about using <b>CMake</b> or building "by
-hand") in the file called <i>NON-AUTOTOOLS-BUILD</i>, which is part of the PCRE
-distribution. You should consult this file as well as the <i>README</i> file if
-you are building in a non-Unix-like environment.
+The rest of this document describes the optional features of PCRE that can be
+selected when the library is compiled. It assumes use of the <b>configure</b>
+script, where the optional features are selected or deselected by providing
+options to <b>configure</b> before running the <b>make</b> command. However, the
+same options can be selected in both Unix-like and non-Unix-like environments
+using the GUI facility of <b>cmake-gui</b> if you are using <b>CMake</b> instead
+of <b>configure</b> to build PCRE.
 </P>
 <P>
+If you are not using Autotools or <b>CMake</b>, option selection can be done by 
+editing the <b>config.h</b> file, or by passing parameter settings to the 
+compiler, as described in
+<a href="NON-AUTOTOOLS-BUILD.txt"><b>NON-AUTOTOOLS-BUILD</b>.</a>
+</P>
+<P>
 The complete list of options for <b>configure</b> (which includes the standard
 ones such as the selection of the installation directory) can be obtained by
 running
@@ -67,7 +84,7 @@
 --enable and --disable always come in pairs, so the complementary option always
 exists as well, but as it specifies the default, it is not described.
 </P>
-<br><a name="SEC2" href="#TOC1">BUILDING 8-BIT, 16-BIT AND 32-BIT LIBRARIES</a><br>
+<br><a name="SEC3" href="#TOC1">BUILDING 8-BIT, 16-BIT AND 32-BIT LIBRARIES</a><br>
 <P>
 By default, a library called <b>libpcre</b> is built, containing functions that
 take string arguments contained in vectors of bytes, either as single-byte
@@ -78,7 +95,7 @@
 <pre>
   --enable-pcre16
 </pre>
-to the <b>configure</b> command. You can also build a separate
+to the <b>configure</b> command. You can also build yet another separate
 library, called <b>libpcre32</b>, in which strings are contained in vectors of
 32-bit data units and interpreted either as single-unit characters or UTF-32
 strings, by adding
@@ -94,17 +111,17 @@
 an 8-bit program. None of these are built if you select only the 16-bit or
 32-bit libraries.
 </P>
-<br><a name="SEC3" href="#TOC1">BUILDING SHARED AND STATIC LIBRARIES</a><br>
+<br><a name="SEC4" href="#TOC1">BUILDING SHARED AND STATIC LIBRARIES</a><br>
 <P>
-The PCRE building process uses <b>libtool</b> to build both shared and static
-Unix libraries by default. You can suppress one of these by adding one of
+The Autotools PCRE building process uses <b>libtool</b> to build both shared and
+static libraries by default. You can suppress one of these by adding one of
 <pre>
   --disable-shared
   --disable-static
 </pre>
 to the <b>configure</b> command, as required.
 </P>
-<br><a name="SEC4" href="#TOC1">C++ SUPPORT</a><br>
+<br><a name="SEC5" href="#TOC1">C++ SUPPORT</a><br>
 <P>
 By default, if the 8-bit library is being built, the <b>configure</b> script
 will search for a C++ compiler and C++ header files. If it finds them, it
@@ -115,7 +132,7 @@
 </pre>
 to the <b>configure</b> command.
 </P>
-<br><a name="SEC5" href="#TOC1">UTF-8, UTF-16 AND UTF-32 SUPPORT</a><br>
+<br><a name="SEC6" href="#TOC1">UTF-8, UTF-16 AND UTF-32 SUPPORT</a><br>
 <P>
 To build PCRE with support for UTF Unicode character strings, add
 <pre>
@@ -143,7 +160,7 @@
 library. Consequently, --enable-utf and --enable-ebcdic are mutually
 exclusive.
 </P>
-<br><a name="SEC6" href="#TOC1">UNICODE CHARACTER PROPERTY SUPPORT</a><br>
+<br><a name="SEC7" href="#TOC1">UNICODE CHARACTER PROPERTY SUPPORT</a><br>
 <P>
 UTF support allows the libraries to process character codepoints up to 0x10ffff
 in the strings that they handle. On its own, however, it does not provide any
@@ -163,7 +180,7 @@
 <a href="pcrepattern.html"><b>pcrepattern</b></a>
 documentation.
 </P>
-<br><a name="SEC7" href="#TOC1">JUST-IN-TIME COMPILER SUPPORT</a><br>
+<br><a name="SEC8" href="#TOC1">JUST-IN-TIME COMPILER SUPPORT</a><br>
 <P>
 Just-in-time compiler support is included in the build by specifying
 <pre>
@@ -180,7 +197,7 @@
 </pre>
 to the "configure" command.
 </P>
-<br><a name="SEC8" href="#TOC1">CODE VALUE OF NEWLINE</a><br>
+<br><a name="SEC9" href="#TOC1">CODE VALUE OF NEWLINE</a><br>
 <P>
 By default, PCRE interprets the linefeed (LF) character as indicating the end
 of a line. This is the normal newline character on Unix-like systems. You can
@@ -213,7 +230,7 @@
 overridden when the library functions are called. At build time it is
 conventional to use the standard for your operating system.
 </P>
-<br><a name="SEC9" href="#TOC1">WHAT \R MATCHES</a><br>
+<br><a name="SEC10" href="#TOC1">WHAT \R MATCHES</a><br>
 <P>
 By default, the sequence \R in a pattern matches any Unicode newline sequence,
 whatever has been selected as the line ending sequence. If you specify
@@ -224,7 +241,7 @@
 selected when PCRE is built can be overridden when the library functions are
 called.
 </P>
-<br><a name="SEC10" href="#TOC1">POSIX MALLOC USAGE</a><br>
+<br><a name="SEC11" href="#TOC1">POSIX MALLOC USAGE</a><br>
 <P>
 When the 8-bit library is called through the POSIX interface (see the
 <a href="pcreposix.html"><b>pcreposix</b></a>
@@ -240,7 +257,7 @@
 </pre>
 to the <b>configure</b> command.
 </P>
-<br><a name="SEC11" href="#TOC1">HANDLING VERY LARGE PATTERNS</a><br>
+<br><a name="SEC12" href="#TOC1">HANDLING VERY LARGE PATTERNS</a><br>
 <P>
 Within a compiled pattern, offset values are used to point from one part to
 another (for example, from an opening parenthesis to an alternation
@@ -259,7 +276,7 @@
 additional data when handling them. For the 32-bit library the value is always
 4 and cannot be overridden; the value of --with-link-size is ignored.
 </P>
-<br><a name="SEC12" href="#TOC1">AVOIDING EXCESSIVE STACK USAGE</a><br>
+<br><a name="SEC13" href="#TOC1">AVOIDING EXCESSIVE STACK USAGE</a><br>
 <P>
 When matching with the <b>pcre_exec()</b> function, PCRE implements backtracking
 by making recursive calls to an internal function called <b>match()</b>. In
@@ -290,7 +307,7 @@
 slowly when built in this way. This option affects only the <b>pcre_exec()</b>
 function; it is not relevant for <b>pcre_dfa_exec()</b>.
 </P>
-<br><a name="SEC13" href="#TOC1">LIMITING PCRE RESOURCE USAGE</a><br>
+<br><a name="SEC14" href="#TOC1">LIMITING PCRE RESOURCE USAGE</a><br>
 <P>
 Internally, PCRE has a function called <b>match()</b>, which it calls repeatedly
 (sometimes recursively) when matching a pattern with the <b>pcre_exec()</b>
@@ -319,7 +336,7 @@
 </pre>
 to the <b>configure</b> command. This value can also be overridden at run time.
 </P>
-<br><a name="SEC14" href="#TOC1">CREATING CHARACTER TABLES AT BUILD TIME</a><br>
+<br><a name="SEC15" href="#TOC1">CREATING CHARACTER TABLES AT BUILD TIME</a><br>
 <P>
 PCRE uses fixed tables for processing characters whose code values are less
 than 256. By default, PCRE is built with a set of tables that are distributed
@@ -336,7 +353,7 @@
 create alternative tables when cross compiling, you will have to do so "by
 hand".)
 </P>
-<br><a name="SEC15" href="#TOC1">USING EBCDIC CODE</a><br>
+<br><a name="SEC16" href="#TOC1">USING EBCDIC CODE</a><br>
 <P>
 PCRE assumes by default that it will run in an environment where the character
 code is ASCII (or Unicode, which is a superset of ASCII). This is the case for
@@ -367,7 +384,7 @@
 and equivalent run-time options, refer to these character values in an EBCDIC
 environment.
 </P>
-<br><a name="SEC16" href="#TOC1">PCREGREP OPTIONS FOR COMPRESSED FILE SUPPORT</a><br>
+<br><a name="SEC17" href="#TOC1">PCREGREP OPTIONS FOR COMPRESSED FILE SUPPORT</a><br>
 <P>
 By default, <b>pcregrep</b> reads all files as plain text. You can build it so
 that it recognizes files whose names end in <b>.gz</b> or <b>.bz2</b>, and reads
@@ -380,7 +397,7 @@
 relevant libraries are installed on your system. Configuration will fail if
 they are not.
 </P>
-<br><a name="SEC17" href="#TOC1">PCREGREP BUFFER SIZE</a><br>
+<br><a name="SEC18" href="#TOC1">PCREGREP BUFFER SIZE</a><br>
 <P>
 <b>pcregrep</b> uses an internal buffer to hold a "window" on the file it is
 scanning, in order to be able to output "before" and "after" lines when it
@@ -395,7 +412,7 @@
 to the <b>configure</b> command. The caller of \fPpcregrep\fP can, however,
 override this value by specifying a run-time option.
 </P>
-<br><a name="SEC18" href="#TOC1">PCRETEST OPTION FOR LIBREADLINE SUPPORT</a><br>
+<br><a name="SEC19" href="#TOC1">PCRETEST OPTION FOR LIBREADLINE SUPPORT</a><br>
 <P>
 If you add
 <pre>
@@ -426,7 +443,7 @@
 </pre>
 immediately before the <b>configure</b> command.
 </P>
-<br><a name="SEC19" href="#TOC1">DEBUGGING WITH VALGRIND SUPPORT</a><br>
+<br><a name="SEC20" href="#TOC1">DEBUGGING WITH VALGRIND SUPPORT</a><br>
 <P>
 By adding the
 <pre>
@@ -436,7 +453,7 @@
 to mark certain memory regions as unaddressable. This allows it to detect
 invalid memory accesses, and is mostly useful for debugging PCRE itself.
 </P>
-<br><a name="SEC20" href="#TOC1">CODE COVERAGE REPORTING</a><br>
+<br><a name="SEC21" href="#TOC1">CODE COVERAGE REPORTING</a><br>
 <P>
 If your C compiler is gcc, you can build a version of PCRE that can generate a
 code coverage report for its test suite. To enable this, you must install
@@ -493,11 +510,11 @@
 information about code coverage, see the <b>gcov</b> and <b>lcov</b>
 documentation.
 </P>
-<br><a name="SEC21" href="#TOC1">SEE ALSO</a><br>
+<br><a name="SEC22" href="#TOC1">SEE ALSO</a><br>
 <P>
 <b>pcreapi</b>(3), <b>pcre16</b>, <b>pcre32</b>, <b>pcre_config</b>(3).
 </P>
-<br><a name="SEC22" href="#TOC1">AUTHOR</a><br>
+<br><a name="SEC23" href="#TOC1">AUTHOR</a><br>
 <P>
 Philip Hazel
 <br>
@@ -506,11 +523,11 @@
 Cambridge CB2 3QH, England.
 <br>
 </P>
-<br><a name="SEC23" href="#TOC1">REVISION</a><br>
+<br><a name="SEC24" href="#TOC1">REVISION</a><br>
 <P>
-Last updated: 30 October 2012
+Last updated: 12 May 2013
 <br>
-Copyright &copy; 1997-2012 University of Cambridge.
+Copyright &copy; 1997-2013 University of Cambridge.
 <br>
 <p>
 Return to the <a href="index.html">PCRE index page</a>.


Modified: code/trunk/doc/index.html.src
===================================================================
--- code/trunk/doc/index.html.src    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/doc/index.html.src    2013-05-14 14:26:37 UTC (rev 1332)
@@ -11,27 +11,29 @@
 <body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
 <h1>Perl-compatible Regular Expressions (PCRE)</h1>
 <p>
-The HTML documentation for PCRE comprises the following pages:
+The HTML documentation for PCRE consists of a number of pages that are listed
+below in alphabetical order. If you are new to PCRE, please read the first one
+first.
 </p>


 <table>
 <tr><td><a href="pcre.html">pcre</a></td>
     <td>&nbsp;&nbsp;Introductory page</td></tr>


+<tr><td><a href="pcre-config.html">pcre-config</a></td>
+    <td>&nbsp;&nbsp;Information about the installation configuration</td></tr>
+
 <tr><td><a href="pcre16.html">pcre16</a></td>
     <td>&nbsp;&nbsp;Discussion of the 16-bit PCRE library</td></tr>


 <tr><td><a href="pcre32.html">pcre32</a></td>
     <td>&nbsp;&nbsp;Discussion of the 32-bit PCRE library</td></tr>


-<tr><td><a href="pcre-config.html">pcre-config</a></td>
-    <td>&nbsp;&nbsp;Information about the installation configuration</td></tr>
-
 <tr><td><a href="pcreapi.html">pcreapi</a></td>
     <td>&nbsp;&nbsp;PCRE's native API</td></tr>


 <tr><td><a href="pcrebuild.html">pcrebuild</a></td>
-    <td>&nbsp;&nbsp;Options for building PCRE</td></tr>
+    <td>&nbsp;&nbsp;Building PCRE</td></tr>


 <tr><td><a href="pcrecallout.html">pcrecallout</a></td>
     <td>&nbsp;&nbsp;The <i>callout</i> facility</td></tr>
@@ -67,7 +69,7 @@
     <td>&nbsp;&nbsp;Some comments on performance</td></tr>


 <tr><td><a href="pcreposix.html">pcreposix</a></td>
-    <td>&nbsp;&nbsp;The POSIX API to the PCRE library</td></tr>
+    <td>&nbsp;&nbsp;The POSIX API to the PCRE 8-bit library</td></tr>


 <tr><td><a href="pcreprecompile.html">pcreprecompile</a></td>
     <td>&nbsp;&nbsp;How to save and re-use compiled patterns</td></tr>
@@ -118,13 +120,13 @@
     <td>&nbsp;&nbsp;Match a compiled pattern to a subject string
     (DFA algorithm; <i>not</i> Perl compatible)</td></tr>


-<tr><td><a href="pcre_free_study.html">pcre_free_study</a></td>
-    <td>&nbsp;&nbsp;Free study data</td></tr>
-
 <tr><td><a href="pcre_exec.html">pcre_exec</a></td>
     <td>&nbsp;&nbsp;Match a compiled pattern to a subject string
     (Perl compatible)</td></tr>


+<tr><td><a href="pcre_free_study.html">pcre_free_study</a></td>
+    <td>&nbsp;&nbsp;Free study data</td></tr>
+
 <tr><td><a href="pcre_free_substring.html">pcre_free_substring</a></td>
     <td>&nbsp;&nbsp;Free extracted substring</td></tr>


@@ -140,12 +142,18 @@
 <tr><td><a href="pcre_get_stringnumber.html">pcre_get_stringnumber</a></td>
     <td>&nbsp;&nbsp;Convert captured string name to number</td></tr>


+<tr><td><a href="pcre_get_stringtable_entries.html">pcre_get_stringtable_entries</a></td>
+    <td>&nbsp;&nbsp;Find table entries for given string name</td></tr>
+
 <tr><td><a href="pcre_get_substring.html">pcre_get_substring</a></td>
     <td>&nbsp;&nbsp;Extract numbered substring into new memory</td></tr>


 <tr><td><a href="pcre_get_substring_list.html">pcre_get_substring_list</a></td>
     <td>&nbsp;&nbsp;Extract all substrings into new memory</td></tr>


+<tr><td><a href="pcre_jit_exec.html">pcre_jit_exec</a></td>
+    <td>&nbsp;&nbsp;Fast path interface to JIT matching</td></tr>
+
 <tr><td><a href="pcre_jit_stack_alloc.html">pcre_jit_stack_alloc</a></td>
     <td>&nbsp;&nbsp;Create a stack for JIT matching</td></tr>



Modified: code/trunk/doc/pcre.3
===================================================================
--- code/trunk/doc/pcre.3    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/doc/pcre.3    2013-05-14 14:26:37 UTC (rev 1332)
@@ -1,4 +1,4 @@
-.TH PCRE 3 "26 April 2013" "PCRE 8.33"
+.TH PCRE 3 "13 May 2013" "PCRE 8.33"
 .SH NAME
 PCRE - Perl-compatible regular expressions
 .SH INTRODUCTION
@@ -19,9 +19,9 @@
 Herczeg.
 .P
 Starting with release 8.32 it is possible to compile a third separate PCRE
-library, which supports 32-bit character strings (including
-UTF-32 strings). The build process allows any set of the 8-, 16- and 32-bit
-libraries. The work to make this possible was done by Christian Persch.
+library that supports 32-bit character strings (including UTF-32 strings). The
+build process allows any combination of the 8-, 16- and 32-bit libraries. The
+work to make this possible was done by Christian Persch.
 .P
 The three libraries contain identical sets of functions, except that the names
 in the 16-bit library start with \fBpcre16_\fP instead of \fBpcre_\fP, and the
@@ -68,6 +68,7 @@
 .\" HTML <a href="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre">
 .\" </a>
 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre
+.\"
 .P
 Details of exactly which Perl regular expression features are and are not
 supported by PCRE are given in separate documents. See the
@@ -95,8 +96,17 @@
 \fBpcrebuild\fP
 .\"
 page. Documentation about building PCRE for various operating systems can be
-found in the \fBREADME\fP and \fBNON-AUTOTOOLS_BUILD\fP files in the source
-distribution.
+found in the 
+.\" HTML <a href="README.txt">
+.\" </a>
+\fBREADME\fP 
+.\"
+and 
+.\" HTML <a href="NON-AUTOTOOLS-BUILD.txt">
+.\" </a>
+\fBNON-AUTOTOOLS_BUILD\fP 
+.\"
+files in the source distribution.
 .P
 The libraries contains a number of undocumented internal functions and data
 tables that are used by more than one of the exported external functions, but
@@ -152,11 +162,11 @@
 of searching. The sections are as follows:
 .sp
   pcre              this document
+  pcre-config       show PCRE installation configuration information
   pcre16            details of the 16-bit library
   pcre32            details of the 32-bit library
-  pcre-config       show PCRE installation configuration information
   pcreapi           details of PCRE's native C API
-  pcrebuild         options for building PCRE
+  pcrebuild         building PCRE
   pcrecallout       details of the callout feature
   pcrecompat        discussion of Perl compatibility
   pcrecpp           details of the C++ wrapper for the 8-bit library
@@ -200,6 +210,6 @@
 .rs
 .sp
 .nf
-Last updated: 26 April 2013
+Last updated: 13 May 2013
 Copyright (c) 1997-2013 University of Cambridge.
 .fi


Modified: code/trunk/doc/pcre.txt
===================================================================
--- code/trunk/doc/pcre.txt    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/doc/pcre.txt    2013-05-14 14:26:37 UTC (rev 1332)
@@ -33,112 +33,113 @@
        possible was done by Zoltan Herczeg.


        Starting with release 8.32 it is possible to compile a  third  separate
-       PCRE library, which supports 32-bit character strings (including UTF-32
-       strings). The build process allows any set of the 8-,  16-  and  32-bit
-       libraries. The work to make this possible was done by Christian Persch.
+       PCRE  library  that supports 32-bit character strings (including UTF-32
+       strings). The build process allows any combination of the 8-,  16-  and
+       32-bit  libraries. The work to make this possible was done by Christian
+       Persch.


-       The  three  libraries  contain identical sets of functions, except that
-       the names in the 16-bit library start with pcre16_  instead  of  pcre_,
-       and  the  names  in  the  32-bit  library start with pcre32_ instead of
-       pcre_. To avoid over-complication and reduce the documentation  mainte-
+       The three libraries contain identical sets of  functions,  except  that
+       the  names  in  the 16-bit library start with pcre16_ instead of pcre_,
+       and the names in the 32-bit  library  start  with  pcre32_  instead  of
+       pcre_.  To avoid over-complication and reduce the documentation mainte-
        nance load, most of the documentation describes the 8-bit library, with
-       the differences for the 16-bit and  32-bit  libraries  described  sepa-
-       rately  in  the  pcre16  and  pcre32  pages. References to functions or
-       structures of the  form  pcre[16|32]_xxx  should  be  read  as  meaning
-       "pcre_xxx  when  using  the  8-bit  library,  pcre16_xxx when using the
+       the  differences  for  the  16-bit and 32-bit libraries described sepa-
+       rately in the pcre16 and  pcre32  pages.  References  to  functions  or
+       structures  of  the  form  pcre[16|32]_xxx  should  be  read as meaning
+       "pcre_xxx when using the  8-bit  library,  pcre16_xxx  when  using  the
        16-bit library, or pcre32_xxx when using the 32-bit library".


-       The current implementation of PCRE corresponds approximately with  Perl
-       5.12,  including  support  for  UTF-8/16/32 encoded strings and Unicode
-       general category properties. However, UTF-8/16/32 and  Unicode  support
+       The  current implementation of PCRE corresponds approximately with Perl
+       5.12, including support for UTF-8/16/32  encoded  strings  and  Unicode
+       general  category  properties. However, UTF-8/16/32 and Unicode support
        has to be explicitly enabled; it is not the default. The Unicode tables
        correspond to Unicode release 6.2.0.


-       In addition to the Perl-compatible matching function, PCRE contains  an
-       alternative  function that matches the same compiled patterns in a dif-
+       In  addition to the Perl-compatible matching function, PCRE contains an
+       alternative function that matches the same compiled patterns in a  dif-
        ferent way. In certain circumstances, the alternative function has some
-       advantages.   For  a discussion of the two matching algorithms, see the
+       advantages.  For a discussion of the two matching algorithms,  see  the
        pcrematching page.


-       PCRE is written in C and released as a C library. A  number  of  people
-       have  written  wrappers and interfaces of various kinds. In particular,
-       Google Inc.  have provided a comprehensive C++ wrapper  for  the  8-bit
-       library.  This  is  now  included as part of the PCRE distribution. The
-       pcrecpp page has details of this interface.  Other  people's  contribu-
-       tions  can  be  found in the Contrib directory at the primary FTP site,
+       PCRE  is  written  in C and released as a C library. A number of people
+       have written wrappers and interfaces of various kinds.  In  particular,
+       Google  Inc.   have  provided a comprehensive C++ wrapper for the 8-bit
+       library. This is now included as part of  the  PCRE  distribution.  The
+       pcrecpp  page  has  details of this interface. Other people's contribu-
+       tions can be found in the Contrib directory at the  primary  FTP  site,
        which is:


        ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre


-       Details of exactly which Perl regular expression features are  and  are
+       Details  of  exactly which Perl regular expression features are and are
        not supported by PCRE are given in separate documents. See the pcrepat-
-       tern and pcrecompat pages. There is a syntax summary in the  pcresyntax
+       tern  and pcrecompat pages. There is a syntax summary in the pcresyntax
        page.


-       Some  features  of  PCRE can be included, excluded, or changed when the
-       library is built. The pcre_config() function makes it  possible  for  a
-       client  to  discover  which  features are available. The features them-
-       selves are described in the pcrebuild page. Documentation about  build-
-       ing  PCRE  for various operating systems can be found in the README and
+       Some features of PCRE can be included, excluded, or  changed  when  the
+       library  is  built.  The pcre_config() function makes it possible for a
+       client to discover which features are  available.  The  features  them-
+       selves  are described in the pcrebuild page. Documentation about build-
+       ing PCRE for various operating systems can be found in the  README  and
        NON-AUTOTOOLS_BUILD files in the source distribution.


-       The libraries contains a number of undocumented internal functions  and
-       data  tables  that  are  used by more than one of the exported external
-       functions, but which are not intended  for  use  by  external  callers.
-       Their  names all begin with "_pcre_" or "_pcre16_" or "_pcre32_", which
-       hopefully will not provoke any name clashes. In some  environments,  it
-       is  possible  to  control  which  external  symbols are exported when a
-       shared library is built, and in these cases  the  undocumented  symbols
+       The  libraries contains a number of undocumented internal functions and
+       data tables that are used by more than one  of  the  exported  external
+       functions,  but  which  are  not  intended for use by external callers.
+       Their names all begin with "_pcre_" or "_pcre16_" or "_pcre32_",  which
+       hopefully  will  not provoke any name clashes. In some environments, it
+       is possible to control which  external  symbols  are  exported  when  a
+       shared  library  is  built, and in these cases the undocumented symbols
        are not exported.



SECURITY CONSIDERATIONS

-       If  you  are  using PCRE in a non-UTF application that permits users to
-       supply arbitrary patterns for compilation, you should  be  aware  of  a
+       If you are using PCRE in a non-UTF application that  permits  users  to
+       supply  arbitrary  patterns  for  compilation, you should be aware of a
        feature that allows users to turn on UTF support from within a pattern,
-       provided that PCRE was built with UTF support. For  example,  an  8-bit
-       pattern  that  begins  with  "(*UTF8)" or "(*UTF)" turns on UTF-8 mode,
-       which interprets patterns and subjects as strings of  UTF-8  characters
-       instead  of  individual 8-bit characters.  This causes both the pattern
+       provided  that  PCRE  was built with UTF support. For example, an 8-bit
+       pattern that begins with "(*UTF8)" or "(*UTF)"  turns  on  UTF-8  mode,
+       which  interprets  patterns and subjects as strings of UTF-8 characters
+       instead of individual 8-bit characters.  This causes both  the  pattern
        and any data against which it is matched to be checked for UTF-8 valid-
-       ity.  If  the  data  string is very long, such a check might use suffi-
-       ciently many resources as to cause your  application  to  lose  perfor-
+       ity. If the data string is very long, such a  check  might  use  suffi-
+       ciently  many  resources  as  to cause your application to lose perfor-
        mance.


-       One   way   of   guarding  against  this  possibility  is  to  use  the
-       pcre_fullinfo() function to check the compiled  pattern's  options  for
-       UTF.   Alternatively, from release 8.33, you can set the PCRE_NEVER_UTF
-       option at compile time. This causes an compile time error if a  pattern
+       One  way  of  guarding  against  this  possibility  is   to   use   the
+       pcre_fullinfo()  function  to  check the compiled pattern's options for
+       UTF.  Alternatively, from release 8.33, you can set the  PCRE_NEVER_UTF
+       option  at compile time. This causes an compile time error if a pattern
        contains a UTF-setting sequence.


-       If  your  application  is one that supports UTF, be aware that validity
-       checking can take time. If the same data string is to be  matched  many
+       If your application is one that supports UTF, be  aware  that  validity
+       checking  can  take time. If the same data string is to be matched many
        times, you can use the PCRE_NO_UTF[8|16|32]_CHECK option for the second
        and subsequent matches to save redundant checks.


-       Another way that performance can be hit is by running  a  pattern  that
-       has  a  very  large search tree against a string that will never match.
-       Nested unlimited repeats in a pattern are a common example.  PCRE  pro-
+       Another  way  that  performance can be hit is by running a pattern that
+       has a very large search tree against a string that  will  never  match.
+       Nested  unlimited  repeats in a pattern are a common example. PCRE pro-
        vides some protection against this: see the PCRE_EXTRA_MATCH_LIMIT fea-
        ture in the pcreapi page.



USER DOCUMENTATION

-       The user documentation for PCRE comprises a number  of  different  sec-
-       tions.  In the "man" format, each of these is a separate "man page". In
-       the HTML format, each is a separate page, linked from the  index  page.
-       In  the  plain  text format, all the sections, except the pcredemo sec-
+       The  user  documentation  for PCRE comprises a number of different sec-
+       tions. In the "man" format, each of these is a separate "man page".  In
+       the  HTML  format, each is a separate page, linked from the index page.
+       In the plain text format, all the sections, except  the  pcredemo  sec-
        tion, are concatenated, for ease of searching. The sections are as fol-
        lows:


          pcre              this document
+         pcre-config       show PCRE installation configuration information
          pcre16            details of the 16-bit library
          pcre32            details of the 32-bit library
-         pcre-config       show PCRE installation configuration information
          pcreapi           details of PCRE's native C API
-         pcrebuild         options for building PCRE
+         pcrebuild         building PCRE
          pcrecallout       details of the callout feature
          pcrecompat        discussion of Perl compatibility
          pcrecpp           details of the C++ wrapper for the 8-bit library
@@ -159,7 +160,7 @@
          pcretest          description of the pcretest testing command
          pcreunicode       discussion of Unicode and UTF-8/16/32 support


-       In  addition,  in the "man" and HTML formats, there is a short page for
+       In addition, in the "man" and HTML formats, there is a short  page  for
        each C library function, listing its arguments and results.



@@ -169,14 +170,14 @@
        University Computing Service
        Cambridge CB2 3QH, England.


-       Putting an actual email address here seems to have been a spam  magnet,
-       so  I've  taken  it away. If you want to email me, use my two initials,
+       Putting  an actual email address here seems to have been a spam magnet,
+       so I've taken it away. If you want to email me, use  my  two  initials,
        followed by the two digits 10, at the domain cam.ac.uk.



REVISION

-       Last updated: 26 April 2013
+       Last updated: 13 May 2013
        Copyright (c) 1997-2013 University of Cambridge.
 ------------------------------------------------------------------------------


@@ -849,21 +850,34 @@
 NAME
        PCRE - Perl-compatible regular expressions


+BUILDING PCRE
+
+       PCRE  is  distributed with a configure script that can be used to build
+       the library in Unix-like environments using the applications  known  as
+       Autotools.   Also  in  the  distribution  are files to support building
+       using CMake instead of configure. The text file README contains general
+       information  about  building  with Autotools (some of which is repeated
+       below), and also has some comments about building on various  operating
+       systems.  There  is  a lot more information about building PCRE without
+       using Autotools (including information about using CMake  and  building
+       "by  hand")  in  the  text file called NON-AUTOTOOLS-BUILD.  You should
+       consult this file as well as the README file if you are building  in  a
+       non-Unix-like environment.
+
+
 PCRE BUILD-TIME OPTIONS


-       This  document  describes  the  optional  features  of PCRE that can be
-       selected when the library is compiled. It assumes use of the  configure
-       script,  where the optional features are selected or deselected by pro-
-       viding options to configure before running the make  command.  However,
-       the  same  options  can be selected in both Unix-like and non-Unix-like
-       environments using the GUI facility of cmake-gui if you are using CMake
-       instead of configure to build PCRE.
+       The  rest of this document describes the optional features of PCRE that
+       can be selected when the library is compiled. It  assumes  use  of  the
+       configure  script,  where  the  optional features are selected or dese-
+       lected by providing options to configure before running the  make  com-
+       mand.  However,  the same options can be selected in both Unix-like and
+       non-Unix-like environments using the GUI facility of cmake-gui  if  you
+       are using CMake instead of configure to build PCRE.


-       There  is a lot more information about building PCRE without using con-
-       figure (including information about using CMake or building "by  hand")
-       in  the file called NON-AUTOTOOLS-BUILD, which is part of the PCRE dis-
-       tribution. You should consult this file as well as the README  file  if
-       you are building in a non-Unix-like environment.
+       If  you  are not using Autotools or CMake, option selection can be done
+       by editing the config.h file, or by passing parameter settings  to  the
+       compiler, as described in NON-AUTOTOOLS-BUILD.


        The complete list of options for configure (which includes the standard
        ones such as the  selection  of  the  installation  directory)  can  be
@@ -890,10 +904,10 @@


          --enable-pcre16


-       to the configure command. You can also build a separate library, called
-       libpcre32, in which strings are contained in  vectors  of  32-bit  data
-       units  and  interpreted  either  as  single-unit  characters  or UTF-32
-       strings, by adding
+       to  the  configure  command.  You  can  also build yet another separate
+       library, called libpcre32, in which strings are contained in vectors of
+       32-bit  data  units and interpreted either as single-unit characters or
+       UTF-32 strings, by adding


          --enable-pcre32


@@ -909,9 +923,9 @@

BUILDING SHARED AND STATIC LIBRARIES

-       The  PCRE building process uses libtool to build both shared and static
-       Unix libraries by default. You can suppress one of these by adding  one
-       of
+       The  Autotools  PCRE building process uses libtool to build both shared
+       and static libraries by default. You  can  suppress  one  of  these  by
+       adding one of


          --disable-shared
          --disable-static
@@ -1327,8 +1341,8 @@


REVISION

-       Last updated: 30 October 2012
-       Copyright (c) 1997-2012 University of Cambridge.
+       Last updated: 12 May 2013
+       Copyright (c) 1997-2013 University of Cambridge.
 ------------------------------------------------------------------------------




Modified: code/trunk/doc/pcrebuild.3
===================================================================
--- code/trunk/doc/pcrebuild.3    2013-05-13 15:31:30 UTC (rev 1331)
+++ code/trunk/doc/pcrebuild.3    2013-05-14 14:26:37 UTC (rev 1332)
@@ -1,24 +1,54 @@
-.TH PCREBUILD 3 "30 October 2012" "PCRE 8.32"
+.TH PCREBUILD 3 "12 May 2013" "PCRE 8.33"
 .SH NAME
 PCRE - Perl-compatible regular expressions
 .
 .
+.SH "BUILDING PCRE"
+.rs
+.sp
+PCRE is distributed with a \fBconfigure\fP script that can be used to build the 
+library in Unix-like environments using the applications known as Autotools.
+Also in the distribution are files to support building using \fBCMake\fP
+instead of \fBconfigure\fP. The text file
+.\" HTML <a href="README.txt">
+.\" </a>
+\fBREADME\fP 
+.\"
+contains general information about building with Autotools (some of which is
+repeated below), and also has some comments about building on various operating
+systems. There is a lot more information about building PCRE without using
+Autotools (including information about using \fBCMake\fP and building "by
+hand") in the text file called
+.\" HTML <a href="NON-AUTOTOOLS-BUILD.txt">
+.\" </a>
+\fBNON-AUTOTOOLS-BUILD\fP.
+.\"
+You should consult this file as well as the 
+.\" HTML <a href="README.txt">
+.\" </a>
+\fBREADME\fP 
+.\"
+file if you are building in a non-Unix-like environment.
+.
+.
 .SH "PCRE BUILD-TIME OPTIONS"
 .rs
 .sp
-This document describes the optional features of PCRE that can be selected when
-the library is compiled. It assumes use of the \fBconfigure\fP script, where
-the optional features are selected or deselected by providing options to
-\fBconfigure\fP before running the \fBmake\fP command. However, the same
-options can be selected in both Unix-like and non-Unix-like environments using
-the GUI facility of \fBcmake-gui\fP if you are using \fBCMake\fP instead of
-\fBconfigure\fP to build PCRE.
+The rest of this document describes the optional features of PCRE that can be
+selected when the library is compiled. It assumes use of the \fBconfigure\fP
+script, where the optional features are selected or deselected by providing
+options to \fBconfigure\fP before running the \fBmake\fP command. However, the
+same options can be selected in both Unix-like and non-Unix-like environments
+using the GUI facility of \fBcmake-gui\fP if you are using \fBCMake\fP instead
+of \fBconfigure\fP to build PCRE.
 .P
-There is a lot more information about building PCRE without using
-\fBconfigure\fP (including information about using \fBCMake\fP or building "by
-hand") in the file called \fINON-AUTOTOOLS-BUILD\fP, which is part of the PCRE
-distribution. You should consult this file as well as the \fIREADME\fP file if
-you are building in a non-Unix-like environment.
+If you are not using Autotools or \fBCMake\fP, option selection can be done by 
+editing the \fBconfig.h\fP file, or by passing parameter settings to the 
+compiler, as described in
+.\" HTML <a href="NON-AUTOTOOLS-BUILD.txt">
+.\" </a>
+\fBNON-AUTOTOOLS-BUILD\fP.
+.\"
 .P
 The complete list of options for \fBconfigure\fP (which includes the standard
 ones such as the selection of the installation directory) can be obtained by
@@ -45,7 +75,7 @@
 .sp
   --enable-pcre16
 .sp
-to the \fBconfigure\fP command. You can also build a separate
+to the \fBconfigure\fP command. You can also build yet another separate
 library, called \fBlibpcre32\fP, in which strings are contained in vectors of
 32-bit data units and interpreted either as single-unit characters or UTF-32
 strings, by adding
@@ -65,8 +95,8 @@
 .SH "BUILDING SHARED AND STATIC LIBRARIES"
 .rs
 .sp
-The PCRE building process uses \fBlibtool\fP to build both shared and static
-Unix libraries by default. You can suppress one of these by adding one of
+The Autotools PCRE building process uses \fBlibtool\fP to build both shared and
+static libraries by default. You can suppress one of these by adding one of
 .sp
   --disable-shared
   --disable-static
@@ -515,6 +545,6 @@
 .rs
 .sp
 .nf
-Last updated: 30 October 2012
-Copyright (c) 1997-2012 University of Cambridge.
+Last updated: 12 May 2013
+Copyright (c) 1997-2013 University of Cambridge.
 .fi