Skip to content

Commit 94fd837

Browse files
committed
Update PCRE2 to 10.47
1 parent 494e145 commit 94fd837

40 files changed

+4842
-1401
lines changed

erts/emulator/pcre/LICENCE

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
PCRE2 License
1+
PCRE2 Licence
22
=============
33

44
| SPDX-License-Identifier: | BSD-3-Clause WITH PCRE2-exception |
@@ -16,7 +16,8 @@ testdata directory is not copyrighted and is in the public domain.
1616
The basic library functions are written in C and are freestanding. Also
1717
included in the distribution is a just-in-time compiler that can be used to
1818
optimize pattern matching. This is an optional feature that can be omitted when
19-
the library is built.
19+
the library is built. The just-in-time compiler is separately licensed under the
20+
"2-clause BSD" licence.
2021

2122

2223
COPYRIGHT
@@ -53,6 +54,8 @@ COPYRIGHT
5354
Copyright (c) 2009-2024 Zoltan Herczeg
5455
All rights reserved.
5556

57+
The code in the `deps/sljit` directory has its own LICENSE file.
58+
5659
### All other contributions
5760

5861
Many other contributors have participated in the authorship of PCRE2. As PCRE2
@@ -99,5 +102,3 @@ not apply all the way down a chain of software. If binary package A includes
99102
PCRE2, it must respect the condition, but if package B is software that
100103
includes package A, the condition is not imposed on package B unless it uses
101104
PCRE2 independently.
102-
103-
End

erts/emulator/pcre/pcre.mk

Lines changed: 56 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ pcre2_auto_possess.o \
2525
pcre2_chartables.o \
2626
pcre2_chkdint.o \
2727
pcre2_compile.o \
28+
pcre2_compile_cgroup.o \
2829
pcre2_compile_class.o \
2930
pcre2_config.o \
3031
pcre2_context.o \
@@ -86,77 +87,58 @@ $(PCRE_YIELD_COV): $(PCRE_DIR)/pcre2_match.c
8687
echo "#define ERLANG_YIELD_POINT_CNT $$INDEX" >> $@
8788

