[Pcre-svn] [122] code/trunk: More per-function documentation…

Top Page
Delete this message
Author: Subversion repository
Date:  
To: pcre-svn
Subject: [Pcre-svn] [122] code/trunk: More per-function documentation; revised perltest. sh replaces perltest.pl.
Revision: 122
          http://www.exim.org/viewvc/pcre2?view=rev&revision=122
Author:   ph10
Date:     2014-10-25 15:16:46 +0100 (Sat, 25 Oct 2014)


Log Message:
-----------
More per-function documentation; revised perltest.sh replaces perltest.pl.

Modified Paths:
--------------
    code/trunk/Makefile.am
    code/trunk/PrepareRelease
    code/trunk/README
    code/trunk/doc/html/index.html
    code/trunk/doc/html/pcre2api.html
    code/trunk/doc/index.html.src
    code/trunk/doc/pcre2.txt
    code/trunk/doc/pcre2api.3
    code/trunk/src/pcre2_jit_misc.c
    code/trunk/src/pcre2_match_data.c


Added Paths:
-----------
    code/trunk/doc/html/pcre2_compile_context_copy.html
    code/trunk/doc/html/pcre2_compile_context_create.html
    code/trunk/doc/html/pcre2_compile_context_free.html
    code/trunk/doc/html/pcre2_general_context_copy.html
    code/trunk/doc/html/pcre2_general_context_create.html
    code/trunk/doc/html/pcre2_general_context_free.html
    code/trunk/doc/html/pcre2_get_mark.html
    code/trunk/doc/html/pcre2_get_ovector_count.html
    code/trunk/doc/html/pcre2_get_ovector_pointer.html
    code/trunk/doc/html/pcre2_get_startchar.html
    code/trunk/doc/html/pcre2_jit_free_unused_memory.html
    code/trunk/doc/html/pcre2_match_context_copy.html
    code/trunk/doc/html/pcre2_match_context_create.html
    code/trunk/doc/html/pcre2_match_context_free.html
    code/trunk/doc/html/pcre2_match_data_create.html
    code/trunk/doc/html/pcre2_match_data_create_from_pattern.html
    code/trunk/doc/html/pcre2_match_data_free.html
    code/trunk/doc/html/pcre2_set_bsr.html
    code/trunk/doc/html/pcre2_set_callout.html
    code/trunk/doc/html/pcre2_set_character_tables.html
    code/trunk/doc/html/pcre2_set_compile_recursion_guard.html
    code/trunk/doc/html/pcre2_set_match_limit.html
    code/trunk/doc/html/pcre2_set_newline.html
    code/trunk/doc/html/pcre2_set_parens_nest_limit.html
    code/trunk/doc/html/pcre2_set_recursion_limit.html
    code/trunk/doc/html/pcre2_set_recursion_memory_management.html
    code/trunk/doc/pcre2_compile_context_copy.3
    code/trunk/doc/pcre2_compile_context_create.3
    code/trunk/doc/pcre2_compile_context_free.3
    code/trunk/doc/pcre2_general_context_copy.3
    code/trunk/doc/pcre2_general_context_create.3
    code/trunk/doc/pcre2_general_context_free.3
    code/trunk/doc/pcre2_get_mark.3
    code/trunk/doc/pcre2_get_ovector_count.3
    code/trunk/doc/pcre2_get_ovector_pointer.3
    code/trunk/doc/pcre2_get_startchar.3
    code/trunk/doc/pcre2_jit_free_unused_memory.3
    code/trunk/doc/pcre2_match_context_copy.3
    code/trunk/doc/pcre2_match_context_create.3
    code/trunk/doc/pcre2_match_context_free.3
    code/trunk/doc/pcre2_match_data_create.3
    code/trunk/doc/pcre2_match_data_create_from_pattern.3
    code/trunk/doc/pcre2_match_data_free.3
    code/trunk/doc/pcre2_set_bsr.3
    code/trunk/doc/pcre2_set_callout.3
    code/trunk/doc/pcre2_set_character_tables.3
    code/trunk/doc/pcre2_set_compile_recursion_guard.3
    code/trunk/doc/pcre2_set_match_limit.3
    code/trunk/doc/pcre2_set_newline.3
    code/trunk/doc/pcre2_set_parens_nest_limit.3
    code/trunk/doc/pcre2_set_recursion_limit.3
    code/trunk/doc/pcre2_set_recursion_memory_management.3
    code/trunk/perltest.sh


Removed Paths:
-------------
    code/trunk/perltest.pl


Modified: code/trunk/Makefile.am
===================================================================
--- code/trunk/Makefile.am    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/Makefile.am    2014-10-25 14:16:46 UTC (rev 122)
@@ -18,7 +18,6 @@
   doc/pcre2grep.txt \
   doc/pcre2test.txt


-# FIXME
dist_html_DATA = \
doc/html/NON-AUTOTOOLS-BUILD.txt \
doc/html/README.txt \
@@ -27,17 +26,43 @@
doc/html/pcre2.html \
doc/html/pcre2_code_free.html \
doc/html/pcre2_compile.html \
+ doc/html/pcre2_compile_context_copy.html \
+ doc/html/pcre2_compile_context_create.html \
+ doc/html/pcre2_compile_context_free.html \
doc/html/pcre2_config.html \
doc/html/pcre2_dfa_match.html \
+ doc/html/pcre2_general_context_copy.html \
+ doc/html/pcre2_general_context_create.html \
+ doc/html/pcre2_general_context_free.html \
doc/html/pcre2_get_error_message.html \
+ doc/html/pcre2_get_mark.html \
+ doc/html/pcre2_get_ovector_count.html \
+ doc/html/pcre2_get_ovector_pointer.html \
+ doc/html/pcre2_get_startchar.html \
doc/html/pcre2_jit_compile.html \
+ doc/html/pcre2_jit_free_unused_memory.html \
doc/html/pcre2_jit_match.html \
doc/html/pcre2_jit_stack_alloc.html \
doc/html/pcre2_jit_stack_assign.html \
doc/html/pcre2_jit_stack_free.html \
doc/html/pcre2_maketables.html \
doc/html/pcre2_match.html \
+ doc/html/pcre2_match_context_copy.html \
+ doc/html/pcre2_match_context_create.html \
+ doc/html/pcre2_match_context_free.html \
+ doc/html/pcre2_match_data_create.html \
+ doc/html/pcre2_match_data_create_from_pattern.html \
+ doc/html/pcre2_match_data_free.html \
doc/html/pcre2_pattern_info.html \
+ doc/html/pcre2_set_bsr.html \
+ doc/html/pcre2_set_callout.html \
+ doc/html/pcre2_set_character_tables.html \
+ doc/html/pcre2_set_compile_recursion_guard.html \
+ doc/html/pcre2_set_match_limit.html \
+ doc/html/pcre2_set_newline.html \
+ doc/html/pcre2_set_parens_nest_limit.html \
+ doc/html/pcre2_set_recursion_limit.html \
+ doc/html/pcre2_set_recursion_memory_management.html \
doc/html/pcre2_substring_copy_byname.html \
doc/html/pcre2_substring_copy_bynumber.html \
doc/html/pcre2_substring_free.html \
@@ -67,24 +92,48 @@
doc/html/pcre2test.html \
doc/html/pcre2unicode.html

-
-# FIXME
dist_man_MANS = \
doc/pcre2-config.1 \
doc/pcre2.3 \
doc/pcre2_code_free.3 \
doc/pcre2_compile.3 \
+ doc/pcre2_compile_context_copy.3 \
+ doc/pcre2_compile_context_create.3 \
+ doc/pcre2_compile_context_free.3 \
doc/pcre2_config.3 \
doc/pcre2_dfa_match.3 \
+ doc/pcre2_general_context_copy.3 \
+ doc/pcre2_general_context_create.3 \
+ doc/pcre2_general_context_free.3 \
doc/pcre2_get_error_message.3 \
+ doc/pcre2_get_mark.3 \
+ doc/pcre2_get_ovector_count.3 \
+ doc/pcre2_get_ovector_pointer.3 \
+ doc/pcre2_get_startchar.3 \
doc/pcre2_jit_compile.3 \
+ doc/pcre2_jit_free_unused_memory.3 \
doc/pcre2_jit_match.3 \
doc/pcre2_jit_stack_alloc.3 \
doc/pcre2_jit_stack_assign.3 \
doc/pcre2_jit_stack_free.3 \
doc/pcre2_maketables.3 \
doc/pcre2_match.3 \
+ doc/pcre2_match_context_copy.3 \
+ doc/pcre2_match_context_create.3 \
+ doc/pcre2_match_context_free.3 \
+ doc/pcre2_match_data_create.3 \
+ doc/pcre2_match_data_create_from_pattern.3 \
+ doc/pcre2_match_data_free.3 \
doc/pcre2_pattern_info.3 \
+ doc/pcre2_set_bsr.3 \
+ doc/pcre2_set_callout.3 \
+ doc/pcre2_set_character_tables.3 \
+ doc/pcre2_set_compile_recursion_guard.3 \
+ doc/pcre2_set_match_limit.3 \
+ doc/pcre2_set_newline.3 \
+ doc/pcre2_set_parens_nest_limit.3 \
+ doc/pcre2_set_recursion_limit.3 \
+ doc/pcre2_set_recursion_memory_management.3 \
doc/pcre2_substring_copy_byname.3 \
doc/pcre2_substring_copy_bynumber.3 \
doc/pcre2_substring_free.3 \
@@ -151,7 +200,6 @@
# These files contain maintenance information

EXTRA_DIST += \
- doc/perltest.txt \
NON-AUTOTOOLS-BUILD \
HACKING

@@ -569,7 +617,7 @@
testdata/testoutputEBC \
testdata/wintestinput3 \
testdata/wintestoutput3 \
- perltest.pl
+ perltest.sh

 CLEANFILES += \
     testsavedregex \


