glib2 3.1.0-x86-mingw32 → 3.1.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -2
  3. data/ext/glib2/rbglib.c +2 -0
  4. data/ext/glib2/rbglib.h +1 -1
  5. data/ext/glib2/rbglib2conversions.h +3 -0
  6. data/ext/glib2/rbglib_datetime.c +250 -0
  7. data/ext/glib2/rbglib_timezone.c +82 -0
  8. data/ext/glib2/rbgprivate.h +2 -0
  9. data/lib/2.2/glib2.so +0 -0
  10. data/lib/2.3/glib2.so +0 -0
  11. data/lib/2.4/glib2.so +0 -0
  12. data/lib/glib2.rb +15 -7
  13. data/lib/gnome2/rake/external-package.rb +35 -5
  14. data/lib/gnome2/rake/source-download-task.rb +25 -5
  15. data/lib/mkmf-gnome2.rb +1 -6
  16. data/test/test-date-time.rb +112 -0
  17. data/test/test-time-zone.rb +31 -0
  18. data/vendor/local/bin/asn1Coding.exe +0 -0
  19. data/vendor/local/bin/asn1Decoding.exe +0 -0
  20. data/vendor/local/bin/asn1Parser.exe +0 -0
  21. data/vendor/local/bin/envsubst.exe +0 -0
  22. data/vendor/local/bin/gdbus.exe +0 -0
  23. data/vendor/local/bin/gettext.exe +0 -0
  24. data/vendor/local/bin/gio-querymodules.exe +0 -0
  25. data/vendor/local/bin/gio.exe +0 -0
  26. data/vendor/local/bin/glib-compile-resources.exe +0 -0
  27. data/vendor/local/bin/glib-compile-schemas.exe +0 -0
  28. data/vendor/local/bin/glib-genmarshal.exe +0 -0
  29. data/vendor/local/bin/gobject-query.exe +0 -0
  30. data/vendor/local/bin/gresource.exe +0 -0
  31. data/vendor/local/bin/gsettings.exe +0 -0
  32. data/vendor/local/bin/gspawn-win32-helper-console.exe +0 -0
  33. data/vendor/local/bin/gspawn-win32-helper.exe +0 -0
  34. data/vendor/local/bin/iconv.exe +0 -0
  35. data/vendor/local/bin/idn.exe +0 -0
  36. data/vendor/local/bin/libasprintf-0.dll +0 -0
  37. data/vendor/local/bin/libcharset-1.dll +0 -0
  38. data/vendor/local/bin/libffi-6.dll +0 -0
  39. data/vendor/local/bin/libgio-2.0-0.dll +0 -0
  40. data/vendor/local/bin/libglib-2.0-0.dll +0 -0
  41. data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
  42. data/vendor/local/bin/libgmp-10.dll +0 -0
  43. data/vendor/local/bin/libgnutls-30.dll +0 -0
  44. data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
  45. data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
  46. data/vendor/local/bin/libhogweed-4-2.dll +0 -0
  47. data/vendor/local/bin/libiconv-2.dll +0 -0
  48. data/vendor/local/bin/libidn-11.dll +0 -0
  49. data/vendor/local/bin/libintl-8.dll +0 -0
  50. data/vendor/local/bin/libnettle-6-2.dll +0 -0
  51. data/vendor/local/bin/libp11-kit-0.dll +0 -0
  52. data/vendor/local/bin/libpcre-1.dll +0 -0
  53. data/vendor/local/bin/libpcrecpp-0.dll +0 -0
  54. data/vendor/local/bin/libpcreposix-0.dll +0 -0
  55. data/vendor/local/bin/libtasn1-6.dll +0 -0
  56. data/vendor/local/bin/nettle-hash.exe +0 -0
  57. data/vendor/local/bin/nettle-lfib-stream.exe +0 -0
  58. data/vendor/local/bin/nettle-pbkdf2.exe +0 -0
  59. data/vendor/local/bin/ngettext.exe +0 -0
  60. data/vendor/local/bin/p11-kit.exe +0 -0
  61. data/vendor/local/bin/pcre-config +1 -1
  62. data/vendor/local/bin/pcregrep.exe +0 -0
  63. data/vendor/local/bin/pcretest.exe +0 -0
  64. data/vendor/local/bin/pkcs1-conv.exe +0 -0
  65. data/vendor/local/bin/sexp-conv.exe +0 -0
  66. data/vendor/local/bin/trust.exe +0 -0
  67. data/vendor/local/include/pcre.h +2 -2
  68. data/vendor/local/lib/gio/modules/libgiognutls.dll +0 -0
  69. data/vendor/local/lib/gio/modules/libgiognutls.dll.a +0 -0
  70. data/vendor/local/lib/libasprintf.dll.a +0 -0
  71. data/vendor/local/lib/libcharset.dll.a +0 -0
  72. data/vendor/local/lib/libffi.dll.a +0 -0
  73. data/vendor/local/lib/libgio-2.0.dll.a +0 -0
  74. data/vendor/local/lib/libglib-2.0.dll.a +0 -0
  75. data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
  76. data/vendor/local/lib/libgmp.dll.a +0 -0
  77. data/vendor/local/lib/libgnutls.dll.a +0 -0
  78. data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
  79. data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
  80. data/vendor/local/lib/libhogweed.dll.a +0 -0
  81. data/vendor/local/lib/libiconv.dll.a +0 -0
  82. data/vendor/local/lib/libidn.dll.a +0 -0
  83. data/vendor/local/lib/libintl.dll.a +0 -0
  84. data/vendor/local/lib/libnettle.dll.a +0 -0
  85. data/vendor/local/lib/libp11-kit.dll.a +0 -0
  86. data/vendor/local/lib/libpcre.a +0 -0
  87. data/vendor/local/lib/libpcre.dll.a +0 -0
  88. data/vendor/local/lib/libpcre.la +1 -1
  89. data/vendor/local/lib/libpcrecpp.dll.a +0 -0
  90. data/vendor/local/lib/libpcreposix.a +0 -0
  91. data/vendor/local/lib/libpcreposix.dll.a +0 -0
  92. data/vendor/local/lib/libpcreposix.la +1 -1
  93. data/vendor/local/lib/libtasn1.dll.a +0 -0
  94. data/vendor/local/lib/p11-kit/p11-kit-remote.exe +0 -0
  95. data/vendor/local/lib/pkcs11/p11-kit-trust.dll +0 -0
  96. data/vendor/local/lib/pkcs11/p11-kit-trust.dll.a +0 -0
  97. data/vendor/local/lib/pkgconfig/libpcre.pc +1 -1
  98. data/vendor/local/lib/pkgconfig/libpcrecpp.pc +1 -1
  99. data/vendor/local/lib/pkgconfig/libpcreposix.pc +1 -1
  100. data/vendor/local/share/doc/pcre/AUTHORS +3 -3
  101. data/vendor/local/share/doc/pcre/ChangeLog +140 -1
  102. data/vendor/local/share/doc/pcre/LICENCE +3 -3
  103. data/vendor/local/share/doc/pcre/NEWS +15 -0
  104. data/vendor/local/share/doc/pcre/html/pcreapi.html +4 -5
  105. data/vendor/local/share/doc/pcre/html/pcrecompat.html +1 -1
  106. data/vendor/local/share/doc/pcre/html/pcrepattern.html +20 -17
  107. data/vendor/local/share/doc/pcre/pcre.txt +2024 -2020
  108. data/vendor/local/share/glib-2.0/codegen/__init__.pyc +0 -0
  109. data/vendor/local/share/glib-2.0/codegen/__init__.pyo +0 -0
  110. data/vendor/local/share/glib-2.0/codegen/codegen.pyc +0 -0
  111. data/vendor/local/share/glib-2.0/codegen/codegen.pyo +0 -0
  112. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyc +0 -0
  113. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyo +0 -0
  114. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyc +0 -0
  115. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyo +0 -0
  116. data/vendor/local/share/glib-2.0/codegen/config.pyc +0 -0
  117. data/vendor/local/share/glib-2.0/codegen/config.pyo +0 -0
  118. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyc +0 -0
  119. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyo +0 -0
  120. data/vendor/local/share/glib-2.0/codegen/parser.pyc +0 -0
  121. data/vendor/local/share/glib-2.0/codegen/parser.pyo +0 -0
  122. data/vendor/local/share/glib-2.0/codegen/utils.pyc +0 -0
  123. data/vendor/local/share/glib-2.0/codegen/utils.pyo +0 -0
  124. data/vendor/local/share/license/pcre/AUTHORS +3 -3
  125. data/vendor/local/share/man/man3/pcreapi.3 +5 -6
  126. data/vendor/local/share/man/man3/pcrecompat.3 +1 -1
  127. data/vendor/local/share/man/man3/pcrepattern.3 +20 -17
  128. metadata +11 -3
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -25,7 +25,7 @@ weak_library_names=''
25
25
  # Version information for libpcre.