8889
# Dependencies.
89-
$(PCRE_OBJDIR)/pcre2_auto_possess.o: $(PCRE_DIR)/pcre2_auto_possess.c \
90-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
91-
$(PCRE_DIR)/pcre2_util.h
92-
$(PCRE_OBJDIR)/pcre2_chartables.o: $(PCRE_DIR)/pcre2_chartables.c \
93-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
94-
$(PCRE_DIR)/pcre2_util.h
95-
$(PCRE_OBJDIR)/pcre2_chkdint.o: $(PCRE_DIR)/pcre2_chkdint.c \
96-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
97-
$(PCRE_DIR)/pcre2_util.h
98-
$(PCRE_OBJDIR)/pcre2_compile.o: $(PCRE_DIR)/pcre2_compile.c \
99-
$(PCRE_DIR)/pcre2_compile.h $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h \
100-
$(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
101-
$(PCRE_OBJDIR)/pcre2_compile_class.o: $(PCRE_DIR)/pcre2_compile_class.c \
102-
$(PCRE_DIR)/pcre2_compile.h $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h \
103-
$(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
104-
$(PCRE_OBJDIR)/pcre2_config.o: $(PCRE_DIR)/pcre2_config.c \
105-
$(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
106-
$(PCRE_DIR)/pcre2_util.h
107-
$(PCRE_OBJDIR)/pcre2_context.o: $(PCRE_DIR)/pcre2_context.c \
108-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
109-
$(PCRE_DIR)/pcre2_util.h
110-
$(PCRE_OBJDIR)/pcre2_error.o: $(PCRE_DIR)/pcre2_error.c \
111-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
112-
$(PCRE_DIR)/pcre2_util.h
113-
$(PCRE_OBJDIR)/pcre2_extuni.o: $(PCRE_DIR)/pcre2_extuni.c \
114-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
115-
$(PCRE_DIR)/pcre2_util.h
116-
$(PCRE_OBJDIR)/pcre2_find_bracket.o: $(PCRE_DIR)/pcre2_find_bracket.c \
117-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
118-
$(PCRE_DIR)/pcre2_util.h
119-
$(PCRE_OBJDIR)/pcre2_match.o: $(PCRE_DIR)/pcre2_match.c \
120-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
121-
$(PCRE_DIR)/pcre2_util.h $(PCRE_DIR)/pcre2_match_loop_break_cases.gen.h $(PCRE_DIR)/pcre2_match_yield_coverage.gen.h
122-
$(PCRE_OBJDIR)/pcre2_match_data.o: $(PCRE_DIR)/pcre2_match_data.c \
123-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
124-
$(PCRE_DIR)/pcre2_util.h
125-
$(PCRE_OBJDIR)/pcre2_newline.o: $(PCRE_DIR)/pcre2_newline.c \
126-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
127-
$(PCRE_DIR)/pcre2_util.h
128-
$(PCRE_OBJDIR)/pcre2_ord2utf.o: $(PCRE_DIR)/pcre2_ord2utf.c \
129-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
130-
$(PCRE_DIR)/pcre2_util.h
131-
$(PCRE_OBJDIR)/pcre2_pattern_info.o: $(PCRE_DIR)/pcre2_pattern_info.c \
132-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
133-
$(PCRE_DIR)/pcre2_util.h
134-
$(PCRE_OBJDIR)/pcre2_script_run.o: $(PCRE_DIR)/pcre2_script_run.c \
135-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
136-
$(PCRE_DIR)/pcre2_util.h
137-
$(PCRE_OBJDIR)/pcre2_serialize.o: $(PCRE_DIR)/pcre2_serialize.c \
138-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
139-
$(PCRE_DIR)/pcre2_util.h
140-
$(PCRE_OBJDIR)/pcre2_string_utils.o: $(PCRE_DIR)/pcre2_string_utils.c \
141-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
142-
$(PCRE_DIR)/pcre2_util.h
143-
$(PCRE_OBJDIR)/pcre2_study.o: $(PCRE_DIR)/pcre2_study.c \
144-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
145-
$(PCRE_DIR)/pcre2_util.h
146-
$(PCRE_OBJDIR)/pcre2_substring.o: $(PCRE_DIR)/pcre2_substring.c \
147-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
148-
$(PCRE_DIR)/pcre2_util.h
149-
$(PCRE_OBJDIR)/pcre2_tables.o: $(PCRE_DIR)/pcre2_tables.c \
150-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
151-
$(PCRE_DIR)/pcre2_util.h \
152-
$(PCRE_DIR)/pcre2_ucptables.c
153-
$(PCRE_OBJDIR)/pcre2_ucd.o: $(PCRE_DIR)/pcre2_ucd.c \
154-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
155-
$(PCRE_DIR)/pcre2_util.h
156-
$(PCRE_OBJDIR)/pcre2_ucptables.o: $(PCRE_DIR)/pcre2_ucptables.c
157-
$(PCRE_OBJDIR)/pcre2_valid_utf.o: $(PCRE_DIR)/pcre2_valid_utf.c \
158-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
159-
$(PCRE_DIR)/pcre2_util.h
160-
$(PCRE_OBJDIR)/pcre2_xclass.o: $(PCRE_DIR)/pcre2_xclass.c \
161-
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
162-
$(PCRE_DIR)/pcre2_util.h
90+
# Generated with: gcc -MM -c -DERLANG_INTEGRATION *.c | sed -E 's/\S+\.o/\$(PCRE_OBJDIR)\/&/' | sed -E 's/\S+\.[ch]/\$(PCRE_DIR)\/&/g'
91+
#
92+
$(PCRE_OBJDIR)/pcre2_auto_possess.o: $(PCRE_DIR)/pcre2_auto_possess.c $(PCRE_DIR)/pcre2_internal.h \
93+
$(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
94+
$(PCRE_OBJDIR)/pcre2_chartables.o: $(PCRE_DIR)/pcre2_chartables.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h \
95+
$(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
96+
$(PCRE_OBJDIR)/pcre2_chkdint.o: $(PCRE_DIR)/pcre2_chkdint.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
97+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
98+
$(PCRE_OBJDIR)/pcre2_compile.o: $(PCRE_DIR)/pcre2_compile.c $(PCRE_DIR)/pcre2_compile.h $(PCRE_DIR)/pcre2_internal.h \
99+
$(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
100+
$(PCRE_OBJDIR)/pcre2_compile_cgroup.o: $(PCRE_DIR)/pcre2_compile_cgroup.c $(PCRE_DIR)/pcre2_compile.h \
101+
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
102+
$(PCRE_DIR)/pcre2_util.h
103+
$(PCRE_OBJDIR)/pcre2_compile_class.o: $(PCRE_DIR)/pcre2_compile_class.c $(PCRE_DIR)/pcre2_compile.h \
104+
$(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h \
105+
$(PCRE_DIR)/pcre2_util.h
106+
$(PCRE_OBJDIR)/pcre2_config.o: $(PCRE_DIR)/pcre2_config.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
107+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
108+
$(PCRE_OBJDIR)/pcre2_context.o: $(PCRE_DIR)/pcre2_context.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
109+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
110+
$(PCRE_OBJDIR)/pcre2_error.o: $(PCRE_DIR)/pcre2_error.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
111+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
112+
$(PCRE_OBJDIR)/pcre2_extuni.o: $(PCRE_DIR)/pcre2_extuni.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
113+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
114+
$(PCRE_OBJDIR)/pcre2_find_bracket.o: $(PCRE_DIR)/pcre2_find_bracket.c $(PCRE_DIR)/pcre2_internal.h \
115+
$(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
116+
$(PCRE_OBJDIR)/pcre2_match.o: $(PCRE_DIR)/pcre2_match.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
117+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h \
118+
$(PCRE_DIR)/pcre2_match_loop_break_cases.gen.h
119+
$(PCRE_OBJDIR)/pcre2_match_data.o: $(PCRE_DIR)/pcre2_match_data.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h \
120+
$(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
121+
$(PCRE_OBJDIR)/pcre2_newline.o: $(PCRE_DIR)/pcre2_newline.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
122+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
123+
$(PCRE_OBJDIR)/pcre2_ord2utf.o: $(PCRE_DIR)/pcre2_ord2utf.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
124+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
125+
$(PCRE_OBJDIR)/pcre2_pattern_info.o: $(PCRE_DIR)/pcre2_pattern_info.c $(PCRE_DIR)/pcre2_internal.h \
126+
$(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
127+
$(PCRE_OBJDIR)/pcre2_script_run.o: $(PCRE_DIR)/pcre2_script_run.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h \
128+
$(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
129+
$(PCRE_OBJDIR)/pcre2_serialize.o: $(PCRE_DIR)/pcre2_serialize.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h \
130+
$(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
131+
$(PCRE_OBJDIR)/pcre2_string_utils.o: $(PCRE_DIR)/pcre2_string_utils.c $(PCRE_DIR)/pcre2_internal.h \
132+
$(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
133+
$(PCRE_OBJDIR)/pcre2_study.o: $(PCRE_DIR)/pcre2_study.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
134+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
135+
$(PCRE_OBJDIR)/pcre2_substring.o: $(PCRE_DIR)/pcre2_substring.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h \
136+
$(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
137+
$(PCRE_OBJDIR)/pcre2_tables.o: $(PCRE_DIR)/pcre2_tables.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
138+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h $(PCRE_DIR)/pcre2_ucptables_inc.h
139+
$(PCRE_OBJDIR)/pcre2_ucd.o: $(PCRE_DIR)/pcre2_ucd.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
140+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
141+
$(PCRE_OBJDIR)/pcre2_valid_utf.o: $(PCRE_DIR)/pcre2_valid_utf.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h \
142+
$(PCRE_DIR)/pcre2.h $(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h
143+
$(PCRE_OBJDIR)/pcre2_xclass.o: $(PCRE_DIR)/pcre2_xclass.c $(PCRE_DIR)/pcre2_internal.h $(PCRE_DIR)/local_config.h $(PCRE_DIR)/pcre2.h \
144+
$(PCRE_DIR)/pcre2_ucp.h $(PCRE_DIR)/pcre2_intmodedep.h $(PCRE_DIR)/pcre2_util.h

erts/emulator/pcre/pcre2.h

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -43,40 +43,37 @@ POSSIBILITY OF SUCH DAMAGE.
4343
/* The current PCRE version information. */
4444

4545
#define PCRE2_MAJOR 10
46-
#define PCRE2_MINOR 46
46+
#define PCRE2_MINOR 47
4747
#define PCRE2_PRERELEASE
48-
#define PCRE2_DATE 2025-08-27
48+
#define PCRE2_DATE 2025-10-21
4949

50-
/* When an application links to a PCRE DLL in Windows, the symbols that are
50+
/* When an application links to a PCRE2 DLL in Windows, the symbols that are
5151
imported have to be identified as such. When building PCRE2, the appropriate
52-
export setting is defined in pcre2_internal.h, which includes this file. So we
53-
don't change existing definitions of PCRE2_EXP_DECL. */
52+
export setting is defined in pcre2_internal.h, which includes this file. So, we
53+
don't change existing definitions of PCRE2_EXP_DECL.
5454
55-
#if defined(_WIN32) && !defined(PCRE2_STATIC)
56-
# ifndef PCRE2_EXP_DECL
57-
# define PCRE2_EXP_DECL extern __declspec(dllimport)
58-
# endif
59-
#endif
60-
61-
/* By default, we use the standard "extern" declarations. */
55+
By default, we use the standard "extern" declarations. */
6256

6357
#ifndef PCRE2_EXP_DECL
64-
# ifdef __cplusplus
58+
# if defined(_WIN32) && !defined(PCRE2_STATIC)
59+
# define PCRE2_EXP_DECL extern __declspec(dllimport)
60+
# elif defined __cplusplus
6561
# define PCRE2_EXP_DECL extern "C"
6662
# else
6763
# define PCRE2_EXP_DECL extern
6864
# endif
6965
#endif
7066

7167
/* When compiling with the MSVC compiler, it is sometimes necessary to include
72-
a "calling convention" before exported function names. (This is secondhand
73-
information; I know nothing about MSVC myself). For example, something like
68+
a "calling convention" before exported function names. For example:
7469
7570
void __cdecl function(....)
7671
77-
might be needed. In order so make this easy, all the exported functions have
78-
PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not
79-
set, we ensure here that it has no effect. */
72+
might be needed. In order to make this easy, all the exported functions have
73+
PCRE2_CALL_CONVENTION just before their names.
74+
75+
PCRE2 normally uses the platform's standard calling convention, so this should
76+
not be set unless you know you need it. */
8077

8178
#ifndef PCRE2_CALL_CONVENTION
8279
#define PCRE2_CALL_CONVENTION
@@ -345,6 +342,10 @@ pcre2_pattern_convert(). */
345342
#define PCRE2_ERROR_PERL_ECLASS_EMPTY_EXPR 214
346343
#define PCRE2_ERROR_PERL_ECLASS_MISSING_CLOSE 215
347344
#define PCRE2_ERROR_PERL_ECLASS_UNEXPECTED_CHAR 216
345+
#define PCRE2_ERROR_EXPECTED_CAPTURE_GROUP 217
346+
#define PCRE2_ERROR_MISSING_OPENING_PARENTHESIS 218
347+
#define PCRE2_ERROR_MISSING_NUMBER_TERMINATOR 219
348+
#define PCRE2_ERROR_NULL_ERROROFFSET 220
348349

349350
/* "Expected" matching error codes: no match and partial match. */
350351

@@ -434,8 +435,14 @@ released, the numbers must not be changed. */
434435
#define PCRE2_ERROR_JIT_UNSUPPORTED (-68)
435436
#define PCRE2_ERROR_REPLACECASE (-69)
436437
#define PCRE2_ERROR_TOOLARGEREPLACE (-70)
437-
#define PCRE2_ERROR_LOOP_LIMIT (-71)
438-
#define PCRE2_ERROR_UTF8_YIELD (-72)
438+
#define PCRE2_ERROR_DIFFSUBSPATTERN (-71)
439+
#define PCRE2_ERROR_DIFFSUBSSUBJECT (-72)
440+
#define PCRE2_ERROR_DIFFSUBSOFFSET (-73)
441+
#define PCRE2_ERROR_DIFFSUBSOPTIONS (-74)
442+
#define PCRE2_ERROR_BAD_BACKSLASH_K (-75)
443+
444+
#define PCRE2_ERROR_LOOP_LIMIT (-76)
445+
#define PCRE2_ERROR_UTF8_YIELD (-77)
439446

440447
/* Request types for pcre2_pattern_info() */
441448

@@ -487,6 +494,7 @@ released, the numbers must not be changed. */
487494
#define PCRE2_CONFIG_NEVER_BACKSLASH_C 13
488495
#define PCRE2_CONFIG_COMPILED_WIDTHS 14
489496
#define PCRE2_CONFIG_TABLES_LENGTH 15
497+
#define PCRE2_CONFIG_EFFECTIVE_LINKSIZE 16
490498

491499
/* Optimization directives for pcre2_set_optimize().
492500
For binary compatibility, only add to this list; do not renumber. */
@@ -754,14 +762,14 @@ PCRE2_EXP_DECL pcre2_match_data *PCRE2_CALL_CONVENTION \
754762
PCRE2_EXP_DECL pcre2_match_data *PCRE2_CALL_CONVENTION \
755763
pcre2_match_data_create_from_pattern(const pcre2_code *, \
756764
pcre2_general_context *); \
765+
PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \
766+
pcre2_match_data_free(pcre2_match_data *); \
757767
PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \
758768
pcre2_dfa_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \
759769
uint32_t, pcre2_match_data *, pcre2_match_context *, int *, PCRE2_SIZE); \
760770
PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \
761771
pcre2_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \
762772
uint32_t, pcre2_match_data *, pcre2_match_context *); \
763-
PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \
764-
pcre2_match_data_free(pcre2_match_data *); \
765773
PCRE2_EXP_DECL PCRE2_SPTR PCRE2_CALL_CONVENTION \
766774
pcre2_get_mark(pcre2_match_data *); \
767775
PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \
@@ -774,6 +782,8 @@ PCRE2_EXP_DECL PCRE2_SIZE *PCRE2_CALL_CONVENTION \
774782
pcre2_get_ovector_pointer(pcre2_match_data *); \
775783
PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \
776784
pcre2_get_startchar(pcre2_match_data *); \
785+
PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \
786+
pcre2_next_match(pcre2_match_data *, PCRE2_SIZE *, uint32_t *); \
777787
PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \
778788
pcre2_free_restart_data(pcre2_match_data *);
779789

@@ -955,6 +965,7 @@ pcre2_compile are called by application code. */
955965
#define pcre2_match_data_create PCRE2_SUFFIX(pcre2_match_data_create_)
956966
#define pcre2_match_data_create_from_pattern PCRE2_SUFFIX(pcre2_match_data_create_from_pattern_)
957967
#define pcre2_match_data_free PCRE2_SUFFIX(pcre2_match_data_free_)
968+
#define pcre2_next_match PCRE2_SUFFIX(pcre2_next_match_)
958969
#define pcre2_pattern_convert PCRE2_SUFFIX(pcre2_pattern_convert_)
959970
#define pcre2_pattern_info PCRE2_SUFFIX(pcre2_pattern_info_)
960971
#define pcre2_serialize_decode PCRE2_SUFFIX(pcre2_serialize_decode_)

0 commit comments

Comments
 (0)