Modified: code/trunk/PrepareRelease
===================================================================
--- code/trunk/PrepareRelease    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/PrepareRelease    2014-10-25 14:16:46 UTC (rev 122)
@@ -191,7 +191,7 @@
   RunGrepTest \
   RunTest \
   pcre2-config.in \
-  perltest.pl \
+  perltest.sh \
   libpcre2-8.pc.in \
   libpcre2-16.pc.in \
   libpcre2-32.pc.in \


Modified: code/trunk/README
===================================================================
--- code/trunk/README    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/README    2014-10-25 14:16:46 UTC (rev 122)
@@ -574,7 +574,7 @@


The first two tests can always be run, as they expect only plain text strings
(not UTF) and make no use of Unicode properties. The first test file can be fed
-directly into the perltest.pl script to check that Perl gives the same results.
+directly into the perltest.sh 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 PCRE2 version. The second set of tests check
auxiliary functions, error detection, and run-time flags that are specific to
@@ -609,7 +609,7 @@
matches any one of them.

The fourth and fifth tests check UTF and Unicode property support, the fourth
-being compatible with the perltest.pl script, and the fifth checking
+being compatible with the perltest.sh script, and the fifth checking
PCRE2-specific things.

 The sixth and seventh tests check the pcre2_dfa_match() alternative matching