26
26
  current=3
27
27
  age=2
28
- revision=6
28
+ revision=8
29
29
 
30
30
  # Is this an already installed library?
31
31
  installed=yes
Binary file
Binary file
Binary file
@@ -25,7 +25,7 @@ weak_library_names=''
25
25
  # Version information for libpcreposix.
26
26
  current=0
27
27
  age=0
28
- revision=3
28
+ revision=4
29
29
 
30
30
  # Is this an already installed library?
31
31
  installed=yes
Binary file
@@ -7,7 +7,7 @@ includedir=${prefix}/include
7
7
 
8
8
  Name: libpcre
9
9
  Description: PCRE - Perl compatible regular expressions C library with 8 bit character support
10
- Version: 8.38
10
+ Version: 8.40
11
11
  Libs: -L${libdir} -lpcre
12
12
  Libs.private:
13
13
  Cflags: -I${includedir}
@@ -7,6 +7,6 @@ includedir=${prefix}/include
7
7
 
8
8
  Name: libpcrecpp
9
9
  Description: PCRECPP - C++ wrapper for PCRE
10
- Version: 8.38
10
+ Version: 8.40
11
11
  Libs: -L${libdir} -lpcre -lpcrecpp
12
12
  Cflags: -I${includedir}
@@ -7,7 +7,7 @@ includedir=${prefix}/include
7
7
 
