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.
- checksums.yaml +4 -4
- data/Rakefile +2 -2
- data/ext/glib2/rbglib.c +2 -0
- data/ext/glib2/rbglib.h +1 -1
- data/ext/glib2/rbglib2conversions.h +3 -0
- data/ext/glib2/rbglib_datetime.c +250 -0
- data/ext/glib2/rbglib_timezone.c +82 -0
- data/ext/glib2/rbgprivate.h +2 -0
- data/lib/2.2/glib2.so +0 -0
- data/lib/2.3/glib2.so +0 -0
- data/lib/2.4/glib2.so +0 -0
- data/lib/glib2.rb +15 -7
- data/lib/gnome2/rake/external-package.rb +35 -5
- data/lib/gnome2/rake/source-download-task.rb +25 -5
- data/lib/mkmf-gnome2.rb +1 -6
- data/test/test-date-time.rb +112 -0
- data/test/test-time-zone.rb +31 -0
- data/vendor/local/bin/asn1Coding.exe +0 -0
- data/vendor/local/bin/asn1Decoding.exe +0 -0
- data/vendor/local/bin/asn1Parser.exe +0 -0
- data/vendor/local/bin/envsubst.exe +0 -0
- data/vendor/local/bin/gdbus.exe +0 -0
- data/vendor/local/bin/gettext.exe +0 -0
- data/vendor/local/bin/gio-querymodules.exe +0 -0
- data/vendor/local/bin/gio.exe +0 -0
- data/vendor/local/bin/glib-compile-resources.exe +0 -0
- data/vendor/local/bin/glib-compile-schemas.exe +0 -0
- data/vendor/local/bin/glib-genmarshal.exe +0 -0
- data/vendor/local/bin/gobject-query.exe +0 -0
- data/vendor/local/bin/gresource.exe +0 -0
- data/vendor/local/bin/gsettings.exe +0 -0
- data/vendor/local/bin/gspawn-win32-helper-console.exe +0 -0
- data/vendor/local/bin/gspawn-win32-helper.exe +0 -0
- data/vendor/local/bin/iconv.exe +0 -0
- data/vendor/local/bin/idn.exe +0 -0
- data/vendor/local/bin/libasprintf-0.dll +0 -0
- data/vendor/local/bin/libcharset-1.dll +0 -0
- data/vendor/local/bin/libffi-6.dll +0 -0
- data/vendor/local/bin/libgio-2.0-0.dll +0 -0
- data/vendor/local/bin/libglib-2.0-0.dll +0 -0
- data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
- data/vendor/local/bin/libgmp-10.dll +0 -0
- data/vendor/local/bin/libgnutls-30.dll +0 -0
- data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
- data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
- data/vendor/local/bin/libhogweed-4-2.dll +0 -0
- data/vendor/local/bin/libiconv-2.dll +0 -0
- data/vendor/local/bin/libidn-11.dll +0 -0
- data/vendor/local/bin/libintl-8.dll +0 -0
- data/vendor/local/bin/libnettle-6-2.dll +0 -0
- data/vendor/local/bin/libp11-kit-0.dll +0 -0
- data/vendor/local/bin/libpcre-1.dll +0 -0
- data/vendor/local/bin/libpcrecpp-0.dll +0 -0
- data/vendor/local/bin/libpcreposix-0.dll +0 -0
- data/vendor/local/bin/libtasn1-6.dll +0 -0
- data/vendor/local/bin/nettle-hash.exe +0 -0
- data/vendor/local/bin/nettle-lfib-stream.exe +0 -0
- data/vendor/local/bin/nettle-pbkdf2.exe +0 -0
- data/vendor/local/bin/ngettext.exe +0 -0
- data/vendor/local/bin/p11-kit.exe +0 -0
- data/vendor/local/bin/pcre-config +1 -1
- data/vendor/local/bin/pcregrep.exe +0 -0
- data/vendor/local/bin/pcretest.exe +0 -0
- data/vendor/local/bin/pkcs1-conv.exe +0 -0
- data/vendor/local/bin/sexp-conv.exe +0 -0
- data/vendor/local/bin/trust.exe +0 -0
- data/vendor/local/include/pcre.h +2 -2
- data/vendor/local/lib/gio/modules/libgiognutls.dll +0 -0
- data/vendor/local/lib/gio/modules/libgiognutls.dll.a +0 -0
- data/vendor/local/lib/libasprintf.dll.a +0 -0
- data/vendor/local/lib/libcharset.dll.a +0 -0
- data/vendor/local/lib/libffi.dll.a +0 -0
- data/vendor/local/lib/libgio-2.0.dll.a +0 -0
- data/vendor/local/lib/libglib-2.0.dll.a +0 -0
- data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
- data/vendor/local/lib/libgmp.dll.a +0 -0
- data/vendor/local/lib/libgnutls.dll.a +0 -0
- data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
- data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
- data/vendor/local/lib/libhogweed.dll.a +0 -0
- data/vendor/local/lib/libiconv.dll.a +0 -0
- data/vendor/local/lib/libidn.dll.a +0 -0
- data/vendor/local/lib/libintl.dll.a +0 -0
- data/vendor/local/lib/libnettle.dll.a +0 -0
- data/vendor/local/lib/libp11-kit.dll.a +0 -0
- data/vendor/local/lib/libpcre.a +0 -0
- data/vendor/local/lib/libpcre.dll.a +0 -0
- data/vendor/local/lib/libpcre.la +1 -1
- data/vendor/local/lib/libpcrecpp.dll.a +0 -0
- data/vendor/local/lib/libpcreposix.a +0 -0
- data/vendor/local/lib/libpcreposix.dll.a +0 -0
- data/vendor/local/lib/libpcreposix.la +1 -1
- data/vendor/local/lib/libtasn1.dll.a +0 -0
- data/vendor/local/lib/p11-kit/p11-kit-remote.exe +0 -0
- data/vendor/local/lib/pkcs11/p11-kit-trust.dll +0 -0
- data/vendor/local/lib/pkcs11/p11-kit-trust.dll.a +0 -0
- data/vendor/local/lib/pkgconfig/libpcre.pc +1 -1
- data/vendor/local/lib/pkgconfig/libpcrecpp.pc +1 -1
- data/vendor/local/lib/pkgconfig/libpcreposix.pc +1 -1
- data/vendor/local/share/doc/pcre/AUTHORS +3 -3
- data/vendor/local/share/doc/pcre/ChangeLog +140 -1
- data/vendor/local/share/doc/pcre/LICENCE +3 -3
- data/vendor/local/share/doc/pcre/NEWS +15 -0
- data/vendor/local/share/doc/pcre/html/pcreapi.html +4 -5
- data/vendor/local/share/doc/pcre/html/pcrecompat.html +1 -1
- data/vendor/local/share/doc/pcre/html/pcrepattern.html +20 -17
- data/vendor/local/share/doc/pcre/pcre.txt +2024 -2020
- data/vendor/local/share/glib-2.0/codegen/__init__.pyc +0 -0
- data/vendor/local/share/glib-2.0/codegen/__init__.pyo +0 -0
- data/vendor/local/share/glib-2.0/codegen/codegen.pyc +0 -0
- data/vendor/local/share/glib-2.0/codegen/codegen.pyo +0 -0
- data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyc +0 -0
- data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyo +0 -0
- data/vendor/local/share/glib-2.0/codegen/codegen_main.pyc +0 -0
- data/vendor/local/share/glib-2.0/codegen/codegen_main.pyo +0 -0
- data/vendor/local/share/glib-2.0/codegen/config.pyc +0 -0
- data/vendor/local/share/glib-2.0/codegen/config.pyo +0 -0
- data/vendor/local/share/glib-2.0/codegen/dbustypes.pyc +0 -0
- data/vendor/local/share/glib-2.0/codegen/dbustypes.pyo +0 -0
- data/vendor/local/share/glib-2.0/codegen/parser.pyc +0 -0
- data/vendor/local/share/glib-2.0/codegen/parser.pyo +0 -0
- data/vendor/local/share/glib-2.0/codegen/utils.pyc +0 -0
- data/vendor/local/share/glib-2.0/codegen/utils.pyo +0 -0
- data/vendor/local/share/license/pcre/AUTHORS +3 -3
- data/vendor/local/share/man/man3/pcreapi.3 +5 -6
- data/vendor/local/share/man/man3/pcrecompat.3 +1 -1
- data/vendor/local/share/man/man3/pcrepattern.3 +20 -17
- 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
|
data/vendor/local/lib/libpcre.a
CHANGED
Binary file
|
Binary file
|
data/vendor/local/lib/libpcre.la
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -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-
|
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-
|
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-
|
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)()/,
|
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-
|
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-
|
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-
|
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
|
319
|
-
|
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:
|
2915
|
+
Last updated: 18 December 2015
|
2917
2916
|
<br>
|
2918
|
-
Copyright © 1997-
|
2917
|
+
Copyright © 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 (?|(?<a>A)|(?<b
|
131
|
+
between numbers and names. In particular, a pattern such as (?|(?<a>A)|(?<b>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
|
362
|
-
character code 0; the letters (in either case) encode characters 1-26
|
363
|
-
to hex 1A); [, \, ], ^, and _ encode characters 27-31 (hex 1B to hex
|
364
|
-
|
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
|
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, \
|
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
|
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
|
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.
|
1516
|
-
|
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:
|
3270
|
+
Last updated: 23 October 2016
|
3268
3271
|
<br>
|
3269
|
-
Copyright © 1997-
|
3272
|
+
Copyright © 1997-2016 University of Cambridge.
|
3270
3273
|
<br>
|
3271
3274
|
<p>
|
3272
3275
|
Return to the <a href="index.html">PCRE index page</a>.
|