@@ -781,7 +781,6 @@
   doc/html/*               HTML documentation
   doc/pcre2.txt            plain text version of the man pages
   doc/pcre2test.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
   libpcre2-8.pc.in         template for libpcre2-8.pc for pkg-config
   libpcre2-16.pc.in        template for libpcre2-16.pc for pkg-config
@@ -791,7 +790,7 @@
   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
+  perltest.sh              Script for running a Perl test program
   pcre2-config.in          source of script which retains PCRE2 information
   pcre2_jit_test.c         test program for the JIT compiler
   testdata/testinput*      test data for main library tests
@@ -829,4 +828,4 @@
 Philip Hazel
 Email local part: ph10
 Email domain: cam.ac.uk
-Last updated: 27 October 2014
+Last updated: 25 October 2014


Modified: code/trunk/doc/html/index.html
===================================================================
--- code/trunk/doc/html/index.html    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/doc/html/index.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -91,9 +91,15 @@
 <tr><td><a href="pcre2_compile.html">pcre2_compile</a></td>
     <td>&nbsp;&nbsp;Compile a regular expression pattern</td></tr>


-<tr><td><a href="pcre2_compile2.html">pcre2_compile2</a></td>
-    <td>&nbsp;&nbsp;Compile a regular expression (alternate interface)</td></tr>
+<tr><td><a href="pcre2_compile_context_copy.html">pcre2_compile_context_copy</a></td>
+    <td>&nbsp;&nbsp;Copy a compile context</td></tr>


+<tr><td><a href="pcre2_compile_context_create.html">pcre2_compile_context_create</a></td>
+    <td>&nbsp;&nbsp;Create a compile context</td></tr>
+
+<tr><td><a href="pcre2_compile_context_free.html">pcre2_compile_context_free</a></td>
+    <td>&nbsp;&nbsp;Free a compile context</td></tr>
+
 <tr><td><a href="pcre2_config.html">pcre2_config</a></td>
     <td>&nbsp;&nbsp;Show build-time configuration options</td></tr>


@@ -101,12 +107,36 @@
     <td>&nbsp;&nbsp;Match a compiled pattern to a subject string
     (DFA algorithm; <i>not</i> Perl compatible)</td></tr>


+<tr><td><a href="pcre2_general_context_copy.html">pcre2_general_context_copy</a></td>
+    <td>&nbsp;&nbsp;Copy a general context</td></tr>
+
+<tr><td><a href="pcre2_general_context_create.html">pcre2_general_context_create</a></td>
+    <td>&nbsp;&nbsp;Create a general context</td></tr>
+
+<tr><td><a href="pcre2_general_context_free.html">pcre2_general_context_free</a></td>
+    <td>&nbsp;&nbsp;Free a general context</td></tr>
+
 <tr><td><a href="pcre2_get_error_message.html">pcre2_get_error_message</a></td>
     <td>&nbsp;&nbsp;Free study data</td></tr>


+<tr><td><a href="pcre2_get_mark.html">pcre2_get_mark</a></td>
+    <td>&nbsp;&nbsp;Get a (*MARK) name</td></tr>
+
+<tr><td><a href="pcre2_get_ovector_count.html">pcre2_get_ovector_count</a></td>
+    <td>&nbsp;&nbsp;Get the ovector count</td></tr>
+
+<tr><td><a href="pcre2_get_ovector_pointer.html">pcre2_get_ovector_pointer</a></td>
+    <td>&nbsp;&nbsp;Get a pointer to the ovector</td></tr>
+
+<tr><td><a href="pcre2_get_startchar.html">pcre2_get_startchar</a></td>
+    <td>&nbsp;&nbsp;Get the starting character offset</td></tr>
+
 <tr><td><a href="pcre2_jit_compile.html">pcre2_jit_compile</a></td>
     <td>&nbsp;&nbsp;Process a compiled pattern with the JIT compiler</td></tr>


+<tr><td><a href="pcre2_jit_free_unused_memory.html">pcre2_jit_free_unused_memory</a></td>
+    <td>&nbsp;&nbsp;Free unused JIT memory</td></tr>
+
 <tr><td><a href="pcre2_jit_match.html">pcre2_jit_match</a></td>
     <td>&nbsp;&nbsp;Fast path interface to JIT matching</td></tr>


@@ -126,9 +156,54 @@
     <td>&nbsp;&nbsp;Match a compiled pattern to a subject string
     (Perl compatible)</td></tr>


+<tr><td><a href="pcre2_match_context_copy.html">pcre2_match_context_copy</a></td>
+    <td>&nbsp;&nbsp;Copy a match context</td></tr>
+
+<tr><td><a href="pcre2_match_context_create.html">pcre2_match_context_create</a></td>
+    <td>&nbsp;&nbsp;Create a match context</td></tr>
+
+<tr><td><a href="pcre2_match_context_free.html">pcre2_match_contest_free</a></td>
+    <td>&nbsp;&nbsp;Free a match context</td></tr>
+
+<tr><td><a href="pcre2_match_data_create.html">pcre2_match_data_create</a></td>
+    <td>&nbsp;&nbsp;Create a match data block</td></tr>
+
+<tr><td><a href="pcre2_match_data_create_from_pattern.html">pcre2_match_data_create_from_pattern</a></td>
+    <td>&nbsp;&nbsp;Create a match data block getting size from pattern</td></tr>
+
+<tr><td><a href="pcre2_match_data_free.html">pcre2_match_data_free</a></td>
+    <td>&nbsp;&nbsp;Free a match data block</td></tr>
+
 <tr><td><a href="pcre2_pattern_info.html">pcre2_pattern_info</a></td>
     <td>&nbsp;&nbsp;Extract information about a pattern</td></tr>


+<tr><td><a href="pcre2_set_bsr.html">pcre2_set_bsr</a></td>
+    <td>&nbsp;&nbsp;Set \R convention</td></tr>
+
+<tr><td><a href="pcre2_set_callout.html">pcre2_set_callout</a></td>
+    <td>&nbsp;&nbsp;Set up a callout function</td></tr>
+
+<tr><td><a href="pcre2_set_character_tables.html">pcre2_set_character_tables</a></td>
+    <td>&nbsp;&nbsp;Set character tables</td></tr>
+
+<tr><td><a href="pcre2_set_compile_recursion_guard.html">pcre2_set_compile_recursion_guard</a></td>
+    <td>&nbsp;&nbsp;Set up a compile recursion guard function</td></tr>
+
+<tr><td><a href="pcre2_set_match_limit.html">pcre2_set_match_limit</a></td>
+    <td>&nbsp;&nbsp;Set the match limit</td></tr>
+
+<tr><td><a href="pcre2_set_newline.html">pcre2_set_newline</a></td>
+    <td>&nbsp;&nbsp;Set the newline convention</td></tr>
+
+<tr><td><a href="pcre2_set_parens_nest_limit.html">pcre2_set_parens_nest_limit</a></td>
+    <td>&nbsp;&nbsp;Set the parentheses nesting limit</td></tr>
+
+<tr><td><a href="pcre2_set_recursion_limit.html">pcre2_set_recursion_limit</a></td>
+    <td>&nbsp;&nbsp;Set the match recursion limit</td></tr>
+
+<tr><td><a href="pcre2_set_recursion_memory_management.html">pcre2_set_recursion_memory_management</a></td>
+    <td>&nbsp;&nbsp;Set match recursion memory management</td></tr>
+
 <tr><td><a href="pcre2_substring_copy_byname.html">pcre2_substring_copy_byname</a></td>
     <td>&nbsp;&nbsp;Extract named substring into given buffer</td></tr>



Added: code/trunk/doc/html/pcre2_compile_context_copy.html
===================================================================
--- code/trunk/doc/html/pcre2_compile_context_copy.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_compile_context_copy.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,41 @@
+<html>
+<head>
+<title>pcre2_compile_context_copy specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_compile_context_copy man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>pcre2_compile_context *pcre2_compile_context_copy(</b>
+<b>  pcre2_compile_context *<i>ccontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function makes a new copy of a compile context, using the memory
+allocation function that was used for the original context. The result is NULL
+if the memory cannot be obtained.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_compile_context_create.html
===================================================================
--- code/trunk/doc/html/pcre2_compile_context_create.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_compile_context_create.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<title>pcre2_compile_context_create specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_compile_context_create man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>pcre2_compile_context *pcre2_compile_context_create(</b>
+<b>  pcre2_general_context *<i>gcontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function creates and initializes a new compile context. If its argument is
+NULL, <b>malloc()</b> is used to get the necessary memory; otherwise the memory
+allocation function within the general context is used. The result is NULL if
+the memory could not be obtained.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_compile_context_free.html
===================================================================
--- code/trunk/doc/html/pcre2_compile_context_free.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_compile_context_free.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>pcre2_compile_context_free specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_compile_context_free man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>void pcre2_compile_context_free(pcre2_compile_context *<i>ccontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function frees the memory occupied by a compile context, using the memory
+freeing function from the general context with which it was created, or
+<b>free()</b> if that was not set.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_general_context_copy.html
===================================================================
--- code/trunk/doc/html/pcre2_general_context_copy.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_general_context_copy.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<title>pcre2_general_context_copy specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_general_context_copy man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>pcre2_general_context *pcre2_general_context_copy(</b>
+<b>  pcre2_general_context *<i>gcontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function makes a new copy of a general context, using the memory
+allocation functions in the context, if set, to get the necessary memory.
+Otherwise <b>malloc()</b> is used. The result is NULL if the memory cannot be
+obtained.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_general_context_create.html
===================================================================
--- code/trunk/doc/html/pcre2_general_context_create.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_general_context_create.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,44 @@
+<html>
+<head>
+<title>pcre2_general_context_create specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_general_context_create man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>pcre2_general_context *pcre2_general_context_create(</b>
+<b>  void *(*<i>private_malloc</i>)(PCRE2_SIZE, void *),</b>
+<b>  void (*<i>private_free</i>)(void *, void *), void *<i>memory_data</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function creates and initializes a general context. The arguments define
+custom memory management functions and a data value that is passed to them when
+they are called. The <b>private_malloc()</b> function is used to get memory for
+the context. If either of the first two arguments is NULL, the system memory
+management function is used. The result is NULL if no memory could be obtained.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_general_context_free.html
===================================================================
--- code/trunk/doc/html/pcre2_general_context_free.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_general_context_free.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,39 @@
+<html>
+<head>
+<title>pcre2_general_context_free specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_general_context_free man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>void pcre2_general_context_free(pcre2_general_context *<i>gcontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function frees the memory occupied by a general context, using the memory
+freeing function within the context, if set.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_get_mark.html
===================================================================
--- code/trunk/doc/html/pcre2_get_mark.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_get_mark.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<title>pcre2_get_mark specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_get_mark man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>PCRE2_SPTR pcre2_get_mark(pcre2_match_data *<i>match_data</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+After a call of <b>pcre2_match()</b> that was passed the match block that is
+this function's argument, this function returns a pointer to the last (*MARK)
+name that was encountered. The name is zero-terminated, and is within the
+compiled pattern. If no (*MARK) name is available, NULL is returned. A (*MARK)
+name may be available after a failed match or a partial match, as well as after
+a successful one.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_get_ovector_count.html
===================================================================
--- code/trunk/doc/html/pcre2_get_ovector_count.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_get_ovector_count.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,39 @@
+<html>
+<head>
+<title>pcre2_get_ovector_count specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_get_ovector_count man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>uint32_t pcre2_get_ovector_count(pcre2_match_data *<i>match_data</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function returns the number of pairs of offsets in the ovector that forms
+part of the given match data block.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_get_ovector_pointer.html
===================================================================
--- code/trunk/doc/html/pcre2_get_ovector_pointer.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_get_ovector_pointer.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>pcre2_get_ovector_pointer specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_get_ovector_pointer man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>PCRE2_SIZE *pcre2_get_ovector_pointer(pcre2_match_data *<i>match_data</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function returns a pointer to the vector of offsets that forms part of the
+given match data block. The number of pairs can be found by calling
+<b>pcre2_get_ovector_count()</b>.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_get_startchar.html
===================================================================
--- code/trunk/doc/html/pcre2_get_startchar.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_get_startchar.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<title>pcre2_get_startchar specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_get_startchar man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>PCRE2_SIZE pcre2_get_startchar(pcre2_match_data *<i>match_data</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+After a successful call of <b>pcre2_match()</b> that was passed the match block
+that is this function's argument, this function returns the code unit offset of
+the character at which the successful match started. This can be different to
+the value of <i>ovector[0]</i> if the pattern contains the \K escape sequence.
+Note, however, that \K has no effect for a partial match.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_jit_free_unused_memory.html
===================================================================
--- code/trunk/doc/html/pcre2_jit_free_unused_memory.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_jit_free_unused_memory.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>pcre2_jit_free_unused_memory specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_jit_free_unused_memory man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>void pcre2_jit_free_unused_memory(pcre2_general_context *<i>gcontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function frees unused JIT executable memory. The argument is a general
+context, for custom memory management, or NULL for standard memory management.
+FIXME: more detail needed.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_match_context_copy.html
===================================================================
--- code/trunk/doc/html/pcre2_match_context_copy.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_match_context_copy.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,41 @@
+<html>
+<head>
+<title>pcre2_match_context_copy specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_match_context_copy man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>pcre2_match_context *pcre2_match_context_copy(</b>
+<b>  pcre2_match_context *<i>mcontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function makes a new copy of a match context, using the memory
+allocation function that was used for the original context. The result is NULL
+if the memory cannot be obtained.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_match_context_create.html
===================================================================
--- code/trunk/doc/html/pcre2_match_context_create.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_match_context_create.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<title>pcre2_match_context_create specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_match_context_create man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>pcre2_match_context *pcre2_match_context_create(</b>
+<b>  pcre2_general_context *<i>gcontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function creates and initializes a new match context. If its argument is
+NULL, <b>malloc()</b> is used to get the necessary memory; otherwise the memory
+allocation function within the general context is used. The result is NULL if
+the memory could not be obtained.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_match_context_free.html
===================================================================
--- code/trunk/doc/html/pcre2_match_context_free.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_match_context_free.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>pcre2_match_context_free specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_match_context_free man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>void pcre2_match_context_free(pcre2_match_context *<i>mcontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function frees the memory occupied by a match context, using the memory
+freeing function from the general context with which it was created, or
+<b>free()</b> if that was not set.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_match_data_create.html
===================================================================
--- code/trunk/doc/html/pcre2_match_data_create.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_match_data_create.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<title>pcre2_match_data_create specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_match_data_create man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>pcre2_match_data_create(uint32_t <i>ovecsize</i>,</b>
+<b>  pcre2_general_context *<i>gcontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function creates a new match data block, which is used for holding the
+result of a match. The first argument specifies the number of pairs of offsets
+that are required. These form the "output vector" (ovector) within the match
+data block, and are used to identify the matched string and any captured
+substrings. There is always one pair of offsets; if <b>ovecsize</b> is zero, it
+is treated as one.
+</P>
+<P>
+The second argument points to a general context, for custom memory management,
+or is NULL for system memory management. The result of the function is NULL if
+the memory for the block could not be obtained.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_match_data_create_from_pattern.html
===================================================================
--- code/trunk/doc/html/pcre2_match_data_create_from_pattern.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_match_data_create_from_pattern.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<title>pcre2_match_data_create_from_pattern specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_match_data_create_from_pattern man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>pcre2_match_data_create_from_pattern(pcre2_code *<i>code</i>,</b>
+<b>  pcre2_general_context *<i>gcontext</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function creates a new match data block, which is used for holding the
+result of a match. The first argument points to a compiled pattern. The number
+of capturing parentheses within the pattern is used to compute the number of
+pairs of offsets that are required in the match data block. These form the
+"output vector" (ovector) within the match data block, and are used to identify
+the matched string and any captured substrings.
+</P>
+<P>
+The second argument points to a general context, for custom memory management,
+or is NULL for system memory management. The result of the function is NULL if
+the memory for the block could not be obtained.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_match_data_free.html
===================================================================
--- code/trunk/doc/html/pcre2_match_data_free.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_match_data_free.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>pcre2_match_data_free specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_match_data_free man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>void pcre2_match_data_free(pcre2_match_data *<i>match_data</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function frees the memory occupied by a match data block, using the memory
+freeing function from the general context with which it was created, or
+<b>free()</b> if that was not set.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_set_bsr.html
===================================================================
--- code/trunk/doc/html/pcre2_set_bsr.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_set_bsr.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<title>pcre2_set_bsr specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_set_bsr man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>int pcre2_set_bsr(pcre2_compile_context *<i>ccontext</i>,</b>
+<b>  uint32_t <i>value</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function sets the convention for processing \R within a compile context.
+The second argument must be one of PCRE2_BSR_ANYCRLF or PCRE2_BSR_UNICODE. The
+result is zero for success or PCRE2_ERROR_BADDATA if the second argument is
+invalid.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_set_callout.html
===================================================================
--- code/trunk/doc/html/pcre2_set_callout.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_set_callout.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<title>pcre2_set_callout specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_set_callout man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>int pcre2_set_callout(pcre2_match_context *<i>mcontext</i>,</b>
+<b>  int (*<i>callout_function</i>)(pcre2_callout_block *),</b>
+<b>  void *<i>callout_data</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function sets the callout fields in a match context (the first argument).
+The second argument specifies a callout function, and the third argument is an
+opaque data time that is passed to it. The result of this function is always
+zero.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_set_character_tables.html
===================================================================
--- code/trunk/doc/html/pcre2_set_character_tables.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_set_character_tables.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<title>pcre2_set_character_tables specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_set_character_tables man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>int pcre2_set_character_tables(pcre2_compile_context *<i>ccontext</i>,</b>
+<b>  const unsigned char *<i>tables</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function sets a pointer to custom character tables within a compile
+context. The second argument must be the result of a call to
+<b>pcre2_maketables()</b> or NULL to request the default tables. The result is
+always zero.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_set_compile_recursion_guard.html
===================================================================
--- code/trunk/doc/html/pcre2_set_compile_recursion_guard.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_set_compile_recursion_guard.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<title>pcre2_set_compile_recursion_guard specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_set_compile_recursion_guard man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>int pcre2_set_compile_recursion_guard(pcre2_compile_context *<i>ccontext</i>,</b>
+<b>  int (*<i>guard_function</i>)(uint32_t));</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function defines, within a compile context, a function that is called
+whenever <b>pcre2_compile()</b> starts to compile a parenthesized part of a
+pattern. The argument to the function gives the current depth of parenthesis
+nesting. The function should return zero if all is well, or non-zero to force
+an error. This feature is provided so that applications can check the available
+system stack space, in order to avoid running out. The result of this function
+is always zero.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_set_match_limit.html
===================================================================
--- code/trunk/doc/html/pcre2_set_match_limit.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_set_match_limit.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>pcre2_set_match_limit specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_set_match_limit man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>int pcre2_set_match_limit(pcre2_match_context *<i>mcontext</i>,</b>
+<b>  uint32_t <i>value</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function sets the match limit field in a match context. The result is
+always zero.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_set_newline.html
===================================================================
--- code/trunk/doc/html/pcre2_set_newline.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_set_newline.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,50 @@
+<html>
+<head>
+<title>pcre2_set_newline specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_set_newline man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>int pcre2_set_newline(pcre2_compile_context *<i>ccontext</i>,</b>
+<b>  uint32_t <i>value</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function sets the newline convention within a compile context. This
+specifies which character(s) are recognized as newlines when compiling and
+matching patterns. The second argument must be one of:
+<pre>
+  PCRE2_NEWLINE_CR        Carriage return only
+  PCRE2_NEWLINE_LF        Linefeed only
+  PCRE2_NEWLINE_CRLF      CR followed by LF only
+  PCRE2_NEWLINE_ANYCRLF   Any of the above
+  PCRE2_NEWLINE_ANY       Any Unicode newline sequence
+</pre>
+The result is zero for success or PCRE2_ERROR_BADDATA if the second argument is
+invalid.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_set_parens_nest_limit.html
===================================================================
--- code/trunk/doc/html/pcre2_set_parens_nest_limit.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_set_parens_nest_limit.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>pcre2_set_parens_nest_limit specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_set_parens_nest_limit man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>int pcre2_set_parens_nest_limit(pcre2_compile_context *<i>ccontext</i>,</b>
+<b>  uint32_t <i>value</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function sets, in a compile context, the maximum depth of nested
+parentheses in a pattern. The result is always zero.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_set_recursion_limit.html
===================================================================
--- code/trunk/doc/html/pcre2_set_recursion_limit.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_set_recursion_limit.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>pcre2_set_recursion_limit specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_set_recursion_limit man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>int pcre2_set_recursion_limit(pcre2_match_context *<i>mcontext</i>,</b>
+<b>  uint32_t <i>value</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function sets the recursion limit field in a match context. The result is
+always zero.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Added: code/trunk/doc/html/pcre2_set_recursion_memory_management.html
===================================================================
--- code/trunk/doc/html/pcre2_set_recursion_memory_management.html                            (rev 0)
+++ code/trunk/doc/html/pcre2_set_recursion_memory_management.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<title>pcre2_set_recursion_memory_management specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_set_recursion_memory_management man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include &#60;pcre2.h&#62;</b>
+</P>
+<P>
+<b>int pcre2_set_recursion_memory_management(</b>
+<b>  pcre2_match_context *<i>mcontext</i>,</b>
+<b>  void *(*<i>private_malloc</i>)(PCRE2_SIZE, void *),</b>
+<b>  void (*<i>private_free</i>)(void *, void *), void *<i>memory_data</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function sets the match context fields for custom memory management when
+PCRE2 is compiled to use the heap instead of the system stack for recursive
+function calls while matching. When PCRE2 is compiled to use the stack (the
+default) this function does nothing. The first argument is a match context, the
+second and third specify the memory allocation and freeing functions, and the
+final argument is an opaque value that is passed to them whenever they are
+called. The result of this function is always zero.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>


Modified: code/trunk/doc/html/pcre2api.html
===================================================================
--- code/trunk/doc/html/pcre2api.html    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/doc/html/pcre2api.html    2014-10-25 14:16:46 UTC (rev 122)
@@ -2053,7 +2053,7 @@
 The offset of the character at which the successful match started is
 returned by <b>pcre2_get_startchar()</b>. This can be different to the value of
 <i>ovector[0]</i> if the pattern contains the \K escape sequence. Note,
-however, the \K has no effect for a partial match.
+however, that \K has no effect for a partial match.
 <a name="errorlist"></a></P>
 <br><b>
 Error return values from <b>pcre2_match()</b>


Modified: code/trunk/doc/index.html.src
===================================================================
--- code/trunk/doc/index.html.src    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/doc/index.html.src    2014-10-25 14:16:46 UTC (rev 122)
@@ -91,9 +91,15 @@
 <tr><td><a href="pcre2_compile.html">pcre2_compile</a></td>
     <td>&nbsp;&nbsp;Compile a regular expression pattern</td></tr>


-<tr><td><a href="pcre2_compile2.html">pcre2_compile2</a></td>
-    <td>&nbsp;&nbsp;Compile a regular expression (alternate interface)</td></tr>
+<tr><td><a href="pcre2_compile_context_copy.html">pcre2_compile_context_copy</a></td>
+    <td>&nbsp;&nbsp;Copy a compile context</td></tr>


+<tr><td><a href="pcre2_compile_context_create.html">pcre2_compile_context_create</a></td>
+    <td>&nbsp;&nbsp;Create a compile context</td></tr>
+
+<tr><td><a href="pcre2_compile_context_free.html">pcre2_compile_context_free</a></td>
+    <td>&nbsp;&nbsp;Free a compile context</td></tr>
+
 <tr><td><a href="pcre2_config.html">pcre2_config</a></td>
     <td>&nbsp;&nbsp;Show build-time configuration options</td></tr>


@@ -101,12 +107,36 @@
     <td>&nbsp;&nbsp;Match a compiled pattern to a subject string
     (DFA algorithm; <i>not</i> Perl compatible)</td></tr>


+<tr><td><a href="pcre2_general_context_copy.html">pcre2_general_context_copy</a></td>
+    <td>&nbsp;&nbsp;Copy a general context</td></tr>
+
+<tr><td><a href="pcre2_general_context_create.html">pcre2_general_context_create</a></td>
+    <td>&nbsp;&nbsp;Create a general context</td></tr>
+
+<tr><td><a href="pcre2_general_context_free.html">pcre2_general_context_free</a></td>
+    <td>&nbsp;&nbsp;Free a general context</td></tr>
+
 <tr><td><a href="pcre2_get_error_message.html">pcre2_get_error_message</a></td>
     <td>&nbsp;&nbsp;Free study data</td></tr>


+<tr><td><a href="pcre2_get_mark.html">pcre2_get_mark</a></td>
+    <td>&nbsp;&nbsp;Get a (*MARK) name</td></tr>
+
+<tr><td><a href="pcre2_get_ovector_count.html">pcre2_get_ovector_count</a></td>
+    <td>&nbsp;&nbsp;Get the ovector count</td></tr>
+
+<tr><td><a href="pcre2_get_ovector_pointer.html">pcre2_get_ovector_pointer</a></td>
+    <td>&nbsp;&nbsp;Get a pointer to the ovector</td></tr>
+
+<tr><td><a href="pcre2_get_startchar.html">pcre2_get_startchar</a></td>
+    <td>&nbsp;&nbsp;Get the starting character offset</td></tr>
+
 <tr><td><a href="pcre2_jit_compile.html">pcre2_jit_compile</a></td>
     <td>&nbsp;&nbsp;Process a compiled pattern with the JIT compiler</td></tr>


+<tr><td><a href="pcre2_jit_free_unused_memory.html">pcre2_jit_free_unused_memory</a></td>
+    <td>&nbsp;&nbsp;Free unused JIT memory</td></tr>
+
 <tr><td><a href="pcre2_jit_match.html">pcre2_jit_match</a></td>
     <td>&nbsp;&nbsp;Fast path interface to JIT matching</td></tr>


@@ -126,9 +156,54 @@
     <td>&nbsp;&nbsp;Match a compiled pattern to a subject string
     (Perl compatible)</td></tr>


+<tr><td><a href="pcre2_match_context_copy.html">pcre2_match_context_copy</a></td>
+    <td>&nbsp;&nbsp;Copy a match context</td></tr>
+
+<tr><td><a href="pcre2_match_context_create.html">pcre2_match_context_create</a></td>
+    <td>&nbsp;&nbsp;Create a match context</td></tr>
+
+<tr><td><a href="pcre2_match_context_free.html">pcre2_match_context_free</a></td>
+    <td>&nbsp;&nbsp;Free a match context</td></tr>
+
+<tr><td><a href="pcre2_match_data_create.html">pcre2_match_data_create</a></td>
+    <td>&nbsp;&nbsp;Create a match data block</td></tr>
+
+<tr><td><a href="pcre2_match_data_create_from_pattern.html">pcre2_match_data_create_from_pattern</a></td>
+    <td>&nbsp;&nbsp;Create a match data block getting size from pattern</td></tr>
+
+<tr><td><a href="pcre2_match_data_free.html">pcre2_match_data_free</a></td>
+    <td>&nbsp;&nbsp;Free a match data block</td></tr>
+
 <tr><td><a href="pcre2_pattern_info.html">pcre2_pattern_info</a></td>
     <td>&nbsp;&nbsp;Extract information about a pattern</td></tr>


+<tr><td><a href="pcre2_set_bsr.html">pcre2_set_bsr</a></td>
+    <td>&nbsp;&nbsp;Set \R convention</td></tr>
+
+<tr><td><a href="pcre2_set_callout.html">pcre2_set_callout</a></td>
+    <td>&nbsp;&nbsp;Set up a callout function</td></tr>
+
+<tr><td><a href="pcre2_set_character_tables.html">pcre2_set_character_tables</a></td>
+    <td>&nbsp;&nbsp;Set character tables</td></tr>
+
+<tr><td><a href="pcre2_set_compile_recursion_guard.html">pcre2_set_compile_recursion_guard</a></td>
+    <td>&nbsp;&nbsp;Set up a compile recursion guard function</td></tr>
+
+<tr><td><a href="pcre2_set_match_limit.html">pcre2_set_match_limit</a></td>
+    <td>&nbsp;&nbsp;Set the match limit</td></tr>
+
+<tr><td><a href="pcre2_set_newline.html">pcre2_set_newline</a></td>
+    <td>&nbsp;&nbsp;Set the newline convention</td></tr>
+
+<tr><td><a href="pcre2_set_parens_nest_limit.html">pcre2_set_parens_nest_limit</a></td>
+    <td>&nbsp;&nbsp;Set the parentheses nesting limit</td></tr>
+
+<tr><td><a href="pcre2_set_recursion_limit.html">pcre2_set_recursion_limit</a></td>
+    <td>&nbsp;&nbsp;Set the match recursion limit</td></tr>
+
+<tr><td><a href="pcre2_set_recursion_memory_management.html">pcre2_set_recursion_memory_management</a></td>
+    <td>&nbsp;&nbsp;Set match recursion memory management</td></tr>
+
 <tr><td><a href="pcre2_substring_copy_byname.html">pcre2_substring_copy_byname</a></td>
     <td>&nbsp;&nbsp;Extract named substring into given buffer</td></tr>



Modified: code/trunk/doc/pcre2.txt
===================================================================
--- code/trunk/doc/pcre2.txt    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/doc/pcre2.txt    2014-10-25 14:16:46 UTC (rev 122)
@@ -2037,7 +2037,7 @@
        The  offset  of  the character at which the successful match started is
        returned by pcre2_get_startchar(). This can be different to  the  value
        of  ovector[0]  if  the  pattern contains the \K escape sequence. Note,
-       however, the \K has no effect for a partial match.
+       however, that \K has no effect for a partial match.


    Error return values from pcre2_match()



Added: code/trunk/doc/pcre2_compile_context_copy.3
===================================================================
--- code/trunk/doc/pcre2_compile_context_copy.3                            (rev 0)
+++ code/trunk/doc/pcre2_compile_context_copy.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,29 @@
+.TH PCRE2_COMPILE_CONTEXT_COPY 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B pcre2_compile_context *pcre2_compile_context_copy(
+.B "  pcre2_compile_context *\fIccontext\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function makes a new copy of a compile context, using the memory
+allocation function that was used for the original context. The result is NULL
+if the memory cannot be obtained.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_compile_context_create.3
===================================================================
--- code/trunk/doc/pcre2_compile_context_create.3                            (rev 0)
+++ code/trunk/doc/pcre2_compile_context_create.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,30 @@
+.TH PCRE2_COMPILE_CONTEXT_CREATE 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B pcre2_compile_context *pcre2_compile_context_create(
+.B "  pcre2_general_context *\fIgcontext\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function creates and initializes a new compile context. If its argument is
+NULL, \fBmalloc()\fP is used to get the necessary memory; otherwise the memory
+allocation function within the general context is used. The result is NULL if
+the memory could not be obtained.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_compile_context_free.3
===================================================================
--- code/trunk/doc/pcre2_compile_context_free.3                            (rev 0)
+++ code/trunk/doc/pcre2_compile_context_free.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,28 @@
+.TH PCRE2_COMPILE_CONTEXT_FREE 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B void pcre2_compile_context_free(pcre2_compile_context *\fIccontext\fP);
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function frees the memory occupied by a compile context, using the memory
+freeing function from the general context with which it was created, or
+\fBfree()\fP if that was not set.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_general_context_copy.3
===================================================================
--- code/trunk/doc/pcre2_general_context_copy.3                            (rev 0)
+++ code/trunk/doc/pcre2_general_context_copy.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,30 @@
+.TH PCRE2_GENERAL_CONTEXT_COPY 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B pcre2_general_context *pcre2_general_context_copy(
+.B "  pcre2_general_context *\fIgcontext\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function makes a new copy of a general context, using the memory
+allocation functions in the context, if set, to get the necessary memory.
+Otherwise \fBmalloc()\fP is used. The result is NULL if the memory cannot be
+obtained.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_general_context_create.3
===================================================================
--- code/trunk/doc/pcre2_general_context_create.3                            (rev 0)
+++ code/trunk/doc/pcre2_general_context_create.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,32 @@
+.TH PCRE2_GENERAL_CONTEXT_CREATE 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B pcre2_general_context *pcre2_general_context_create(
+.B "  void *(*\fIprivate_malloc\fP)(PCRE2_SIZE, void *),"
+.B "  void (*\fIprivate_free\fP)(void *, void *), void *\fImemory_data\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function creates and initializes a general context. The arguments define
+custom memory management functions and a data value that is passed to them when
+they are called. The \fBprivate_malloc()\fP function is used to get memory for
+the context. If either of the first two arguments is NULL, the system memory
+management function is used. The result is NULL if no memory could be obtained.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_general_context_free.3
===================================================================
--- code/trunk/doc/pcre2_general_context_free.3                            (rev 0)
+++ code/trunk/doc/pcre2_general_context_free.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,27 @@
+.TH PCRE2_GENERAL_CONTEXT_FREE 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B void pcre2_general_context_free(pcre2_general_context *\fIgcontext\fP);
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function frees the memory occupied by a general context, using the memory
+freeing function within the context, if set.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_get_mark.3
===================================================================
--- code/trunk/doc/pcre2_get_mark.3                            (rev 0)
+++ code/trunk/doc/pcre2_get_mark.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,31 @@
+.TH PCRE2_GET_MARK 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B PCRE2_SPTR pcre2_get_mark(pcre2_match_data *\fImatch_data\fP);
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+After a call of \fBpcre2_match()\fP that was passed the match block that is
+this function's argument, this function returns a pointer to the last (*MARK)
+name that was encountered. The name is zero-terminated, and is within the
+compiled pattern. If no (*MARK) name is available, NULL is returned. A (*MARK)
+name may be available after a failed match or a partial match, as well as after
+a successful one.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_get_ovector_count.3
===================================================================
--- code/trunk/doc/pcre2_get_ovector_count.3                            (rev 0)
+++ code/trunk/doc/pcre2_get_ovector_count.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,27 @@
+.TH PCRE2_GET_OVECTOR_COUNT 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B uint32_t pcre2_get_ovector_count(pcre2_match_data *\fImatch_data\fP);
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function returns the number of pairs of offsets in the ovector that forms
+part of the given match data block.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_get_ovector_pointer.3
===================================================================
--- code/trunk/doc/pcre2_get_ovector_pointer.3                            (rev 0)
+++ code/trunk/doc/pcre2_get_ovector_pointer.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,28 @@
+.TH PCRE2_GET_OVECTOR_POINTER 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B PCRE2_SIZE *pcre2_get_ovector_pointer(pcre2_match_data *\fImatch_data\fP);
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function returns a pointer to the vector of offsets that forms part of the
+given match data block. The number of pairs can be found by calling
+\fBpcre2_get_ovector_count()\fP.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_get_startchar.3
===================================================================
--- code/trunk/doc/pcre2_get_startchar.3                            (rev 0)
+++ code/trunk/doc/pcre2_get_startchar.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,30 @@
+.TH PCRE2_GET_STARTCHAR 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B PCRE2_SIZE pcre2_get_startchar(pcre2_match_data *\fImatch_data\fP);
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+After a successful call of \fBpcre2_match()\fP that was passed the match block
+that is this function's argument, this function returns the code unit offset of
+the character at which the successful match started. This can be different to
+the value of \fIovector[0]\fP if the pattern contains the \eK escape sequence.
+Note, however, that \eK has no effect for a partial match.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_jit_free_unused_memory.3
===================================================================
--- code/trunk/doc/pcre2_jit_free_unused_memory.3                            (rev 0)
+++ code/trunk/doc/pcre2_jit_free_unused_memory.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,28 @@
+.TH PCRE2_JIT_FREE_UNUSED_MEMORY 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B void pcre2_jit_free_unused_memory(pcre2_general_context *\fIgcontext\fP);
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function frees unused JIT executable memory. The argument is a general
+context, for custom memory management, or NULL for standard memory management.
+FIXME: more detail needed.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_match_context_copy.3
===================================================================
--- code/trunk/doc/pcre2_match_context_copy.3                            (rev 0)
+++ code/trunk/doc/pcre2_match_context_copy.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,29 @@
+.TH PCRE2_MATCH_CONTEXT_COPY 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B pcre2_match_context *pcre2_match_context_copy(
+.B "  pcre2_match_context *\fImcontext\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function makes a new copy of a match context, using the memory
+allocation function that was used for the original context. The result is NULL
+if the memory cannot be obtained.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_match_context_create.3
===================================================================
--- code/trunk/doc/pcre2_match_context_create.3                            (rev 0)
+++ code/trunk/doc/pcre2_match_context_create.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,30 @@
+.TH PCRE2_MATCH_CONTEXT_CREATE 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B pcre2_match_context *pcre2_match_context_create(
+.B "  pcre2_general_context *\fIgcontext\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function creates and initializes a new match context. If its argument is
+NULL, \fBmalloc()\fP is used to get the necessary memory; otherwise the memory
+allocation function within the general context is used. The result is NULL if
+the memory could not be obtained.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_match_context_free.3
===================================================================
--- code/trunk/doc/pcre2_match_context_free.3                            (rev 0)
+++ code/trunk/doc/pcre2_match_context_free.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,28 @@
+.TH PCRE2_MATCH_CONTEXT_FREE 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B void pcre2_match_context_free(pcre2_match_context *\fImcontext\fP);
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function frees the memory occupied by a match context, using the memory
+freeing function from the general context with which it was created, or
+\fBfree()\fP if that was not set.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_match_data_create.3
===================================================================
--- code/trunk/doc/pcre2_match_data_create.3                            (rev 0)
+++ code/trunk/doc/pcre2_match_data_create.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,36 @@
+.TH PCRE2_MATCH_DATA_CREATE 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B pcre2_match_data_create(uint32_t \fIovecsize\fP,
+.B "  pcre2_general_context *\fIgcontext\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function creates a new match data block, which is used for holding the
+result of a match. The first argument specifies the number of pairs of offsets
+that are required. These form the "output vector" (ovector) within the match
+data block, and are used to identify the matched string and any captured
+substrings. There is always one pair of offsets; if \fBovecsize\fP is zero, it
+is treated as one.
+.P
+The second argument points to a general context, for custom memory management,
+or is NULL for system memory management. The result of the function is NULL if
+the memory for the block could not be obtained.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_match_data_create_from_pattern.3
===================================================================
--- code/trunk/doc/pcre2_match_data_create_from_pattern.3                            (rev 0)
+++ code/trunk/doc/pcre2_match_data_create_from_pattern.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,36 @@
+.TH PCRE2_MATCH_DATA_CREATE_FROM_PATTERN 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B pcre2_match_data_create_from_pattern(pcre2_code *\fIcode\fP,
+.B "  pcre2_general_context *\fIgcontext\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function creates a new match data block, which is used for holding the
+result of a match. The first argument points to a compiled pattern. The number
+of capturing parentheses within the pattern is used to compute the number of
+pairs of offsets that are required in the match data block. These form the
+"output vector" (ovector) within the match data block, and are used to identify
+the matched string and any captured substrings.
+.P
+The second argument points to a general context, for custom memory management,
+or is NULL for system memory management. The result of the function is NULL if
+the memory for the block could not be obtained.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_match_data_free.3
===================================================================
--- code/trunk/doc/pcre2_match_data_free.3                            (rev 0)
+++ code/trunk/doc/pcre2_match_data_free.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,28 @@
+.TH PCRE2_MATCH_DATA_FREE 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B void pcre2_match_data_free(pcre2_match_data *\fImatch_data\fP);
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function frees the memory occupied by a match data block, using the memory
+freeing function from the general context with which it was created, or
+\fBfree()\fP if that was not set.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_set_bsr.3
===================================================================
--- code/trunk/doc/pcre2_set_bsr.3                            (rev 0)
+++ code/trunk/doc/pcre2_set_bsr.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,30 @@
+.TH PCRE2_SET_BSR 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B int pcre2_set_bsr(pcre2_compile_context *\fIccontext\fP,
+.B "  uint32_t \fIvalue\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function sets the convention for processing \eR within a compile context.
+The second argument must be one of PCRE2_BSR_ANYCRLF or PCRE2_BSR_UNICODE. The
+result is zero for success or PCRE2_ERROR_BADDATA if the second argument is
+invalid.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_set_callout.3
===================================================================
--- code/trunk/doc/pcre2_set_callout.3                            (rev 0)
+++ code/trunk/doc/pcre2_set_callout.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,31 @@
+.TH PCRE2_SET_CALLOUT 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B int pcre2_set_callout(pcre2_match_context *\fImcontext\fP,
+.B "  int (*\fIcallout_function\fP)(pcre2_callout_block *),"
+.B "  void *\fIcallout_data\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function sets the callout fields in a match context (the first argument).
+The second argument specifies a callout function, and the third argument is an
+opaque data time that is passed to it. The result of this function is always
+zero.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_set_character_tables.3
===================================================================
--- code/trunk/doc/pcre2_set_character_tables.3                            (rev 0)
+++ code/trunk/doc/pcre2_set_character_tables.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,30 @@
+.TH PCRE2_SET_CHARACTER_TABLES 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B int pcre2_set_character_tables(pcre2_compile_context *\fIccontext\fP,
+.B "  const unsigned char *\fItables\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function sets a pointer to custom character tables within a compile
+context. The second argument must be the result of a call to
+\fBpcre2_maketables()\fP or NULL to request the default tables. The result is
+always zero.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_set_compile_recursion_guard.3
===================================================================
--- code/trunk/doc/pcre2_set_compile_recursion_guard.3                            (rev 0)
+++ code/trunk/doc/pcre2_set_compile_recursion_guard.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,33 @@
+.TH PCRE2_SET_COMPILE_RECURSION_GUARD 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B int pcre2_set_compile_recursion_guard(pcre2_compile_context *\fIccontext\fP,
+.B "  int (*\fIguard_function\fP)(uint32_t));"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function defines, within a compile context, a function that is called
+whenever \fBpcre2_compile()\fP starts to compile a parenthesized part of a
+pattern. The argument to the function gives the current depth of parenthesis
+nesting. The function should return zero if all is well, or non-zero to force
+an error. This feature is provided so that applications can check the available
+system stack space, in order to avoid running out. The result of this function
+is always zero.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_set_match_limit.3
===================================================================
--- code/trunk/doc/pcre2_set_match_limit.3                            (rev 0)
+++ code/trunk/doc/pcre2_set_match_limit.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,28 @@
+.TH PCRE2_SET_MATCH_LIMIT 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B int pcre2_set_match_limit(pcre2_match_context *\fImcontext\fP,
+.B "  uint32_t \fIvalue\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function sets the match limit field in a match context. The result is
+always zero.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_set_newline.3
===================================================================
--- code/trunk/doc/pcre2_set_newline.3                            (rev 0)
+++ code/trunk/doc/pcre2_set_newline.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,38 @@
+.TH PCRE2_SET_NEWLINE 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B int pcre2_set_newline(pcre2_compile_context *\fIccontext\fP,
+.B "  uint32_t \fIvalue\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function sets the newline convention within a compile context. This
+specifies which character(s) are recognized as newlines when compiling and
+matching patterns. The second argument must be one of:
+.sp
+  PCRE2_NEWLINE_CR        Carriage return only
+  PCRE2_NEWLINE_LF        Linefeed only
+  PCRE2_NEWLINE_CRLF      CR followed by LF only
+  PCRE2_NEWLINE_ANYCRLF   Any of the above
+  PCRE2_NEWLINE_ANY       Any Unicode newline sequence
+.sp
+The result is zero for success or PCRE2_ERROR_BADDATA if the second argument is
+invalid.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_set_parens_nest_limit.3
===================================================================
--- code/trunk/doc/pcre2_set_parens_nest_limit.3                            (rev 0)
+++ code/trunk/doc/pcre2_set_parens_nest_limit.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,28 @@
+.TH PCRE2_SET_PARENS_NEST_LIMIT 3 "22 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B int pcre2_set_parens_nest_limit(pcre2_compile_context *\fIccontext\fP,
+.B "  uint32_t \fIvalue\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function sets, in a compile context, the maximum depth of nested
+parentheses in a pattern. The result is always zero.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_set_recursion_limit.3
===================================================================
--- code/trunk/doc/pcre2_set_recursion_limit.3                            (rev 0)
+++ code/trunk/doc/pcre2_set_recursion_limit.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,28 @@
+.TH PCRE2_SET_RECURSION_LIMIT 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B int pcre2_set_recursion_limit(pcre2_match_context *\fImcontext\fP,
+.B "  uint32_t \fIvalue\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function sets the recursion limit field in a match context. The result is
+always zero.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Added: code/trunk/doc/pcre2_set_recursion_memory_management.3
===================================================================
--- code/trunk/doc/pcre2_set_recursion_memory_management.3                            (rev 0)
+++ code/trunk/doc/pcre2_set_recursion_memory_management.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,35 @@
+.TH PCRE2_SET_RECURSION_MEMORY_MANAGEMENT 3 "24 October 2014" "PCRE2 10.00"
+.SH NAME
+PCRE2 - Perl-compatible regular expressions (revised API)
+.SH SYNOPSIS
+.rs
+.sp
+.B #include <pcre2.h>
+.PP
+.nf
+.B int pcre2_set_recursion_memory_management(
+.B "  pcre2_match_context *\fImcontext\fP,"
+.B "  void *(*\fIprivate_malloc\fP)(PCRE2_SIZE, void *),"
+.B "  void (*\fIprivate_free\fP)(void *, void *), void *\fImemory_data\fP);"
+.fi
+.
+.SH DESCRIPTION
+.rs
+.sp
+This function sets the match context fields for custom memory management when
+PCRE2 is compiled to use the heap instead of the system stack for recursive
+function calls while matching. When PCRE2 is compiled to use the stack (the
+default) this function does nothing. The first argument is a match context, the
+second and third specify the memory allocation and freeing functions, and the
+final argument is an opaque value that is passed to them whenever they are
+called. The result of this function is always zero.
+.P
+There is a complete description of the PCRE2 native API in the
+.\" HREF
+\fBpcre2api\fP
+.\"
+page and a description of the POSIX API in the
+.\" HREF
+\fBpcre2posix\fP
+.\"
+page.


Modified: code/trunk/doc/pcre2api.3
===================================================================
--- code/trunk/doc/pcre2api.3    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/doc/pcre2api.3    2014-10-25 14:16:46 UTC (rev 122)
@@ -2072,7 +2072,7 @@
 The offset of the character at which the successful match started is
 returned by \fBpcre2_get_startchar()\fP. This can be different to the value of
 \fIovector[0]\fP if the pattern contains the \eK escape sequence. Note,
-however, the \eK has no effect for a partial match.
+however, that \eK has no effect for a partial match.
 .
 .
 .\" HTML <a name="errorlist"></a>


Deleted: code/trunk/perltest.pl
===================================================================
--- code/trunk/perltest.pl    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/perltest.pl    2014-10-25 14:16:46 UTC (rev 122)
@@ -1,246 +0,0 @@
-#! /usr/bin/env perl
-
-# Program for testing regular expressions with perl to check that PCRE2 handles
-# them the same. This version needs to have "use utf8" at the start for running
-# the UTF-8 tests, but *not* for the other tests. The only way I've found for
-# doing this is to cat this line in explicitly in the RunPerlTest script. I've
-# also used this method to supply "require Encode" for the UTF-8 tests, so that
-# the main test will still run where Encode is not installed.
-
-#use utf8;
-#require Encode;
-
-# Function for turning a string into a string of printing chars.
-
-sub pchars {
-my($t) = "";
-
-if ($utf8)
-  {
-  @p = unpack('U*', $_[0]);
-  foreach $c (@p)
-    {
-    if ($c >= 32 && $c < 127) { $t .= chr $c; }
-      else { $t .= sprintf("\\x{%02x}", $c);
-      }
-    }
-  }
-else
-  {
-  foreach $c (split(//, $_[0]))
-    {
-    if (ord $c >= 32 && ord $c < 127) { $t .= $c; }
-      else { $t .= sprintf("\\x%02x", ord $c); }
-    }
-  }
-
-$t;
-}
-
-
-# Read lines from named file or stdin and write to named file or stdout; lines
-# consist of a regular expression, in delimiters and optionally followed by
-# options, followed by a set of test data, terminated by an empty line.
-
-# Sort out the input and output files
-
-if (@ARGV > 0)
-  {
-  open(INFILE, "<$ARGV[0]") || die "Failed to open $ARGV[0]\n";
-  $infile = "INFILE";
-  }
-else { $infile = "STDIN"; }
-
-if (@ARGV > 1)
-  {
-  open(OUTFILE, ">$ARGV[1]") || die "Failed to open $ARGV[1]\n";
-  $outfile = "OUTFILE";
-  }
-else { $outfile = "STDOUT"; }
-
-printf($outfile "Perl $] Regular Expressions\n\n");
-
-# Main loop
-
-NEXT_RE:
-for (;;)
-  {
-  printf "  re> " if $infile eq "STDIN";
-  last if ! ($_ = <$infile>);
-  printf $outfile "$_" if $infile ne "STDIN";
-  next if ($_ =~ /^\s*$/ || $_ =~ /^#/);
-
-  $pattern = $_;
-
-  while ($pattern !~ /^\s*(.).*\1/s)
-    {
-    printf "    > " if $infile eq "STDIN";
-    last if ! ($_ = <$infile>);
-    printf $outfile "$_" if $infile ne "STDIN";
-    $pattern .= $_;
-    }
-
-  chomp($pattern);
-  $pattern =~ s/\s+$//;
-
-  # Split the pattern from the modifiers and adjust them as necessary.
-
-  $pattern =~ /^\s*((.).*\2)(.*)$/s;
-  $pat = $1;
-  $mod = $3;
-
-  # The private "aftertext" modifier means "print $' afterwards".
-
-  $showrest = ($mod =~ s/aftertext,?//);
-
-  # "allaftertext" is used by pcre2test to print remainders after captures
-
-  $mod =~ s/allaftertext,?//;
-
-  # Detect utf
-
-  $utf8 = $mod =~ s/utf,?//;
-
-  # Remove "dupnames".
-
-  $mod =~ s/dupnames,?//;
-
-  # Remove "mark" (asks pcre2test to check MARK data) */
-
-  $mod =~ s/mark,?//;
-
-  # "ucp" asks pcre2test to set PCRE2_UCP; change this to /u for Perl
-
-  $mod =~ s/ucp,?/u/;
-
-  # Remove "no_auto_possess" and "no_start_optimize" (disable PCRE2 optimizations)
-
-  $mod =~ s/no_auto_possess,?//;
-  $mod =~ s/no_start_optimize,?//;
-
-  # Add back retained modifiers and check that the pattern is valid.
-
-  $mod =~ s/,//g;
-  $pattern = "$pat$mod";
-  eval "\$_ =~ ${pattern}";
-  if ($@)
-    {
-    printf $outfile "Error: $@";
-    if ($infile != "STDIN")
-      {
-      for (;;)
-        {
-        last if ! ($_ = <$infile>);
-        last if $_ =~ /^\s*$/;
-        }
-      }
-    next NEXT_RE;
-    }
-
-  # If the /g modifier is present, we want to put a loop round the matching;
-  # otherwise just a single "if".
-
-  $cmd = ($pattern =~ /g[a-z]*$/)? "while" : "if";
-
-  # If the pattern is actually the null string, Perl uses the most recently
-  # executed (and successfully compiled) regex is used instead. This is a
-  # nasty trap for the unwary! The PCRE2 test suite does contain null strings
-  # in places - if they are allowed through here all sorts of weird and
-  # unexpected effects happen. To avoid this, we replace such patterns with
-  # a non-null pattern that has the same effect.
-
-  $pattern = "/(?#)/$2" if ($pattern =~ /^(.)\1(.*)$/);
-
-  # Read data lines and test them
-
-  for (;;)
-    {
-    printf "data> " if $infile eq "STDIN";
-    last NEXT_RE if ! ($_ = <$infile>);
-    chomp;
-    printf $outfile "$_\n" if $infile ne "STDIN";
-
-    s/\s+$//;  # Remove trailing space
-    s/^\s+//;  # Remove leading space
-
-    last if ($_ eq "");
-    $x = eval "\"$_\"";   # To get escapes processed
-
-    # Empty array for holding results, ensure $REGERROR and $REGMARK are
-    # unset, then do the matching.
-
-    @subs = ();
-
-    $pushes = "push \@subs,\$&;" .
-         "push \@subs,\$1;" .
-         "push \@subs,\$2;" .
-         "push \@subs,\$3;" .
-         "push \@subs,\$4;" .
-         "push \@subs,\$5;" .
-         "push \@subs,\$6;" .
-         "push \@subs,\$7;" .
-         "push \@subs,\$8;" .
-         "push \@subs,\$9;" .
-         "push \@subs,\$10;" .
-         "push \@subs,\$11;" .
-         "push \@subs,\$12;" .
-         "push \@subs,\$13;" .
-         "push \@subs,\$14;" .
-         "push \@subs,\$15;" .
-         "push \@subs,\$16;" .
-         "push \@subs,\$'; }";
-
-    undef $REGERROR;
-    undef $REGMARK;
-
-    eval "${cmd} (\$x =~ ${pattern}) {" . $pushes;
-
-    if ($@)
-      {
-      printf $outfile "Error: $@\n";
-      next NEXT_RE;
-      }
-    elsif (scalar(@subs) == 0)
-      {
-      printf $outfile "No match";
-      if (defined $REGERROR && $REGERROR != 1)
-        { printf $outfile (", mark = %s", &pchars($REGERROR)); }
-      printf $outfile "\n";
-      }
-    else
-      {
-      while (scalar(@subs) != 0)
-        {
-        printf $outfile (" 0: %s\n", &pchars($subs[0]));
-        printf $outfile (" 0+ %s\n", &pchars($subs[17])) if $showrest;
-        $last_printed = 0;
-        for ($i = 1; $i <= 16; $i++)
-          {
-          if (defined $subs[$i])
-            {
-            while ($last_printed++ < $i-1)
-              { printf $outfile ("%2d: <unset>\n", $last_printed); }
-            printf $outfile ("%2d: %s\n", $i, &pchars($subs[$i]));
-            $last_printed = $i;
-            }
-          }
-        splice(@subs, 0, 18);
-        }
-
-      # It seems that $REGMARK is not marked as UTF-8 even when use utf8 is
-      # set and the input pattern was a UTF-8 string. We can, however, force
-      # it to be so marked.
-
-      if (defined $REGMARK && $REGMARK != 1)
-        {
-        $xx = $REGMARK;
-        $xx = Encode::decode_utf8($xx) if $utf8;
-        printf $outfile ("MK: %s\n", &pchars($xx));
-        }
-      }
-    }
-  }
-
-# printf $outfile "\n";
-
-# End