8
8
  Name: libpcreposix
9
9
  Description: PCREPosix - Posix compatible interface to libpcre
10
- Version: 8.38
10
+ Version: 8.40
11
11
  Libs: -L${libdir} -lpcreposix
12
12
  Cflags: -I${includedir}
13
13
  Requires.private: libpcre
@@ -8,7 +8,7 @@ Email domain: cam.ac.uk
8
8
  University of Cambridge Computing Service,
9
9
  Cambridge, England.
10
10
 
11
- Copyright (c) 1997-2015 University of Cambridge
11
+ Copyright (c) 1997-2017 University of Cambridge
12
12
  All rights reserved
13
13
 
14
14
 
@@ -19,7 +19,7 @@ Written by: Zoltan Herczeg
19
19
  Email local part: hzmester
20
20
  Emain domain: freemail.hu
21
21
 
22
- Copyright(c) 2010-2015 Zoltan Herczeg
22
+ Copyright(c) 2010-2017 Zoltan Herczeg
23
23
  All rights reserved.
24
24
 
25
25
 
@@ -30,7 +30,7 @@ Written by: Zoltan Herczeg
30
30
  Email local part: hzmester
31
31
  Emain domain: freemail.hu
32
32
 
33
- Copyright(c) 2009-2015 Zoltan Herczeg
33
+ Copyright(c) 2009-2017 Zoltan Herczeg
34
34
  All rights reserved.
35
35
 
36
36
 
@@ -4,12 +4,151 @@ ChangeLog for PCRE
4
4
  Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All
5
5
  development is happening in the PCRE2 10.xx series.
6
6
 
