[Pcre-svn] [1703] code/trunk: File tidies for 8.41-RC1 relea…

Top Page
Delete this message
Author: Subversion repository
Date:  
To: pcre-svn
Subject: [Pcre-svn] [1703] code/trunk: File tidies for 8.41-RC1 release.
Revision: 1703
          http://vcs.pcre.org/viewvc?view=rev&revision=1703
Author:   ph10
Date:     2017-06-13 17:53:16 +0100 (Tue, 13 Jun 2017)
Log Message:
-----------
File tidies for 8.41-RC1 release.


Modified Paths:
--------------
    code/trunk/ChangeLog
    code/trunk/NEWS
    code/trunk/configure.ac
    code/trunk/doc/html/pcrejit.html
    code/trunk/doc/html/pcretest.html
    code/trunk/doc/pcre.txt
    code/trunk/doc/pcretest.1
    code/trunk/doc/pcretest.txt
    code/trunk/maint/ManyConfigTests
    code/trunk/pcre_compile.c
    code/trunk/pcre_internal.h
    code/trunk/pcregrep.c
    code/trunk/pcretest.c


Modified: code/trunk/ChangeLog
===================================================================
--- code/trunk/ChangeLog    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/ChangeLog    2017-06-13 16:53:16 UTC (rev 1703)
@@ -4,50 +4,50 @@
 Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All
 development is happening in the PCRE2 10.xx series.


-Version 8.41
-------------
+Version 8.41 13-June-2017
+-------------------------