Added: code/trunk/perltest.sh
===================================================================
--- code/trunk/perltest.sh                            (rev 0)
+++ code/trunk/perltest.sh    2014-10-25 14:16:46 UTC (rev 122)
@@ -0,0 +1,295 @@
+#! /bin/sh
+
+# Script for testing regular expressions with perl to check that PCRE2 handles
+# them the same. The Perl code has to have "use utf8" and "require Encode" at
+# the start when running UTF-8 tests, but *not* for non-utf8 tests. (The
+# "require" would actually be OK for non-utf8-tests, but is not always
+# installed, so this way the script will always run for these tests.)
+#
+# The desired effect is achieved by making this a shell script that passes the
+# Perl script to Perl through a pipe. If the first argument is "-utf8", a
+# suitable prefix is set up. 
+#
+# The remaining arguments, if any, are passed to Perl. They are an input file
+# and an output file. If there is one argument, the output is written to
+# STDOUT. If Perl receives no arguments, it opens /dev/tty as input, and writes
+# output to STDOUT. (I haven't found a way of getting it to use STDIN, because
+# of the contorted piping input.)
+
+perl=perl
+prefix=''
+if [ $# > 0 -a "$1" = "-utf8" ] ; then
+  prefix="use utf8; require Encode;"
+  shift 
+fi
+
+
+# The Perl script that follows has a similar specification to pcre2test, and so
+# can be given identical input, except that input patterns can be followed only
+# by Perl's lower case modifiers and certain other pcre2test modifiers that are
+# either handled or ignored:
+# 
+#   aftertext          interpreted as "print $' afterwards"
+#   afteralltext       ignored
+#   dupnames           ignored (Perl always allows)
+#   mark               ignored
+#   no_auto_possess    ignored
+#   no_start_optimize  ignored  
+#   ucp                sets Perl's /u modifier   
+#   utf                invoke UTF-8 functionality  
+# 
+# The data lines must not have any pcre2test modifiers. They are processed as
+# Perl double-quoted strings, so if they contain " $ or @ characters, these
+# have to be escaped. For this reason, all such characters in the
+# Perl-compatible testinput1 and testinput4 files are escaped so that they can
+# be used for perltest as well as for pcre2test. The output from this script
+# should be same as from pcre2test, apart from the initial identifying banner.
+# 
+# The other testinput files are not suitable for feeding to perltest.sh,
+# because they make use of the special modifiers that pcre2test uses for
+# testing features of PCRE2. Some of these files also contain malformed regular
+# expressions, in order to check that PCRE2 diagnoses them correctly.
+
+(echo "$prefix" ; cat <<'PERLEND'
+
+# Function for turning a string into a string of printing chars.
+
+sub pchars {
+my($t) = "";
+if ($utf8)
+  {
+  @p = unpack('U*', $_[0]);
+  foreach $c (@p)
+    {
+    if ($c >= 32 && $c < 127) { $t .= chr $c; }
+      else { $t .= sprintf("\\x{%02x}", $c);
+      }
+    }
+  }
+else
+  {
+  foreach $c (split(//, $_[0]))
+    {
+    if (ord $c >= 32 && ord $c < 127) { $t .= $c; }
+      else { $t .= sprintf("\\x%02x", ord $c); }
+    }
+  }
+$t;
+}
+
+
+# Read lines from a named file or stdin and write to a named file or stdout;
+# lines consist of a regular expression, in delimiters and optionally followed
+# by options, followed by a set of test data, terminated by an empty line.
+
+# Sort out the input and output files
+
+if (@ARGV > 0)
+  {
+  open(INFILE, "<$ARGV[0]") || die "Failed to open $ARGV[0]\n";
+  $infile = "INFILE";
+  $interact = 0;
+  }
+else 
+  { 
+  open(INFILE, "</dev/tty") || die "Failed to open /dev/tty\n";
+  $infile = "INFILE";
+  $interact = 1; 
+  }
+
+if (@ARGV > 1)
+  {
+  open(OUTFILE, ">$ARGV[1]") || die "Failed to open $ARGV[1]\n";
+  $outfile = "OUTFILE";
+  }
+else { $outfile = "STDOUT"; }
+
+printf($outfile "Perl $] Regular Expressions\n\n");
+
+# Main loop
+
+NEXT_RE:
+for (;;)
+  {
+  printf "  re> " if $interact;
+  last if ! ($_ = <$infile>);
+  printf $outfile "$_" if ! $interact;
+  next if ($_ =~ /^\s*$/ || $_ =~ /^#/);
+
+  $pattern = $_;
+
+  while ($pattern !~ /^\s*(.).*\1/s)
+    {
+    printf "    > " if $interact;
+    last if ! ($_ = <$infile>);
+    printf $outfile "$_" if ! $interact;
+    $pattern .= $_;
+    }
+
+  chomp($pattern);
+  $pattern =~ s/\s+$//;
+
+  # Split the pattern from the modifiers and adjust them as necessary.
+
+  $pattern =~ /^\s*((.).*\2)(.*)$/s;
+  $pat = $1;
+  $mod = $3;
+
+  # The private "aftertext" modifier means "print $' afterwards".
+
+  $showrest = ($mod =~ s/aftertext,?//);
+
+  # "allaftertext" is used by pcre2test to print remainders after captures
+
+  $mod =~ s/allaftertext,?//;
+
+  # Detect utf
+
+  $utf8 = $mod =~ s/utf,?//;
+
+  # Remove "dupnames".
+
+  $mod =~ s/dupnames,?//;
+
+  # Remove "mark" (asks pcre2test to check MARK data) */
+
+  $mod =~ s/mark,?//;
+
+  # "ucp" asks pcre2test to set PCRE2_UCP; change this to /u for Perl
+
+  $mod =~ s/ucp,?/u/;
+
+  # Remove "no_auto_possess" and "no_start_optimize" (disable PCRE2 optimizations)
+
+  $mod =~ s/no_auto_possess,?//;
+  $mod =~ s/no_start_optimize,?//;
+
+  # Add back retained modifiers and check that the pattern is valid.
+
+  $mod =~ s/,//g;
+  $pattern = "$pat$mod";
+  eval "\$_ =~ ${pattern}";
+  if ($@)
+    {
+    printf $outfile "Error: $@";
+    if (! $interact)
+      {
+      for (;;)
+        {
+        last if ! ($_ = <$infile>);
+        last if $_ =~ /^\s*$/;
+        }
+      }
+    next NEXT_RE;
+    }
+
+  # If the /g modifier is present, we want to put a loop round the matching;
+  # otherwise just a single "if".
+
+  $cmd = ($pattern =~ /g[a-z]*$/)? "while" : "if";
+
+  # If the pattern is actually the null string, Perl uses the most recently
+  # executed (and successfully compiled) regex is used instead. This is a
+  # nasty trap for the unwary! The PCRE2 test suite does contain null strings
+  # in places - if they are allowed through here all sorts of weird and
+  # unexpected effects happen. To avoid this, we replace such patterns with
+  # a non-null pattern that has the same effect.
+
+  $pattern = "/(?#)/$2" if ($pattern =~ /^(.)\1(.*)$/);
+
+  # Read data lines and test them
+
+  for (;;)
+    {
+    printf "data> " if $interact;
+    last NEXT_RE if ! ($_ = <$infile>);
+    chomp;
+    printf $outfile "$_\n" if ! $interact;
+
+    s/\s+$//;  # Remove trailing space
+    s/^\s+//;  # Remove leading space
+
+    last if ($_ eq "");
+    $x = eval "\"$_\"";   # To get escapes processed
+
+    # Empty array for holding results, ensure $REGERROR and $REGMARK are
+    # unset, then do the matching.
+
+    @subs = ();
+
+    $pushes = "push \@subs,\$&;" .
+         "push \@subs,\$1;" .
+         "push \@subs,\$2;" .
+         "push \@subs,\$3;" .
+         "push \@subs,\$4;" .
+         "push \@subs,\$5;" .
+         "push \@subs,\$6;" .
+         "push \@subs,\$7;" .
+         "push \@subs,\$8;" .
+         "push \@subs,\$9;" .
+         "push \@subs,\$10;" .
+         "push \@subs,\$11;" .
+         "push \@subs,\$12;" .
+         "push \@subs,\$13;" .
+         "push \@subs,\$14;" .
+         "push \@subs,\$15;" .
+         "push \@subs,\$16;" .
+         "push \@subs,\$'; }";
+
+    undef $REGERROR;
+    undef $REGMARK;
+
+    eval "${cmd} (\$x =~ ${pattern}) {" . $pushes;
+
+    if ($@)
+      {
+      printf $outfile "Error: $@\n";
+      next NEXT_RE;
+      }
+    elsif (scalar(@subs) == 0)
+      {
+      printf $outfile "No match";
+      if (defined $REGERROR && $REGERROR != 1)
+        { printf $outfile (", mark = %s", &pchars($REGERROR)); }
+      printf $outfile "\n";
+      }
+    else
+      {
+      while (scalar(@subs) != 0)
+        {
+        printf $outfile (" 0: %s\n", &pchars($subs[0]));
+        printf $outfile (" 0+ %s\n", &pchars($subs[17])) if $showrest;
+        $last_printed = 0;
+        for ($i = 1; $i <= 16; $i++)
+          {
+          if (defined $subs[$i])
+            {
+            while ($last_printed++ < $i-1)
+              { printf $outfile ("%2d: <unset>\n", $last_printed); }
+            printf $outfile ("%2d: %s\n", $i, &pchars($subs[$i]));
+            $last_printed = $i;
+            }
+          }
+        splice(@subs, 0, 18);
+        }
+
+      # It seems that $REGMARK is not marked as UTF-8 even when use utf8 is
+      # set and the input pattern was a UTF-8 string. We can, however, force
+      # it to be so marked.
+
+      if (defined $REGMARK && $REGMARK != 1)
+        {
+        $xx = $REGMARK;
+        $xx = Encode::decode_utf8($xx) if $utf8;
+        printf $outfile ("MK: %s\n", &pchars($xx));
+        }
+      }
+    }
+  }
+
+# printf $outfile "\n";
+
+PERLEND
+) | $perl - $@
+   
+# End



Property changes on: code/trunk/perltest.sh
___________________________________________________________________
Name: svn:executable
+ *

Modified: code/trunk/src/pcre2_jit_misc.c
===================================================================
--- code/trunk/src/pcre2_jit_misc.c    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/src/pcre2_jit_misc.c    2014-10-25 14:16:46 UTC (rev 122)
@@ -124,6 +124,7 @@
 maxsize = (maxsize + STACK_GROWTH_RATE - 1) & ~(STACK_GROWTH_RATE - 1);


jit_stack = PRIV(memctl_malloc)(sizeof(pcre2_real_jit_stack), (pcre2_memctl *)gcontext);
+if (jit_stack == NULL) return NULL;
jit_stack->stack = sljit_allocate_stack(startsize, maxsize, &jit_stack->memctl);
return jit_stack;


Modified: code/trunk/src/pcre2_match_data.c
===================================================================
--- code/trunk/src/pcre2_match_data.c    2014-10-21 16:33:30 UTC (rev 121)
+++ code/trunk/src/pcre2_match_data.c    2014-10-25 14:16:46 UTC (rev 122)
@@ -61,6 +61,7 @@
 yield = PRIV(memctl_malloc)(
   sizeof(pcre2_match_data) + 3*oveccount*sizeof(PCRE2_SIZE),
   (pcre2_memctl *)gcontext);
+if (yield == NULL) return NULL;
 yield->oveccount = oveccount;
 return yield;
 }