7
+ Version 8.40 11-January-2017
8
+ ----------------------------
9
+
10
+ 1. Using -o with -M in pcregrep could cause unnecessary repeated output when
11
+ the match extended over a line boundary.
12
+
13
+ 2. Applied Chris Wilson's second patch (Bugzilla #1681) to CMakeLists.txt for
14
+ MSVC static compilation, putting the first patch under a new option.
15
+
16
+ 3. Fix register overwite in JIT when SSE2 acceleration is enabled.
17
+
18
+ 4. Ignore "show all captures" (/=) for DFA matching.
19
+
20
+ 5. Fix JIT unaligned accesses on x86. Patch by Marc Mutz.
21
+
22
+ 6. In any wide-character mode (8-bit UTF or any 16-bit or 32-bit mode),
23
+ without PCRE_UCP set, a negative character type such as \D in a positive
24
+ class should cause all characters greater than 255 to match, whatever else
25
+ is in the class. There was a bug that caused this not to happen if a
26
+ Unicode property item was added to such a class, for example [\D\P{Nd}] or
27
+ [\W\pL].
28
+
29
+ 7. When pcretest was outputing information from a callout, the caret indicator
30
+ for the current position in the subject line was incorrect if it was after
31
+ an escape sequence for a character whose code point was greater than
32
+ \x{ff}.
33
+
34
+ 8. A pattern such as (?<RA>abc)(?(R)xyz) was incorrectly compiled such that
35
+ the conditional was interpreted as a reference to capturing group 1 instead
36
+ of a test for recursion. Any group whose name began with R was
37
+ misinterpreted in this way. (The reference interpretation should only
38
+ happen if the group's name is precisely "R".)
39
+
40
+ 9. A number of bugs have been mended relating to match start-up optimizations
41
+ when the first thing in a pattern is a positive lookahead. These all
42
+ applied only when PCRE_NO_START_OPTIMIZE was *not* set:
43
+
44
+ (a) A pattern such as (?=.*X)X$ was incorrectly optimized as if it needed
45
+ both an initial 'X' and a following 'X'.
46
+ (b) Some patterns starting with an assertion that started with .* were
47
+ incorrectly optimized as having to match at the start of the subject or
48
+ after a newline. There are cases where this is not true, for example,
49
+ (?=.*[A-Z])(?=.{8,16})(?!.*[\s]) matches after the start in lines that
50
+ start with spaces. Starting .* in an assertion is no longer taken as an
51
+ indication of matching at the start (or after a newline).
52
+
53
+
54
+ Version 8.39 14-June-2016
55
+ -------------------------
56
+
57
+ 1. If PCRE_AUTO_CALLOUT was set on a pattern that had a (?# comment between
58
+ an item and its qualifier (for example, A(?#comment)?B) pcre_compile()
59
+ misbehaved. This bug was found by the LLVM fuzzer.
60
+
61
+ 2. Similar to the above, if an isolated \E was present between an item and its
62
+ qualifier when PCRE_AUTO_CALLOUT was set, pcre_compile() misbehaved. This
63
+ bug was found by the LLVM fuzzer.
64
+
65
+ 3. Further to 8.38/46, negated classes such as [^[:^ascii:]\d] were also not
66
+ working correctly in UCP mode.
67
+
68
+ 4. The POSIX wrapper function regexec() crashed if the option REG_STARTEND
69
+ was set when the pmatch argument was NULL. It now returns REG_INVARG.
70
+
71
+ 5. Allow for up to 32-bit numbers in the ordin() function in pcregrep.
72
+
73
+ 6. An empty \Q\E sequence between an item and its qualifier caused
74
+ pcre_compile() to misbehave when auto callouts were enabled. This bug was
75
+ found by the LLVM fuzzer.
76
+
77
+ 7. If a pattern that was compiled with PCRE_EXTENDED started with white
78
+ space or a #-type comment that was followed by (?-x), which turns off
79
+ PCRE_EXTENDED, and there was no subsequent (?x) to turn it on again,
80
+ pcre_compile() assumed that (?-x) applied to the whole pattern and
81
+ consequently mis-compiled it. This bug was found by the LLVM fuzzer.
82
+
83
+ 8. A call of pcre_copy_named_substring() for a named substring whose number
84
+ was greater than the space in the ovector could cause a crash.
85
+
86
+ 9. Yet another buffer overflow bug involved duplicate named groups with a
87
+ group that reset capture numbers (compare 8.38/7 below). Once again, I have
88
+ just allowed for more memory, even if not needed. (A proper fix is
89
+ implemented in PCRE2, but it involves a lot of refactoring.)
90
+
91
+ 10. pcre_get_substring_list() crashed if the use of \K in a match caused the
92
+ start of the match to be earlier than the end.
93
+
94
+ 11. Migrating appropriate PCRE2 JIT improvements to PCRE.
95
+
96
+ 12. A pattern such as /(?<=((?C)0))/, which has a callout inside a lookbehind
97
+ assertion, caused pcretest to generate incorrect output, and also to read
98
+ uninitialized memory (detected by ASAN or valgrind).
99
+
100
+ 13. A pattern that included (*ACCEPT) in the middle of a sufficiently deeply
101
+ nested set of parentheses of sufficient size caused an overflow of the
102
+ compiling workspace (which was diagnosed, but of course is not desirable).
103
+
104
+ 14. And yet another buffer overflow bug involving duplicate named groups, this
105
+ time nested, with a nested back reference. Yet again, I have just allowed
106
+ for more memory, because anything more needs all the refactoring that has
107
+ been done for PCRE2. An example pattern that provoked this bug is:
108
+ /((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/ and the bug was
109
+ registered as CVE-2016-1283.
110
+
111
+ 15. pcretest went into a loop if global matching was requested with an ovector
112
+ size less than 2. It now gives an error message. This bug was found by
113
+ afl-fuzz.
114
+
115
+ 16. An invalid pattern fragment such as (?(?C)0 was not diagnosing an error
116
+ ("assertion expected") when (?(?C) was not followed by an opening
117
+ parenthesis.
118
+
119
+ 17. Fixed typo ("&&" for "&") in pcre_study(). Fortunately, this could not
120
+ actually affect anything, by sheer luck.
121
+
122
+ 18. Applied Chris Wilson's patch (Bugzilla #1681) to CMakeLists.txt for MSVC
123
+ static compilation.
124
+
125
+ 19. Modified the RunTest script to incorporate a valgrind suppressions file so
126
+ that certain errors, provoked by the SSE2 instruction set when JIT is used,
127
+ are ignored.
128
+
129
+ 20. A racing condition is fixed in JIT reported by Mozilla.
130
+
131
+ 21. Minor code refactor to avoid "array subscript is below array bounds"
132
+ compiler warning.
133
+
134
+ 22. Minor code refactor to avoid "left shift of negative number" warning.
135
+
136
+ 23. Fix typo causing compile error when 16- or 32-bit JIT is compiled without
137
+ UCP support.
138
+
139
+ 24. Refactor to avoid compiler warnings in pcrecpp.cc.
140
+
141
+ 25. Refactor to fix a typo in pcre_jit_test.c
142
+
143
+ 26. Patch to support compiling pcrecpp.cc with Intel compiler.
144
+
145
+
7
146
  Version 8.38 23-November-2015
8
147
  -----------------------------
9
148
 
10
149
  1. If a group that contained a recursive back reference also contained a
11
150
  forward reference subroutine call followed by a non-forward-reference
12
- subroutine call, for example /.((?2)(?R)\1)()/, pcre2_compile() failed to
151
+ subroutine call, for example /.((?2)(?R)\1)()/, pcre_compile() failed to
13
152
  compile correct code, leading to undefined behaviour or an internally
14
153
  detected error. This bug was discovered by the LLVM fuzzer.
15
154
 
@@ -25,7 +25,7 @@ Email domain: cam.ac.uk
25
25
  University of Cambridge Computing Service,
26
26
  Cambridge, England.
27
27
 
28
- Copyright (c) 1997-2015 University of Cambridge
28
+ Copyright (c) 1997-2017 University of Cambridge
29
29
  All rights reserved.
30
30
 
31
31
 
@@ -36,7 +36,7 @@ Written by: Zoltan Herczeg
36
36
  Email local part: hzmester
37
37
  Emain domain: freemail.hu
38
38
 
39
- Copyright(c) 2010-2015 Zoltan Herczeg
39
+ Copyright(c) 2010-2017 Zoltan Herczeg
40
40
  All rights reserved.
41
41
 
42
42
 
@@ -47,7 +47,7 @@ Written by: Zoltan Herczeg
47
47
  Email local part: hzmester
48
48
  Emain domain: freemail.hu
49
49
 
50
- Copyright(c) 2009-2015 Zoltan Herczeg
50
+ Copyright(c) 2009-2017 Zoltan Herczeg
51
51
  All rights reserved.
52
52
 
53
53
 
@@ -1,6 +1,21 @@
1
1
  News about PCRE releases
2
2
  ------------------------
3
3
 
4
+ Release 8.40 11-January-2017
5
+ ----------------------------
6
+
7
+ This is a bug-fix release.
8
+
9
+
10
+ Release 8.39 14-June-2016
11
+ -------------------------
12
+
13
+ Some appropriate PCRE2 JIT improvements have been retro-fitted to PCRE1. Apart
14
+ from that, this is another bug-fix release. Note that this library (now called
15
+ PCRE1) is now being maintained for bug fixes only. New projects are advised to
16
+ use the new PCRE2 libraries.
17
+
18
+
4
19
  Release 8.38 23-November-2015
5
20
  -----------------------------
6
21
 
@@ -315,9 +315,8 @@ documentation for details of how to do this. It is a non-standard way of
315
315
  building PCRE, for use in environments that have limited stacks. Because of the
316
316
  greater use of memory management, it runs more slowly. Separate functions are
317
317
  provided so that special-purpose external code can be used for this case. When
318
- used, these functions are always called in a stack-like manner (last obtained,
319
- first freed), and always for memory blocks of the same size. There is a
320
- discussion about PCRE's stack usage in the
318
+ used, these functions always allocate memory blocks of the same size. There is
319
+ a discussion about PCRE's stack usage in the
321
320
  <a href="pcrestack.html"><b>pcrestack</b></a>
322
321
  documentation.
323
322
  </P>
@@ -2913,9 +2912,9 @@ Cambridge CB2 3QH, England.
2913
2912
  </P>
2914
2913
  <br><a name="SEC26" href="#TOC1">REVISION</a><br>
2915
2914
  <P>
2916
- Last updated: 09 February 2014
2915
+ Last updated: 18 December 2015
2917
2916
  <br>
2918
- Copyright &copy; 1997-2014 University of Cambridge.
2917
+ Copyright &copy; 1997-2015 University of Cambridge.
2919
2918
  <br>
2920
2919
  <p>
2921
2920
  Return to the <a href="index.html">PCRE index page</a>.
@@ -128,7 +128,7 @@ the pattern /^(a(b)?)+$/ in Perl leaves $2 unset, but in PCRE it is set to "b".
128
128
  14. PCRE's handling of duplicate subpattern numbers and duplicate subpattern
129
129
  names is not as general as Perl's. This is a consequence of the fact the PCRE
130
130
  works internally just with numbers, using an external table to translate
131
- between numbers and names. In particular, a pattern such as (?|(?&#60;a&#62;A)|(?&#60;b)B),
131
+ between numbers and names. In particular, a pattern such as (?|(?&#60;a&#62;A)|(?&#60;b&#62;B),
132
132
  where the two capturing parentheses have the same number but different names,
133
133
  is not supported, and causes an error at compile time. If it were allowed, it
134
134
  would not be possible to distinguish which parentheses matched, because both
@@ -358,24 +358,24 @@ When PCRE is compiled in EBCDIC mode, \a, \e, \f, \n, \r, and \t
358
358
  generate the appropriate EBCDIC code values. The \c escape is processed
359
359
  as specified for Perl in the <b>perlebcdic</b> document. The only characters
360
360
  that are allowed after \c are A-Z, a-z, or one of @, [, \, ], ^, _, or ?. Any
361
- other character provokes a compile-time error. The sequence \@ encodes
362
- character code 0; the letters (in either case) encode characters 1-26 (hex 01
363
- to hex 1A); [, \, ], ^, and _ encode characters 27-31 (hex 1B to hex 1F), and
364
- \? becomes either 255 (hex FF) or 95 (hex 5F).
361
+ other character provokes a compile-time error. The sequence \c@ encodes
362
+ character code 0; after \c the letters (in either case) encode characters 1-26
363
+ (hex 01 to hex 1A); [, \, ], ^, and _ encode characters 27-31 (hex 1B to hex
364
+ 1F), and \c? becomes either 255 (hex FF) or 95 (hex 5F).
365
365
  </P>
366
366
  <P>
367
- Thus, apart from \?, these escapes generate the same character code values as
367
+ Thus, apart from \c?, these escapes generate the same character code values as
368
368
  they do in an ASCII environment, though the meanings of the values mostly
369
- differ. For example, \G always generates code value 7, which is BEL in ASCII
369
+ differ. For example, \cG always generates code value 7, which is BEL in ASCII
370
370
  but DEL in EBCDIC.
371
371
  </P>
372
372
  <P>
373
- The sequence \? generates DEL (127, hex 7F) in an ASCII environment, but
373
+ The sequence \c? generates DEL (127, hex 7F) in an ASCII environment, but
374
374
  because 127 is not a control character in EBCDIC, Perl makes it generate the
375
375
  APC character. Unfortunately, there are several variants of EBCDIC. In most of
376
376
  them the APC character has the value 255 (hex FF), but in the one Perl calls
377
377
  POSIX-BC its value is 95 (hex 5F). If certain other characters have POSIX-BC
378
- values, PCRE makes \? generate 95; otherwise it generates 255.
378
+ values, PCRE makes \c? generate 95; otherwise it generates 255.
379
379
  </P>
380
380
  <P>
381
381
  After \0 up to two further octal digits are read. If there are fewer than two
@@ -1512,13 +1512,8 @@ J, U and X respectively.
1512
1512
  <P>
1513
1513
  When one of these option changes occurs at top level (that is, not inside
1514
1514
  subpattern parentheses), the change applies to the remainder of the pattern
1515
- that follows. If the change is placed right at the start of a pattern, PCRE
1516
- extracts it into the global options (and it will therefore show up in data
1517
- extracted by the <b>pcre_fullinfo()</b> function).
1518
- </P>
1519
- <P>
1520
- An option change within a subpattern (see below for a description of
1521
- subpatterns) affects only that part of the subpattern that follows it, so
1515
+ that follows. An option change within a subpattern (see below for a description
1516
+ of subpatterns) affects only that part of the subpattern that follows it, so
1522
1517
  <pre>
1523
1518
  (a(?i)b)c
1524
1519
  </pre>
@@ -2160,6 +2155,14 @@ capturing is carried out only for positive assertions. (Perl sometimes, but not
2160
2155
  always, does do capturing in negative assertions.)
2161
2156
  </P>
2162
2157
  <P>
2158
+ WARNING: If a positive assertion containing one or more capturing subpatterns
2159
+ succeeds, but failure to match later in the pattern causes backtracking over
2160
+ this assertion, the captures within the assertion are reset only if no higher
2161
+ numbered captures are already set. This is, unfortunately, a fundamental
2162
+ limitation of the current implementation, and as PCRE1 is now in
2163
+ maintenance-only status, it is unlikely ever to change.
2164
+ </P>
2165
+ <P>
2163
2166
  For compatibility with Perl, assertion subpatterns may be repeated; though
2164
2167
  it makes no sense to assert the same thing several times, the side effect of
2165
2168
  capturing parentheses may occasionally be useful. In practice, there only three
@@ -3264,9 +3267,9 @@ Cambridge CB2 3QH, England.
3264
3267
  </P>
3265
3268
  <br><a name="SEC30" href="#TOC1">REVISION</a><br>
3266
3269
  <P>
3267
- Last updated: 14 June 2015
3270
+ Last updated: 23 October 2016
3268
3271
  <br>
3269
- Copyright &copy; 1997-2015 University of Cambridge.
3272
+ Copyright &copy; 1997-2016 University of Cambridge.
3270
3273
  <br>
3271
3274
  <p>
3272
3275
  Return to the <a href="index.html">PCRE index page</a>.