-1. Fixed typo in CMakeLists.txt (wrong number of arguments for
+1. Fixed typo in CMakeLists.txt (wrong number of arguments for
PCRE_STATIC_RUNTIME (affects MSVC only).

-2. Issue 1 for 8.40 below was not correctly fixed. If pcregrep in multiline
-mode with --only-matching matched several lines, it restarted scanning at the
-next line instead of moving on to the end of the matched string, which can be
+2. Issue 1 for 8.40 below was not correctly fixed. If pcregrep in multiline
+mode with --only-matching matched several lines, it restarted scanning at the
+next line instead of moving on to the end of the matched string, which can be
several lines after the start.

3. Fix a missing else in the JIT compiler reported by 'idaifish'.

-4. A (?# style comment is now ignored between a basic quantifier and a
+4. A (?# style comment is now ignored between a basic quantifier and a
following '+' or '?' (example: /X+(?#comment)?Y/.

-5. Avoid use of a potentially overflowing buffer in pcregrep (patch by Petr
+5. Avoid use of a potentially overflowing buffer in pcregrep (patch by Petr
Pisar).

-6. Fuzzers have reported issues in pcretest. These are NOT serious (it is,
-after all, just a test program). However, to stop the reports, some easy ones
+6. Fuzzers have reported issues in pcretest. These are NOT serious (it is,
+after all, just a test program). However, to stop the reports, some easy ones
are fixed:

     (a) Check for values < 256 when calling isprint() in pcretest.
-    (b) Give an error for too big a number after \O. 
-    
-7.  In the 32-bit library in non-UTF mode, an attempt to find a Unicode 
-property for a character with a code point greater than 0x10ffff (the Unicode 
+    (b) Give an error for too big a number after \O.
+
+7.  In the 32-bit library in non-UTF mode, an attempt to find a Unicode
+property for a character with a code point greater than 0x10ffff (the Unicode
 maximum) caused a crash.


8. The alternative matching function, pcre_dfa_exec() misbehaved if it
encountered a character class with a possessive repeat, for example [a-f]{3}+.

-9. When pcretest called pcre_copy_substring() in 32-bit mode, it set the buffer
+9. When pcretest called pcre_copy_substring() in 32-bit mode, it set the buffer
length incorrectly, which could result in buffer overflow.

10. Remove redundant line of code (accidentally left in ages ago).

-11. Applied C++ patch from Irfan Adilovic to guard 'using std::' directives
+11. Applied C++ patch from Irfan Adilovic to guard 'using std::' directives
with namespace pcrecpp (Bugzilla #2084).

12. Remove a duplication typo in pcre_tables.c.

-13. Fix returned offsets from regexec() when REG_STARTEND is used with a
+13. Fix returned offsets from regexec() when REG_STARTEND is used with a
starting offset greater than zero.



Modified: code/trunk/NEWS
===================================================================
--- code/trunk/NEWS    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/NEWS    2017-06-13 16:53:16 UTC (rev 1703)
@@ -1,6 +1,12 @@
 News about PCRE releases
 ------------------------


+Release 8.41 13-June-2017
+-------------------------
+
+This is a bug-fix release.
+
+
Release 8.40 11-January-2017
----------------------------


Modified: code/trunk/configure.ac
===================================================================
--- code/trunk/configure.ac    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/configure.ac    2017-06-13 16:53:16 UTC (rev 1703)
@@ -11,16 +11,16 @@
 m4_define(pcre_major, [8])
 m4_define(pcre_minor, [41])
 m4_define(pcre_prerelease, [-RC1])
-m4_define(pcre_date, [2017-02-01])
+m4_define(pcre_date, [2017-06-13])


# NOTE: The CMakeLists.txt file searches for the above variables in the first
# 50 lines of this file. Please update that if the variables above are moved.

# Libtool shared library interface versions (current:revision:age)
-m4_define(libpcre_version, [3:8:2])
-m4_define(libpcre16_version, [2:8:2])
-m4_define(libpcre32_version, [0:8:0])
-m4_define(libpcreposix_version, [0:4:0])
+m4_define(libpcre_version, [3:9:2])
+m4_define(libpcre16_version, [2:9:2])
+m4_define(libpcre32_version, [0:9:0])
+m4_define(libpcreposix_version, [0:5:0])
m4_define(libpcrecpp_version, [0:1:0])

AC_PREREQ(2.57)

Modified: code/trunk/doc/html/pcrejit.html
===================================================================
--- code/trunk/doc/html/pcrejit.html    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/doc/html/pcrejit.html    2017-06-13 16:53:16 UTC (rev 1703)
@@ -79,9 +79,11 @@
 </P>
 <P>
 If your program may sometimes be linked with versions of PCRE that are older
-than 8.20, but you want to use JIT when it is available, you can test
-the values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT macro such
-as PCRE_CONFIG_JIT, for compile-time control of your code.
+than 8.20, but you want to use JIT when it is available, you can test the
+values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT macro such as
+PCRE_CONFIG_JIT, for compile-time control of your code. Also beware that the
+<b>pcre_jit_exec()</b> function was not available before 8.32. See "JIT FAST
+PATH API" section below for details.
 </P>
 <br><a name="SEC4" href="#TOC1">SIMPLE USE OF JIT</a><br>
 <P>
@@ -428,6 +430,12 @@
 Bypassing the sanity checks and the <b>pcre_exec()</b> wrapping can give
 speedups of more than 10%.
 </P>
+<P>
+Note that the <b>pcre_jit_exec()</b> function is not available in versions of
+PCRE before 8.32 (released in November 2012). If you need to support versions
+that old you must either use the slower <b>pcre_exec()</b>, or switch between
+the two codepaths by checking the values of PCRE_MAJOR and PCRE_MINOR.
+</P>
 <br><a name="SEC12" href="#TOC1">SEE ALSO</a><br>
 <P>
 <b>pcreapi</b>(3)
@@ -443,9 +451,9 @@
 </P>
 <br><a name="SEC14" href="#TOC1">REVISION</a><br>
 <P>
-Last updated: 17 March 2013
+Last updated: 13 June 2017
 <br>
-Copyright &copy; 1997-2013 University of Cambridge.
+Copyright &copy; 1997-2017 University of Cambridge.
 <br>
 <p>
 Return to the <a href="index.html">PCRE index page</a>.


Modified: code/trunk/doc/html/pcretest.html
===================================================================
--- code/trunk/doc/html/pcretest.html    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/doc/html/pcretest.html    2017-06-13 16:53:16 UTC (rev 1703)
@@ -74,6 +74,11 @@
 maximum portability, therefore, it is safest to use only ASCII characters in
 <b>pcretest</b> input files.
 </P>
+<P>
+The input is processed using using C's string functions, so must not
+contain binary zeroes, even though in Unix-like environments, <b>fgets()</b>
+treats any bytes other than newline as data characters.
+</P>
 <br><a name="SEC3" href="#TOC1">PCRE's 8-BIT, 16-BIT AND 32-BIT LIBRARIES</a><br>
 <P>
 From release 8.30, two separate PCRE libraries can be built. The original one
@@ -1149,9 +1154,9 @@
 </P>
 <br><a name="SEC17" href="#TOC1">REVISION</a><br>
 <P>
-Last updated: 09 February 2014
+Last updated: 23 February 2017
 <br>
-Copyright &copy; 1997-2014 University of Cambridge.
+Copyright &copy; 1997-2017 University of Cambridge.
 <br>
 <p>
 Return to the <a href="index.html">PCRE index page</a>.


Modified: code/trunk/doc/pcre.txt
===================================================================
--- code/trunk/doc/pcre.txt    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/doc/pcre.txt    2017-06-13 16:53:16 UTC (rev 1703)
@@ -8365,7 +8365,9 @@
        If  your program may sometimes be linked with versions of PCRE that are
        older than 8.20, but you want to use JIT when it is available, you  can
        test the values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT
-       macro such as PCRE_CONFIG_JIT, for compile-time control of your code.
+       macro such as PCRE_CONFIG_JIT, for compile-time control of  your  code.
+       Also  beware that the pcre_jit_exec() function was not available before
+       8.32. See "JIT FAST PATH API" section below for details.



 SIMPLE USE OF JIT
@@ -8696,7 +8698,13 @@
        Bypassing  the  sanity  checks  and  the  pcre_exec() wrapping can give
        speedups of more than 10%.


+       Note that the pcre_jit_exec() function is not available in versions  of
+       PCRE  before  8.32  (released in November 2012). If you need to support
+       versions that old you must either use the slower pcre_exec(), or switch
+       between  the  two  codepaths  by  checking the values of PCRE_MAJOR and
+       PCRE_MINOR.


+
SEE ALSO

        pcreapi(3)
@@ -8711,8 +8719,8 @@


REVISION

-       Last updated: 17 March 2013
-       Copyright (c) 1997-2013 University of Cambridge.
+       Last updated: 13 June 2017
+       Copyright (c) 1997-2017 University of Cambridge.
 ------------------------------------------------------------------------------




Modified: code/trunk/doc/pcretest.1
===================================================================
--- code/trunk/doc/pcretest.1    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/doc/pcretest.1    2017-06-13 16:53:16 UTC (rev 1703)
@@ -51,7 +51,7 @@
 maximum portability, therefore, it is safest to use only ASCII characters in
 \fBpcretest\fP input files.
 .P
-The input is processed using using C's string functions, so must not          
+The input is processed using using C's string functions, so must not
 contain binary zeroes, even though in Unix-like environments, \fBfgets()\fP
 treats any bytes other than newline as data characters.
 .


Modified: code/trunk/doc/pcretest.txt
===================================================================
--- code/trunk/doc/pcretest.txt    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/doc/pcretest.txt    2017-06-13 16:53:16 UTC (rev 1703)
@@ -39,7 +39,11 @@
        For  maximum  portability,  therefore,  it  is safest to use only ASCII
        characters in pcretest input files.


+       The input is processed using using C's string functions,  so  must  not
+       contain  binary  zeroes, even though in Unix-like environments, fgets()
+       treats any bytes other than newline as data characters.


+
PCRE's 8-BIT, 16-BIT AND 32-BIT LIBRARIES

        From release 8.30, two separate PCRE libraries can be built. The origi-
@@ -1083,5 +1087,5 @@


REVISION

-       Last updated: 09 February 2014
-       Copyright (c) 1997-2014 University of Cambridge.
+       Last updated: 23 February 2017
+       Copyright (c) 1997-2017 University of Cambridge.


Modified: code/trunk/maint/ManyConfigTests
===================================================================
--- code/trunk/maint/ManyConfigTests    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/maint/ManyConfigTests    2017-06-13 16:53:16 UTC (rev 1703)
@@ -38,6 +38,7 @@
 if [ $? -eq 0 ] && grep GCC zzz >/dev/null; then
   ISGCC="yes"
   CFLAGS="$CFLAGS -Wall"
+  CFLAGS="$CFLAGS -Wno-implicit-fallthrough"
   CFLAGS="$CFLAGS -Wno-overlength-strings"
   CFLAGS="$CFLAGS -Wpointer-arith"
   CFLAGS="$CFLAGS -Wwrite-strings"


Modified: code/trunk/pcre_compile.c
===================================================================
--- code/trunk/pcre_compile.c    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/pcre_compile.c    2017-06-13 16:53:16 UTC (rev 1703)
@@ -5739,9 +5739,9 @@
       ptr = p - 1;    /* Character before the next significant one. */
       }


-    /* We also need to skip over (?# comments, which are not dependent on 
+    /* We also need to skip over (?# comments, which are not dependent on
     extended mode. */
-    
+
     if (ptr[1] == CHAR_LEFT_PARENTHESIS && ptr[2] == CHAR_QUESTION_MARK &&
         ptr[3] == CHAR_NUMBER_SIGN)
       {


Modified: code/trunk/pcre_internal.h
===================================================================
--- code/trunk/pcre_internal.h    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/pcre_internal.h    2017-06-13 16:53:16 UTC (rev 1703)
@@ -2786,12 +2786,12 @@
 #define REAL_GET_UCD(ch) (PRIV(ucd_records) + \
         PRIV(ucd_stage2)[PRIV(ucd_stage1)[(int)(ch) / UCD_BLOCK_SIZE] * \
         UCD_BLOCK_SIZE + (int)(ch) % UCD_BLOCK_SIZE])
-        
+
 #ifdef COMPILE_PCRE32
 #define GET_UCD(ch) ((ch > 0x10ffff)? PRIV(dummy_ucd_record) : REAL_GET_UCD(ch))
 #else
 #define GET_UCD(ch) REAL_GET_UCD(ch)
-#endif 
+#endif


 #define UCD_CHARTYPE(ch)    GET_UCD(ch)->chartype
 #define UCD_SCRIPT(ch)      GET_UCD(ch)->script


Modified: code/trunk/pcregrep.c
===================================================================
--- code/trunk/pcregrep.c    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/pcregrep.c    2017-06-13 16:53:16 UTC (rev 1703)
@@ -1816,18 +1816,18 @@


         /* If the current match ended past the end of the line (only possible
         in multiline mode), we must move on to the line in which it did end
-        before searching for more matches. */                                
-                                                          
+        before searching for more matches. */
+
         while (startoffset > (int)linelength)
-          {                                                                  
-          matchptr = ptr += linelength + endlinelength;                      
-          filepos += (int)(linelength + endlinelength);                        
-          linenumber++;                    
+          {
+          matchptr = ptr += linelength + endlinelength;
+          filepos += (int)(linelength + endlinelength);
+          linenumber++;
           startoffset -= (int)(linelength + endlinelength);
           t = end_of_line(ptr, endptr, &endlinelength);
           linelength = t - ptr - endlinelength;
-          length = (size_t)(endptr - ptr); 
-          }              
+          length = (size_t)(endptr - ptr);
+          }


         goto ONLY_MATCHING_RESTART;
         }


Modified: code/trunk/pcretest.c
===================================================================
--- code/trunk/pcretest.c    2017-06-13 16:09:24 UTC (rev 1702)
+++ code/trunk/pcretest.c    2017-06-13 16:53:16 UTC (rev 1703)
@@ -4834,16 +4834,16 @@
         continue;


         case 'O':
-        while(isdigit(*p)) 
+        while(isdigit(*p))
           {
           if (n > (INT_MAX-10)/10)   /* Hack to stop fuzzers */
             {
             printf("** \\O argument is too big\n");
             yield = 1;
-            goto EXIT;   
-            }  
+            goto EXIT;
+            }
           n = n * 10 + *p++ - '0';
-          } 
+          }
         if (n > size_offsets_max)
           {
           size_offsets_max = n;