[Pcre-svn] [583] code/trunk: Add script to check for man pag…

Página Inicial
Delete this message
Autor: Subversion repository
Data:  
Para: pcre-svn
Assunto: [Pcre-svn] [583] code/trunk: Add script to check for man page markup typos.
Revision: 583
          http://vcs.pcre.org/viewvc?view=rev&revision=583
Author:   ph10
Date:     2011-01-11 16:49:55 +0000 (Tue, 11 Jan 2011)


Log Message:
-----------
Add script to check for man page markup typos. Fix some typos.

Modified Paths:
--------------
    code/trunk/ChangeLog
    code/trunk/PrepareRelease
    code/trunk/doc/html/index.html
    code/trunk/doc/html/pcre_compile2.html
    code/trunk/doc/html/pcrecpp.html
    code/trunk/doc/html/pcregrep.html
    code/trunk/doc/pcre.3
    code/trunk/doc/pcre.txt
    code/trunk/doc/pcre_compile.3
    code/trunk/doc/pcre_compile2.3
    code/trunk/doc/pcre_config.3
    code/trunk/doc/pcrecpp.3
    code/trunk/doc/pcregrep.1
    code/trunk/doc/pcreprecompile.3
    code/trunk/maint/README


Added Paths:
-----------
    code/trunk/CheckMan


Modified: code/trunk/ChangeLog
===================================================================
--- code/trunk/ChangeLog    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/ChangeLog    2011-01-11 16:49:55 UTC (rev 583)
@@ -1,6 +1,13 @@
 ChangeLog for PCRE
 ------------------


+Version 8.12 11-Jan-2011
+------------------------
+
+1.  Fixed some typos in the markup of the man pages, and wrote a script that
+    checks for such things as part of the documentation building process.
+
+
 Version 8.11 10-Dec-2010
 ------------------------



Added: code/trunk/CheckMan
===================================================================
--- code/trunk/CheckMan                            (rev 0)
+++ code/trunk/CheckMan    2011-01-11 16:49:55 UTC (rev 583)
@@ -0,0 +1,67 @@
+#! /usr/bin/perl
+
+# A script to scan PCRE's man pages to check for typos in the control
+# sequences. I use only a small set of the available repertoire, so it is 
+# straightforward to check that nothing else has slipped in by mistake. This
+# script should be called in the doc directory.
+
+$yield = 0;
+
+while (scalar(@ARGV) > 0)
+  {
+  $line = 0; 
+  $file = shift @ARGV;
+    
+  open (IN, $file) || die "Failed to open $file\n";
+  
+  while (<IN>)
+    {  
+    $line++; 
+    if (/^\s*$/)
+      {
+      printf "Empty line $line of $file\n";
+      $yield = 1;  
+      }   
+    elsif (/^\./)
+      {
+      if (!/^\.\s*$|
+            ^\.B\s+\S| 
+            ^\.TH\s\S|
+            ^\.SH\s\S|
+            ^\.SS\s\S|
+            ^\.TP(?:\s\d+)?\s*$|
+            ^\.ti\s\S| 
+            ^\.SM\s*$|
+            ^\.rs\s*$| 
+            ^\.sp\s*$| 
+            ^\.nf\s*$| 
+            ^\.fi\s*$| 
+            ^\.P\s*$| 
+            ^\.PP\s*$| 
+            ^\.\\"(?:\ HREF)?\s*$|
+            ^\.\\"\sHTML\s<a\shref="[^"]+?">\s*$|
+            ^\.\\"\sHTML\s<a\sname="[^"]+?"><\/a>\s*$|
+            ^\.\\"\s<\/a>\s*$|
+            ^\.\\"\sJOINSH\s*$|
+            ^\.\\"\sJOIN\s*$/x  
+         )
+        {
+        printf "Bad control line $line of $file\n";
+        $yield = 1;
+        }
+      }
+    else
+      {
+      if (/\\[^ef]|\\f[^IBP]/)
+        {
+        printf "Bad backslash in line $line of $file\n";  
+        $yield = 1; 
+        } 
+      }   
+    }
+     
+  close(IN);   
+  }
+  
+exit $yield;
+# End  



Property changes on: code/trunk/CheckMan
___________________________________________________________________
Name: svn:executable
+ *

Modified: code/trunk/PrepareRelease
===================================================================
--- code/trunk/PrepareRelease    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/PrepareRelease    2011-01-11 16:49:55 UTC (rev 583)
@@ -12,6 +12,8 @@
 #             "knows" the relevant troff constructs that are used in the PCRE
 #             man pages.


+# CheckMan    A Perl script that checks man pages for typos in the mark up.
+
 # CleanTxt    A Perl script that cleans up the output of "nroff -man" by
 #             removing backspaces and other redundant text so as to produce
 #             a readable .txt file.
@@ -24,11 +26,20 @@
 #             doc/html can be deleted and re-created from scratch.



-# First, sort out the documentation
+# First, sort out the documentation. Remove pcredemo.3 first because it won't
+# pass the markup check (it is created below, using markup that none of the
+# other pages use).

cd doc
echo Processing documentation

+/bin/rm -f pcredemo.3
+
+# Check the remaining man pages
+
+../CheckMan *.1 *.3
+if [ $? != 0 ] ; then exit 1; fi
+
# Make Text form of the documentation. It needs some mangling to make it
# tidy for online reading. Concatenate all the .3 stuff, but omit the
# individual function pages.

Modified: code/trunk/doc/html/index.html
===================================================================
--- code/trunk/doc/html/index.html    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/html/index.html    2011-01-11 16:49:55 UTC (rev 583)
@@ -1,10 +1,10 @@
 <html>
-<!-- This is a manually maintained file that is the root of the HTML version of
-     the PCRE documentation. When the HTML documents are built from the man
-     page versions, the entire doc/html directory is emptied, this file is then
-     copied into doc/html/index.html, and the remaining files therein are
+<!-- This is a manually maintained file that is the root of the HTML version of 
+     the PCRE documentation. When the HTML documents are built from the man 
+     page versions, the entire doc/html directory is emptied, this file is then 
+     copied into doc/html/index.html, and the remaining files therein are 
      created by the 132html script.
--->
+-->      
 <head>
 <title>PCRE specification</title>
 </head>
@@ -74,11 +74,11 @@
 </table>


<p>
-There are also individual pages that summarize the interface for each function
+There are also individual pages that summarize the interface for each function
in the library:
</p>

-<table>
+<table>    


 <tr><td><a href="pcre_compile.html">pcre_compile</a></td>
     <td>&nbsp;&nbsp;Compile a regular expression</td></tr>
@@ -129,7 +129,7 @@


 <tr><td><a href="pcre_maketables.html">pcre_maketables</a></td>
     <td>&nbsp;&nbsp;Build character tables in current locale</td></tr>
-
+    
 <tr><td><a href="pcre_refcount.html">pcre_refcount</a></td>
     <td>&nbsp;&nbsp;Maintain reference count in compiled pattern</td></tr>



Modified: code/trunk/doc/html/pcre_compile2.html
===================================================================
--- code/trunk/doc/html/pcre_compile2.html    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/html/pcre_compile2.html    2011-01-11 16:49:55 UTC (rev 583)
@@ -31,8 +31,6 @@
 This function compiles a regular expression into an internal form. It is the
 same as <b>pcre_compile()</b>, except for the addition of the <i>errorcodeptr</i>
 argument. The arguments are:
-</P>
-<P>
 <pre>
   <i>pattern</i>       A zero-terminated string containing the
                   regular expression to be compiled


Modified: code/trunk/doc/html/pcrecpp.html
===================================================================
--- code/trunk/doc/html/pcrecpp.html    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/html/pcrecpp.html    2011-01-11 16:49:55 UTC (rev 583)
@@ -282,10 +282,7 @@
   Example: read lines of the form "var = value" from a string.
      string contents = ...;                 // Fill string somehow
      pcrecpp::StringPiece input(contents);  // Wrap in a StringPiece
-</PRE>
-</P>
-<P>
-<pre>
+
      string var;
      int value;
      pcrecpp::RE re("(\\w+) = (\\d+)\n");


Modified: code/trunk/doc/html/pcregrep.html
===================================================================
--- code/trunk/doc/html/pcregrep.html    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/html/pcregrep.html    2011-01-11 16:49:55 UTC (rev 583)
@@ -379,7 +379,7 @@
 large number of possibilities in their search trees. The classic example is a
 pattern that uses nested unlimited repeats. Internally, PCRE uses a function
 called <b>match()</b> which it calls repeatedly (sometimes recursively). The
-limit set by \fb--match-limit\fP is imposed on the number of times this
+limit set by <b>--match-limit</b> is imposed on the number of times this
 function is called during a match, which has the effect of limiting the amount
 of backtracking that can take place.
 <br>


Modified: code/trunk/doc/pcre.3
===================================================================
--- code/trunk/doc/pcre.3    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/pcre.3    2011-01-11 16:49:55 UTC (rev 583)
@@ -33,7 +33,7 @@
 \fBpcrecpp\fP
 .\"
 page has details of this interface. Other people's contributions can be found
-in the \fIContrib\fR directory at the primary FTP site, which is:
+in the \fIContrib\fP directory at the primary FTP site, which is:
 .sp
 .\" HTML <a href="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre">
 .\" </a>
@@ -42,22 +42,22 @@
 Details of exactly which Perl regular expression features are and are not
 supported by PCRE are given in separate documents. See the
 .\" HREF
-\fBpcrepattern\fR
+\fBpcrepattern\fP
 .\"
 and
 .\" HREF
-\fBpcrecompat\fR
+\fBpcrecompat\fP
 .\"
 pages. There is a syntax summary in the
 .\" HREF
-\fBpcresyntax\fR
+\fBpcresyntax\fP
 .\"
 page.
 .P
 Some features of PCRE can be included, excluded, or changed when the library is
 built. The
 .\" HREF
-\fBpcre_config()\fR
+\fBpcre_config()\fP
 .\"
 function makes it possible for a client to discover which features are
 available. The features themselves are described in the


Modified: code/trunk/doc/pcre.txt
===================================================================
--- code/trunk/doc/pcre.txt    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/pcre.txt    2011-01-11 16:49:55 UTC (rev 583)
@@ -2,7 +2,7 @@
 This file contains a concatenation of the PCRE man pages, converted to plain
 text format for ease of searching with a text editor, or for use on systems
 that do not have a man page processor. The small individual files that give
-synopses of each function in the library have not been included. Neither has
+synopses of each function in the library have not been included. Neither has 
 the pcredemo program. There are separate text files for the pcregrep and
 pcretest commands.
 -----------------------------------------------------------------------------
@@ -269,8 +269,8 @@
        Last updated: 13 November 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCREBUILD(3)                                                      PCREBUILD(3)



@@ -600,8 +600,8 @@
        Last updated: 29 September 2009
        Copyright (c) 1997-2009 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCREMATCHING(3)                                                PCREMATCHING(3)



@@ -804,8 +804,8 @@
        Last updated: 17 November 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCREAPI(3)                                                          PCREAPI(3)



@@ -2877,8 +2877,8 @@
        Last updated: 21 November 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCRECALLOUT(3)                                                  PCRECALLOUT(3)



@@ -3059,8 +3059,8 @@
        Last updated: 21 November 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCRECOMPAT(3)                                                    PCRECOMPAT(3)



@@ -3215,8 +3215,8 @@
        Last updated: 31 October 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCREPATTERN(3)                                                  PCREPATTERN(3)



@@ -5694,8 +5694,8 @@
        Last updated: 21 November 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCRESYNTAX(3)                                                    PCRESYNTAX(3)



@@ -6064,8 +6064,8 @@
        Last updated: 21 November 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCREPARTIAL(3)                                                  PCREPARTIAL(3)



@@ -6484,8 +6484,8 @@
        Last updated: 07 November 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCREPRECOMPILE(3)                                            PCREPRECOMPILE(3)



@@ -6512,6 +6512,7 @@


 SAVING A COMPILED PATTERN
+
        The value returned by pcre_compile() points to a single block of memory
        that  holds  the compiled pattern and associated data. You can find the
        length of this block in bytes by calling pcre_fullinfo() with an  argu-
@@ -6608,8 +6609,8 @@
        Last updated: 17 November 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCREPERFORM(3)                                                  PCREPERFORM(3)



@@ -6776,8 +6777,8 @@
        Last updated: 16 May 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCREPOSIX(3)                                                      PCREPOSIX(3)



@@ -7039,8 +7040,8 @@
        Last updated: 16 May 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCRECPP(3)                                                          PCRECPP(3)



@@ -7380,8 +7381,8 @@

        Last updated: 17 March 2009
 ------------------------------------------------------------------------------
-
-
+ 
+ 
 PCRESAMPLE(3)                                                    PCRESAMPLE(3)



@@ -7616,5 +7617,5 @@
        Last updated: 03 January 2010
        Copyright (c) 1997-2010 University of Cambridge.
 ------------------------------------------------------------------------------
-
-
+ 
+ 


Modified: code/trunk/doc/pcre_compile.3
===================================================================
--- code/trunk/doc/pcre_compile.3    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/pcre_compile.3    2011-01-11 16:49:55 UTC (rev 583)
@@ -20,12 +20,12 @@
 same as \fBpcre_compile2()\fP, except for the absence of the \fIerrorcodeptr\fP
 argument. Its arguments are:
 .sp
-  \fIpattern\fR       A zero-terminated string containing the
+  \fIpattern\fP       A zero-terminated string containing the
                   regular expression to be compiled
-  \fIoptions\fR       Zero or more option bits
-  \fIerrptr\fR        Where to put an error message
-  \fIerroffset\fR     Offset in pattern where error was found
-  \fItableptr\fR      Pointer to character tables, or NULL to
+  \fIoptions\fP       Zero or more option bits
+  \fIerrptr\fP        Where to put an error message
+  \fIerroffset\fP     Offset in pattern where error was found
+  \fItableptr\fP      Pointer to character tables, or NULL to
                   use the built-in default
 .sp
 The option bits are:
@@ -69,10 +69,10 @@
 .P
 There is a complete description of the PCRE native API in the
 .\" HREF
-\fBpcreapi\fR
+\fBpcreapi\fP
 .\"
 page and a description of the POSIX API in the
 .\" HREF
-\fBpcreposix\fR
+\fBpcreposix\fP
 .\"
 page.


Modified: code/trunk/doc/pcre_compile2.3
===================================================================
--- code/trunk/doc/pcre_compile2.3    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/pcre_compile2.3    2011-01-11 16:49:55 UTC (rev 583)
@@ -21,15 +21,15 @@
 This function compiles a regular expression into an internal form. It is the
 same as \fBpcre_compile()\fP, except for the addition of the \fIerrorcodeptr\fP
 argument. The arguments are:
-
+.
 .sp
-  \fIpattern\fR       A zero-terminated string containing the
+  \fIpattern\fP       A zero-terminated string containing the
                   regular expression to be compiled
-  \fIoptions\fR       Zero or more option bits
+  \fIoptions\fP       Zero or more option bits
   \fIerrorcodeptr\fP  Where to put an error code
-  \fIerrptr\fR        Where to put an error message
-  \fIerroffset\fR     Offset in pattern where error was found
-  \fItableptr\fR      Pointer to character tables, or NULL to
+  \fIerrptr\fP        Where to put an error message
+  \fIerroffset\fP     Offset in pattern where error was found
+  \fItableptr\fP      Pointer to character tables, or NULL to
                   use the built-in default
 .sp
 The option bits are:
@@ -73,10 +73,10 @@
 .P
 There is a complete description of the PCRE native API in the
 .\" HREF
-\fBpcreapi\fR
+\fBpcreapi\fP
 .\"
 page and a description of the POSIX API in the
 .\" HREF
-\fBpcreposix\fR
+\fBpcreposix\fP
 .\"
 page.


Modified: code/trunk/doc/pcre_config.3
===================================================================
--- code/trunk/doc/pcre_config.3    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/pcre_config.3    2011-01-11 16:49:55 UTC (rev 583)
@@ -16,8 +16,8 @@
 features are available in the version of the PCRE library it is using. Its
 arguments are as follows:
 .sp
-  \fIwhat\fR     A code specifying what information is required
-  \fIwhere\fR    Points to where to put the data
+  \fIwhat\fP     A code specifying what information is required
+  \fIwhere\fP    Points to where to put the data
 .sp
 The available codes are:
 .sp
@@ -36,7 +36,7 @@
                                  1             CR, LF, or CRLF only
   PCRE_CONFIG_POSIX_MALLOC_THRESHOLD
                             Threshold of return slots, above
-                              which \fBmalloc()\fR is used by
+                              which \fBmalloc()\fP is used by
                               the POSIX API
   PCRE_CONFIG_STACKRECURSE  Recursion implementation (1=stack 0=heap)
   PCRE_CONFIG_UTF8          Availability of UTF-8 support (1=yes 0=no)
@@ -48,10 +48,10 @@
 .P
 There is a complete description of the PCRE native API in the
 .\" HREF
-\fBpcreapi\fR
+\fBpcreapi\fP
 .\"
 page and a description of the POSIX API in the
 .\" HREF
-\fBpcreposix\fR
+\fBpcreposix\fP
 .\"
 page.


Modified: code/trunk/doc/pcrecpp.3
===================================================================
--- code/trunk/doc/pcrecpp.3    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/pcrecpp.3    2011-01-11 16:49:55 UTC (rev 583)
@@ -195,11 +195,11 @@
   RE_Options & set_caseless(bool)
 .sp
 which sets or unsets the modifier. Moreover, PCRE_EXTRA_MATCH_LIMIT can be
-accessed through the \fBset_match_limit()\fR and \fBmatch_limit()\fR member
-functions. Setting \fImatch_limit\fR to a non-zero value will limit the
+accessed through the \fBset_match_limit()\fP and \fBmatch_limit()\fP member
+functions. Setting \fImatch_limit\fP to a non-zero value will limit the
 execution of pcre to keep it from doing bad things like blowing the stack or
 taking an eternity to return a result. A value of 5000 is good enough to stop
-stack blowup in a 2MB thread stack. Setting \fImatch_limit\fR to zero disables
+stack blowup in a 2MB thread stack. Setting \fImatch_limit\fP to zero disables
 match limiting. Alternatively, you can call \fBmatch_limit_recursion()\fP
 which uses PCRE_EXTRA_MATCH_LIMIT_RECURSION to limit how much PCRE
 recurses. \fBmatch_limit()\fP limits the number of matches PCRE does;
@@ -207,7 +207,7 @@
 therefore the amount of stack that is used.
 .P
 Normally, to pass one or more modifiers to a RE class, you declare
-a \fIRE_Options\fR object, set the appropriate options, and pass this
+a \fIRE_Options\fP object, set the appropriate options, and pass this
 object to a RE constructor. Example:
 .sp
    RE_options opt;
@@ -216,7 +216,7 @@
 .sp
 RE_options has two constructors. The default constructor takes no arguments and
 creates a set of flags that are off by default. The optional parameter
-\fIoption_flags\fR is to facilitate transfer of legacy code from C programs.
+\fIoption_flags\fP is to facilitate transfer of legacy code from C programs.
 This lets you do
 .sp
    RE(pattern,
@@ -230,13 +230,13 @@
 .sp
 If you are going to pass one of the most used modifiers, there are some
 convenience functions that return a RE_Options class with the
-appropriate modifier already set: \fBCASELESS()\fR, \fBUTF8()\fR,
-\fBMULTILINE()\fR, \fBDOTALL\fR(), and \fBEXTENDED()\fR.
+appropriate modifier already set: \fBCASELESS()\fP, \fBUTF8()\fP,
+\fBMULTILINE()\fP, \fBDOTALL\fP(), and \fBEXTENDED()\fP.
 .P
 If you need to set several options at once, and you don't want to go through
 the pains of declaring a RE_Options object and setting several options, there
 is a parallel method that give you such ability on the fly. You can concatenate
-several \fBset_xxxxx()\fR member functions, since each of them returns a
+several \fBset_xxxxx()\fP member functions, since each of them returns a
 reference to its class object. For example, to pass PCRE_CASELESS,
 PCRE_EXTENDED, and PCRE_MULTILINE to a RE with one statement, you may write:
 .sp
@@ -260,7 +260,7 @@
   Example: read lines of the form "var = value" from a string.
      string contents = ...;                 // Fill string somehow
      pcrecpp::StringPiece input(contents);  // Wrap in a StringPiece
-
+.sp
      string var;
      int value;
      pcrecpp::RE re("(\e\ew+) = (\e\ed+)\en");


Modified: code/trunk/doc/pcregrep.1
===================================================================
--- code/trunk/doc/pcregrep.1    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/pcregrep.1    2011-01-11 16:49:55 UTC (rev 583)
@@ -319,7 +319,7 @@
 large number of possibilities in their search trees. The classic example is a
 pattern that uses nested unlimited repeats. Internally, PCRE uses a function
 called \fBmatch()\fP which it calls repeatedly (sometimes recursively). The
-limit set by \fb--match-limit\fP is imposed on the number of times this
+limit set by \fB--match-limit\fP is imposed on the number of times this
 function is called during a match, which has the effect of limiting the amount
 of backtracking that can take place.
 .sp


Modified: code/trunk/doc/pcreprecompile.3
===================================================================
--- code/trunk/doc/pcreprecompile.3    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/doc/pcreprecompile.3    2011-01-11 16:49:55 UTC (rev 583)
@@ -24,7 +24,7 @@
 .
 .SH "SAVING A COMPILED PATTERN"
 .rs
-.sh
+.sp
 The value returned by \fBpcre_compile()\fP points to a single block of memory
 that holds the compiled pattern and associated data. You can find the length of
 this block in bytes by calling \fBpcre_fullinfo()\fP with an argument of


Modified: code/trunk/maint/README
===================================================================
--- code/trunk/maint/README    2010-12-10 11:41:01 UTC (rev 582)
+++ code/trunk/maint/README    2011-01-11 16:49:55 UTC (rev 583)
@@ -35,12 +35,12 @@
                  Unicode web site. Run this script in the "maint" directory.
                  The generated file contains the tables for a 2-stage lookup
                  of Unicode properties.
-                 
+
 pcre_chartables.c.non-standard
                  This is a set of character tables that came from a Windows
                  system. It has characters greater than 128 that are set as
                  spaces, amongst other things. I kept it so that it can be
-                 used for testing from time to time.    
+                 used for testing from time to time.


 README           This file.


@@ -117,34 +117,35 @@
. Test with valgrind by running "RunTest valgrind". There is also "RunGrepTest
valgrind", though that takes quite a long time.

-. Test with the emulated memmove() function by undefining HAVE_MEMMOVE and
- HAVE_BCOPY in config.h. You may see a number of "pcre_memmove defined but not
- used" warnings for the modules in which there is no call to memmove(). These
- can be ignored.
+. It is possible to test with the emulated memmove() function by undefining
+ HAVE_MEMMOVE and HAVE_BCOPY in config.h, though I do not do this often. You
+ may see a number of "pcre_memmove defined but not used" warnings for the
+ modules in which there is no call to memmove(). These can be ignored.

. Documentation: check AUTHORS, COPYING, ChangeLog (check version and date),
INSTALL, LICENCE, NEWS (check version and date), NON-UNIX-USE, and README.
Many of these won't need changing, but over the long term things do change.

-. Man pages: Check all man pages for \ not followed by e or f or " because
- that indicates a markup error. However, there is one exception: pcredemo.3,
- which is created from the pcredemo.c program. It contains three instances
- of \\n.
+. I used to test new releases myself on a number of different operating
+ systems, using different compilers as well. For example, on Solaris it is
+ helpful to test using Sun's cc compiler as a change from gcc. Adding
+ -xarch=v9 to the cc options does a 64-bit test, but it also needs -S 64 for
+ pcretest to increase the stack size for test 2. Since I retired I can no
+ longer do this, but instead I rely on putting out release candidates for
+ folks on the pcre-dev list to test.

-. When the release is built, test it on a number of different operating
- systems if possible, and using different compilers as well. For example,
- on Solaris it is helpful to test using Sun's cc compiler as a change from
- gcc. Adding -xarch=v9 to the cc options does a 64-bit test, but it also
- needs -S 64 for pcretest to increase the stack size for test 2.

-
Making a PCRE release
=====================

Run PrepareRelease and commit the files that it changes (by removing trailing
-spaces). Then run "make distcheck" to create the tarballs and the zipball.
-Double-check with "svn status", then create an SVN tagged copy:
+spaces). The first thing this script does is to run CheckMan on the man pages;
+if it finds any markup errors, it reports them and then aborts.

+Once PrepareRelease has run clean, run "make distcheck" to create the tarballs
+and the zipball. Double-check with "svn status", then create an SVN tagged
+copy:
+
   svn copy svn://vcs.exim.org/pcre/code/trunk \
            svn://vcs.exim.org/pcre/code/tags/pcre-8.xx


@@ -204,18 +205,23 @@

. Unicode

+  * There has been a request for direct support of 16-bit characters and
+    UTF-16 (Bugzilla #1049). However, since Unicode is moving beyond purely
+    16-bit characters, is this worth it at all? One possible way of handling
+    16-bit characters would be to "load" them in the same way that UTF-8
+    characters are loaded. Another possibility is to provide a set of
+    translation functions, and build an index during translation so that the
+    returned offsets can automatically be translated (using the index) after a
+    match.
+
   * A different approach to Unicode might be to use a typedef to do everything
     in unsigned shorts instead of unsigned chars. Actually, we'd have to have a
     new typedef to distinguish data from bits of compiled pattern that are in
     bytes, I think. There would need to be conversion functions in and out. I
     don't think this is particularly trivial - and anyway, Unicode now has
-    characters that need more than 16 bits, so is this at all sensible?
+    characters that need more than 16 bits, so is this at all sensible? I
+    suspect not.


-  * There has been a request for direct support of 16-bit characters and
-    UTF-16. However, since Unicode is moving beyond purely 16-bit characters,
-    is this worth it at all? One possible way of handling 16-bit characters
-    would be to "load" them in the same way that UTF-8 characters are loaded.
-
 . Allow errorptr and erroroffset to be NULL. I don't like this idea.


. Line endings:
@@ -315,4 +321,4 @@
Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
-Last updated: 24 November 2010
+Last updated: 12 January 2011