| 1 | /************************************************* | 
|---|
| 2 | *       Perl-Compatible Regular Expressions      * | 
|---|
| 3 | *************************************************/ | 
|---|
| 4 |  | 
|---|
| 5 | /* This is the public header file for the PCRE library, second API, to be | 
|---|
| 6 | #included by applications that call PCRE2 functions. | 
|---|
| 7 |  | 
|---|
| 8 | Copyright (c) 2016-2021 University of Cambridge | 
|---|
| 9 |  | 
|---|
| 10 | ----------------------------------------------------------------------------- | 
|---|
| 11 | Redistribution and use in source and binary forms, with or without | 
|---|
| 12 | modification, are permitted provided that the following conditions are met: | 
|---|
| 13 |  | 
|---|
| 14 | * Redistributions of source code must retain the above copyright notice, | 
|---|
| 15 | this list of conditions and the following disclaimer. | 
|---|
| 16 |  | 
|---|
| 17 | * Redistributions in binary form must reproduce the above copyright | 
|---|
| 18 | notice, this list of conditions and the following disclaimer in the | 
|---|
| 19 | documentation and/or other materials provided with the distribution. | 
|---|
| 20 |  | 
|---|
| 21 | * Neither the name of the University of Cambridge nor the names of its | 
|---|
| 22 | contributors may be used to endorse or promote products derived from | 
|---|
| 23 | this software without specific prior written permission. | 
|---|
| 24 |  | 
|---|
| 25 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 
|---|
| 26 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
|---|
| 27 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 
|---|
| 28 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | 
|---|
| 29 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 
|---|
| 30 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 
|---|
| 31 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 
|---|
| 32 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 
|---|
| 33 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 
|---|
| 34 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 
|---|
| 35 | POSSIBILITY OF SUCH DAMAGE. | 
|---|
| 36 | ----------------------------------------------------------------------------- | 
|---|
| 37 | */ | 
|---|
| 38 |  | 
|---|
| 39 | #ifndef PCRE2_H_IDEMPOTENT_GUARD | 
|---|
| 40 | #define PCRE2_H_IDEMPOTENT_GUARD | 
|---|
| 41 |  | 
|---|
| 42 | /* The current PCRE version information. */ | 
|---|
| 43 |  | 
|---|
| 44 | #define PCRE2_MAJOR           10 | 
|---|
| 45 | #define PCRE2_MINOR           42 | 
|---|
| 46 | #define PCRE2_PRERELEASE | 
|---|
| 47 | #define PCRE2_DATE            2022-12-11 | 
|---|
| 48 |  | 
|---|
| 49 | /* When an application links to a PCRE DLL in Windows, the symbols that are | 
|---|
| 50 | imported have to be identified as such. When building PCRE2, the appropriate | 
|---|
| 51 | export setting is defined in pcre2_internal.h, which includes this file. So we | 
|---|
| 52 | don't change existing definitions of PCRE2_EXP_DECL. */ | 
|---|
| 53 |  | 
|---|
| 54 | #if defined(_WIN32) && !defined(PCRE2_STATIC) | 
|---|
| 55 | #  ifndef PCRE2_EXP_DECL | 
|---|
| 56 | #    define PCRE2_EXP_DECL  extern __declspec(dllimport) | 
|---|
| 57 | #  endif | 
|---|
| 58 | #endif | 
|---|
| 59 |  | 
|---|
| 60 | /* By default, we use the standard "extern" declarations. */ | 
|---|
| 61 |  | 
|---|
| 62 | #ifndef PCRE2_EXP_DECL | 
|---|
| 63 | #  ifdef __cplusplus | 
|---|
| 64 | #    define PCRE2_EXP_DECL  extern "C" | 
|---|
| 65 | #  else | 
|---|
| 66 | #    define PCRE2_EXP_DECL  extern | 
|---|
| 67 | #  endif | 
|---|
| 68 | #endif | 
|---|
| 69 |  | 
|---|
| 70 | /* When compiling with the MSVC compiler, it is sometimes necessary to include | 
|---|
| 71 | a "calling convention" before exported function names. (This is secondhand | 
|---|
| 72 | information; I know nothing about MSVC myself). For example, something like | 
|---|
| 73 |  | 
|---|
| 74 | void __cdecl function(....) | 
|---|
| 75 |  | 
|---|
| 76 | might be needed. In order so make this easy, all the exported functions have | 
|---|
| 77 | PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not | 
|---|
| 78 | set, we ensure here that it has no effect. */ | 
|---|
| 79 |  | 
|---|
| 80 | #ifndef PCRE2_CALL_CONVENTION | 
|---|
| 81 | #define PCRE2_CALL_CONVENTION | 
|---|
| 82 | #endif | 
|---|
| 83 |  | 
|---|
| 84 | /* Have to include limits.h, stdlib.h, and inttypes.h to ensure that size_t and | 
|---|
| 85 | uint8_t, UCHAR_MAX, etc are defined. Some systems that do have inttypes.h do | 
|---|
| 86 | not have stdint.h, which is why we use inttypes.h, which according to the C | 
|---|
| 87 | standard is a superset of stdint.h. If inttypes.h is not available the build | 
|---|
| 88 | will break and the relevant values must be provided by some other means. */ | 
|---|
| 89 |  | 
|---|
| 90 | #include <limits.h> | 
|---|
| 91 | #include <stdlib.h> | 
|---|
| 92 | #include <inttypes.h> | 
|---|
| 93 |  | 
|---|
| 94 | /* Allow for C++ users compiling this directly. */ | 
|---|
| 95 |  | 
|---|
| 96 | #ifdef __cplusplus | 
|---|
| 97 | extern "C"{ | 
|---|
| 98 | #endif | 
|---|
| 99 |  | 
|---|
| 100 | /* The following option bits can be passed to pcre2_compile(), pcre2_match(), | 
|---|
| 101 | or pcre2_dfa_match(). PCRE2_NO_UTF_CHECK affects only the function to which it | 
|---|
| 102 | is passed. Put these bits at the most significant end of the options word so | 
|---|
| 103 | others can be added next to them */ | 
|---|
| 104 |  | 
|---|
| 105 | #define PCRE2_ANCHORED            0x80000000u | 
|---|
| 106 | #define PCRE2_NO_UTF_CHECK        0x40000000u | 
|---|
| 107 | #define PCRE2_ENDANCHORED         0x20000000u | 
|---|
| 108 |  | 
|---|
| 109 | /* The following option bits can be passed only to pcre2_compile(). However, | 
|---|
| 110 | they may affect compilation, JIT compilation, and/or interpretive execution. | 
|---|
| 111 | The following tags indicate which: | 
|---|
| 112 |  | 
|---|
| 113 | C   alters what is compiled by pcre2_compile() | 
|---|
| 114 | J   alters what is compiled by pcre2_jit_compile() | 
|---|
| 115 | M   is inspected during pcre2_match() execution | 
|---|
| 116 | D   is inspected during pcre2_dfa_match() execution | 
|---|
| 117 | */ | 
|---|
| 118 |  | 
|---|
| 119 | #define PCRE2_ALLOW_EMPTY_CLASS   0x00000001u  /* C       */ | 
|---|
| 120 | #define PCRE2_ALT_BSUX            0x00000002u  /* C       */ | 
|---|
| 121 | #define PCRE2_AUTO_CALLOUT        0x00000004u  /* C       */ | 
|---|
| 122 | #define PCRE2_CASELESS            0x00000008u  /* C       */ | 
|---|
| 123 | #define PCRE2_DOLLAR_ENDONLY      0x00000010u  /*   J M D */ | 
|---|
| 124 | #define PCRE2_DOTALL              0x00000020u  /* C       */ | 
|---|
| 125 | #define PCRE2_DUPNAMES            0x00000040u  /* C       */ | 
|---|
| 126 | #define PCRE2_EXTENDED            0x00000080u  /* C       */ | 
|---|
| 127 | #define PCRE2_FIRSTLINE           0x00000100u  /*   J M D */ | 
|---|
| 128 | #define PCRE2_MATCH_UNSET_BACKREF 0x00000200u  /* C J M   */ | 
|---|
| 129 | #define PCRE2_MULTILINE           0x00000400u  /* C       */ | 
|---|
| 130 | #define PCRE2_NEVER_UCP           0x00000800u  /* C       */ | 
|---|
| 131 | #define PCRE2_NEVER_UTF           0x00001000u  /* C       */ | 
|---|
| 132 | #define PCRE2_NO_AUTO_CAPTURE     0x00002000u  /* C       */ | 
|---|
| 133 | #define PCRE2_NO_AUTO_POSSESS     0x00004000u  /* C       */ | 
|---|
| 134 | #define PCRE2_NO_DOTSTAR_ANCHOR   0x00008000u  /* C       */ | 
|---|
| 135 | #define PCRE2_NO_START_OPTIMIZE   0x00010000u  /*   J M D */ | 
|---|
| 136 | #define PCRE2_UCP                 0x00020000u  /* C J M D */ | 
|---|
| 137 | #define PCRE2_UNGREEDY            0x00040000u  /* C       */ | 
|---|
| 138 | #define PCRE2_UTF                 0x00080000u  /* C J M D */ | 
|---|
| 139 | #define PCRE2_NEVER_BACKSLASH_C   0x00100000u  /* C       */ | 
|---|
| 140 | #define PCRE2_ALT_CIRCUMFLEX      0x00200000u  /*   J M D */ | 
|---|
| 141 | #define PCRE2_ALT_VERBNAMES       0x00400000u  /* C       */ | 
|---|
| 142 | #define PCRE2_USE_OFFSET_LIMIT    0x00800000u  /*   J M D */ | 
|---|
| 143 | #define PCRE2_EXTENDED_MORE       0x01000000u  /* C       */ | 
|---|
| 144 | #define PCRE2_LITERAL             0x02000000u  /* C       */ | 
|---|
| 145 | #define PCRE2_MATCH_INVALID_UTF   0x04000000u  /*   J M D */ | 
|---|
| 146 |  | 
|---|
| 147 | /* An additional compile options word is available in the compile context. */ | 
|---|
| 148 |  | 
|---|
| 149 | #define   0x00000001u  /* C */ | 
|---|
| 150 | #define     0x00000002u  /* C */ | 
|---|
| 151 | #define                0x00000004u  /* C */ | 
|---|
| 152 | #define                0x00000008u  /* C */ | 
|---|
| 153 | #define          0x00000010u  /* C */ | 
|---|
| 154 | #define                  0x00000020u  /* C */ | 
|---|
| 155 | #define      0x00000040u  /* C */ | 
|---|
| 156 |  | 
|---|
| 157 | /* These are for pcre2_jit_compile(). */ | 
|---|
| 158 |  | 
|---|
| 159 | #define PCRE2_JIT_COMPLETE        0x00000001u  /* For full matching */ | 
|---|
| 160 | #define PCRE2_JIT_PARTIAL_SOFT    0x00000002u | 
|---|
| 161 | #define PCRE2_JIT_PARTIAL_HARD    0x00000004u | 
|---|
| 162 | #define PCRE2_JIT_INVALID_UTF     0x00000100u | 
|---|
| 163 |  | 
|---|
| 164 | /* These are for pcre2_match(), pcre2_dfa_match(), pcre2_jit_match(), and | 
|---|
| 165 | pcre2_substitute(). Some are allowed only for one of the functions, and in | 
|---|
| 166 | these cases it is noted below. Note that PCRE2_ANCHORED, PCRE2_ENDANCHORED and | 
|---|
| 167 | PCRE2_NO_UTF_CHECK can also be passed to these functions (though | 
|---|
| 168 | pcre2_jit_match() ignores the latter since it bypasses all sanity checks). */ | 
|---|
| 169 |  | 
|---|
| 170 | #define PCRE2_NOTBOL                      0x00000001u | 
|---|
| 171 | #define PCRE2_NOTEOL                      0x00000002u | 
|---|
| 172 | #define PCRE2_NOTEMPTY                    0x00000004u  /* ) These two must be kept */ | 
|---|
| 173 | #define PCRE2_NOTEMPTY_ATSTART            0x00000008u  /* ) adjacent to each other. */ | 
|---|
| 174 | #define PCRE2_PARTIAL_SOFT                0x00000010u | 
|---|
| 175 | #define PCRE2_PARTIAL_HARD                0x00000020u | 
|---|
| 176 | #define PCRE2_DFA_RESTART                 0x00000040u  /* pcre2_dfa_match() only */ | 
|---|
| 177 | #define PCRE2_DFA_SHORTEST                0x00000080u  /* pcre2_dfa_match() only */ | 
|---|
| 178 | #define PCRE2_SUBSTITUTE_GLOBAL           0x00000100u  /* pcre2_substitute() only */ | 
|---|
| 179 | #define PCRE2_SUBSTITUTE_EXTENDED         0x00000200u  /* pcre2_substitute() only */ | 
|---|
| 180 | #define PCRE2_SUBSTITUTE_UNSET_EMPTY      0x00000400u  /* pcre2_substitute() only */ | 
|---|
| 181 | #define PCRE2_SUBSTITUTE_UNKNOWN_UNSET    0x00000800u  /* pcre2_substitute() only */ | 
|---|
| 182 | #define PCRE2_SUBSTITUTE_OVERFLOW_LENGTH  0x00001000u  /* pcre2_substitute() only */ | 
|---|
| 183 | #define PCRE2_NO_JIT                      0x00002000u  /* Not for pcre2_dfa_match() */ | 
|---|
| 184 | #define PCRE2_COPY_MATCHED_SUBJECT        0x00004000u | 
|---|
| 185 | #define PCRE2_SUBSTITUTE_LITERAL          0x00008000u  /* pcre2_substitute() only */ | 
|---|
| 186 | #define PCRE2_SUBSTITUTE_MATCHED          0x00010000u  /* pcre2_substitute() only */ | 
|---|
| 187 | #define PCRE2_SUBSTITUTE_REPLACEMENT_ONLY 0x00020000u  /* pcre2_substitute() only */ | 
|---|
| 188 |  | 
|---|
| 189 | /* Options for pcre2_pattern_convert(). */ | 
|---|
| 190 |  | 
|---|
| 191 | #define PCRE2_CONVERT_UTF                    0x00000001u | 
|---|
| 192 | #define PCRE2_CONVERT_NO_UTF_CHECK           0x00000002u | 
|---|
| 193 | #define PCRE2_CONVERT_POSIX_BASIC            0x00000004u | 
|---|
| 194 | #define PCRE2_CONVERT_POSIX_EXTENDED         0x00000008u | 
|---|
| 195 | #define PCRE2_CONVERT_GLOB                   0x00000010u | 
|---|
| 196 | #define PCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR 0x00000030u | 
|---|
| 197 | #define PCRE2_CONVERT_GLOB_NO_STARSTAR       0x00000050u | 
|---|
| 198 |  | 
|---|
| 199 | /* Newline and \R settings, for use in compile contexts. The newline values | 
|---|
| 200 | must be kept in step with values set in config.h and both sets must all be | 
|---|
| 201 | greater than zero. */ | 
|---|
| 202 |  | 
|---|
| 203 | #define PCRE2_NEWLINE_CR          1 | 
|---|
| 204 | #define PCRE2_NEWLINE_LF          2 | 
|---|
| 205 | #define PCRE2_NEWLINE_CRLF        3 | 
|---|
| 206 | #define PCRE2_NEWLINE_ANY         4 | 
|---|
| 207 | #define PCRE2_NEWLINE_ANYCRLF     5 | 
|---|
| 208 | #define PCRE2_NEWLINE_NUL         6 | 
|---|
| 209 |  | 
|---|
| 210 | #define PCRE2_BSR_UNICODE         1 | 
|---|
| 211 | #define PCRE2_BSR_ANYCRLF         2 | 
|---|
| 212 |  | 
|---|
| 213 | /* Error codes for pcre2_compile(). Some of these are also used by | 
|---|
| 214 | pcre2_pattern_convert(). */ | 
|---|
| 215 |  | 
|---|
| 216 | #define PCRE2_ERROR_END_BACKSLASH                  101 | 
|---|
| 217 | #define PCRE2_ERROR_END_BACKSLASH_C                102 | 
|---|
| 218 | #define PCRE2_ERROR_UNKNOWN_ESCAPE                 103 | 
|---|
| 219 | #define PCRE2_ERROR_QUANTIFIER_OUT_OF_ORDER        104 | 
|---|
| 220 | #define PCRE2_ERROR_QUANTIFIER_TOO_BIG             105 | 
|---|
| 221 | #define PCRE2_ERROR_MISSING_SQUARE_BRACKET         106 | 
|---|
| 222 | #define PCRE2_ERROR_ESCAPE_INVALID_IN_CLASS        107 | 
|---|
| 223 | #define PCRE2_ERROR_CLASS_RANGE_ORDER              108 | 
|---|
| 224 | #define PCRE2_ERROR_QUANTIFIER_INVALID             109 | 
|---|
| 225 | #define PCRE2_ERROR_INTERNAL_UNEXPECTED_REPEAT     110 | 
|---|
| 226 | #define PCRE2_ERROR_INVALID_AFTER_PARENS_QUERY     111 | 
|---|
| 227 | #define PCRE2_ERROR_POSIX_CLASS_NOT_IN_CLASS       112 | 
|---|
| 228 | #define PCRE2_ERROR_POSIX_NO_SUPPORT_COLLATING     113 | 
|---|
| 229 | #define PCRE2_ERROR_MISSING_CLOSING_PARENTHESIS    114 | 
|---|
| 230 | #define PCRE2_ERROR_BAD_SUBPATTERN_REFERENCE       115 | 
|---|
| 231 | #define PCRE2_ERROR_NULL_PATTERN                   116 | 
|---|
| 232 | #define PCRE2_ERROR_BAD_OPTIONS                    117 | 
|---|
| 233 | #define         118 | 
|---|
| 234 | #define PCRE2_ERROR_PARENTHESES_NEST_TOO_DEEP      119 | 
|---|
| 235 | #define PCRE2_ERROR_PATTERN_TOO_LARGE              120 | 
|---|
| 236 | #define PCRE2_ERROR_HEAP_FAILED                    121 | 
|---|
| 237 | #define PCRE2_ERROR_UNMATCHED_CLOSING_PARENTHESIS  122 | 
|---|
| 238 | #define PCRE2_ERROR_INTERNAL_CODE_OVERFLOW         123 | 
|---|
| 239 | #define PCRE2_ERROR_MISSING_CONDITION_CLOSING      124 | 
|---|
| 240 | #define PCRE2_ERROR_LOOKBEHIND_NOT_FIXED_LENGTH    125 | 
|---|
| 241 | #define PCRE2_ERROR_ZERO_RELATIVE_REFERENCE        126 | 
|---|
| 242 | #define PCRE2_ERROR_TOO_MANY_CONDITION_BRANCHES    127 | 
|---|
| 243 | #define PCRE2_ERROR_CONDITION_ASSERTION_EXPECTED   128 | 
|---|
| 244 | #define PCRE2_ERROR_BAD_RELATIVE_REFERENCE         129 | 
|---|
| 245 | #define PCRE2_ERROR_UNKNOWN_POSIX_CLASS            130 | 
|---|
| 246 | #define PCRE2_ERROR_INTERNAL_STUDY_ERROR           131 | 
|---|
| 247 | #define PCRE2_ERROR_UNICODE_NOT_SUPPORTED          132 | 
|---|
| 248 | #define PCRE2_ERROR_PARENTHESES_STACK_CHECK        133 | 
|---|
| 249 | #define PCRE2_ERROR_CODE_POINT_TOO_BIG             134 | 
|---|
| 250 | #define PCRE2_ERROR_LOOKBEHIND_TOO_COMPLICATED     135 | 
|---|
| 251 | #define PCRE2_ERROR_LOOKBEHIND_INVALID_BACKSLASH_C 136 | 
|---|
| 252 | #define PCRE2_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE    137 | 
|---|
| 253 | #define PCRE2_ERROR_CALLOUT_NUMBER_TOO_BIG         138 | 
|---|
| 254 | #define PCRE2_ERROR_MISSING_CALLOUT_CLOSING        139 | 
|---|
| 255 | #define PCRE2_ERROR_ESCAPE_INVALID_IN_VERB         140 | 
|---|
| 256 | #define PCRE2_ERROR_UNRECOGNIZED_AFTER_QUERY_P     141 | 
|---|
| 257 | #define PCRE2_ERROR_MISSING_NAME_TERMINATOR        142 | 
|---|
| 258 | #define PCRE2_ERROR_DUPLICATE_SUBPATTERN_NAME      143 | 
|---|
| 259 | #define PCRE2_ERROR_INVALID_SUBPATTERN_NAME        144 | 
|---|
| 260 | #define PCRE2_ERROR_UNICODE_PROPERTIES_UNAVAILABLE 145 | 
|---|
| 261 | #define PCRE2_ERROR_MALFORMED_UNICODE_PROPERTY     146 | 
|---|
| 262 | #define PCRE2_ERROR_UNKNOWN_UNICODE_PROPERTY       147 | 
|---|
| 263 | #define PCRE2_ERROR_SUBPATTERN_NAME_TOO_LONG       148 | 
|---|
| 264 | #define PCRE2_ERROR_TOO_MANY_NAMED_SUBPATTERNS     149 | 
|---|
| 265 | #define PCRE2_ERROR_CLASS_INVALID_RANGE            150 | 
|---|
| 266 | #define PCRE2_ERROR_OCTAL_BYTE_TOO_BIG             151 | 
|---|
| 267 | #define PCRE2_ERROR_INTERNAL_OVERRAN_WORKSPACE     152 | 
|---|
| 268 | #define PCRE2_ERROR_INTERNAL_MISSING_SUBPATTERN    153 | 
|---|
| 269 | #define PCRE2_ERROR_DEFINE_TOO_MANY_BRANCHES       154 | 
|---|
| 270 | #define PCRE2_ERROR_BACKSLASH_O_MISSING_BRACE      155 | 
|---|
| 271 | #define PCRE2_ERROR_INTERNAL_UNKNOWN_NEWLINE       156 | 
|---|
| 272 | #define PCRE2_ERROR_BACKSLASH_G_SYNTAX             157 | 
|---|
| 273 | #define PCRE2_ERROR_PARENS_QUERY_R_MISSING_CLOSING 158 | 
|---|
| 274 | /* Error 159 is obsolete and should now never occur */ | 
|---|
| 275 | #define PCRE2_ERROR_VERB_ARGUMENT_NOT_ALLOWED      159 | 
|---|
| 276 | #define PCRE2_ERROR_VERB_UNKNOWN                   160 | 
|---|
| 277 | #define PCRE2_ERROR_SUBPATTERN_NUMBER_TOO_BIG      161 | 
|---|
| 278 | #define PCRE2_ERROR_SUBPATTERN_NAME_EXPECTED       162 | 
|---|
| 279 | #define PCRE2_ERROR_INTERNAL_PARSED_OVERFLOW       163 | 
|---|
| 280 | #define PCRE2_ERROR_INVALID_OCTAL                  164 | 
|---|
| 281 | #define PCRE2_ERROR_SUBPATTERN_NAMES_MISMATCH      165 | 
|---|
| 282 | #define PCRE2_ERROR_MARK_MISSING_ARGUMENT          166 | 
|---|
| 283 | #define PCRE2_ERROR_INVALID_HEXADECIMAL            167 | 
|---|
| 284 | #define PCRE2_ERROR_BACKSLASH_C_SYNTAX             168 | 
|---|
| 285 | #define PCRE2_ERROR_BACKSLASH_K_SYNTAX             169 | 
|---|
| 286 | #define PCRE2_ERROR_INTERNAL_BAD_CODE_LOOKBEHINDS  170 | 
|---|
| 287 | #define PCRE2_ERROR_BACKSLASH_N_IN_CLASS           171 | 
|---|
| 288 | #define PCRE2_ERROR_CALLOUT_STRING_TOO_LONG        172 | 
|---|
| 289 | #define PCRE2_ERROR_UNICODE_DISALLOWED_CODE_POINT  173 | 
|---|
| 290 | #define PCRE2_ERROR_UTF_IS_DISABLED                174 | 
|---|
| 291 | #define PCRE2_ERROR_UCP_IS_DISABLED                175 | 
|---|
| 292 | #define PCRE2_ERROR_VERB_NAME_TOO_LONG             176 | 
|---|
| 293 | #define PCRE2_ERROR_BACKSLASH_U_CODE_POINT_TOO_BIG 177 | 
|---|
| 294 | #define PCRE2_ERROR_MISSING_OCTAL_OR_HEX_DIGITS    178 | 
|---|
| 295 | #define PCRE2_ERROR_VERSION_CONDITION_SYNTAX       179 | 
|---|
| 296 | #define PCRE2_ERROR_INTERNAL_BAD_CODE_AUTO_POSSESS 180 | 
|---|
| 297 | #define PCRE2_ERROR_CALLOUT_NO_STRING_DELIMITER    181 | 
|---|
| 298 | #define PCRE2_ERROR_CALLOUT_BAD_STRING_DELIMITER   182 | 
|---|
| 299 | #define PCRE2_ERROR_BACKSLASH_C_CALLER_DISABLED    183 | 
|---|
| 300 | #define PCRE2_ERROR_QUERY_BARJX_NEST_TOO_DEEP      184 | 
|---|
| 301 | #define PCRE2_ERROR_BACKSLASH_C_LIBRARY_DISABLED   185 | 
|---|
| 302 | #define PCRE2_ERROR_PATTERN_TOO_COMPLICATED        186 | 
|---|
| 303 | #define PCRE2_ERROR_LOOKBEHIND_TOO_LONG            187 | 
|---|
| 304 | #define PCRE2_ERROR_PATTERN_STRING_TOO_LONG        188 | 
|---|
| 305 | #define PCRE2_ERROR_INTERNAL_BAD_CODE              189 | 
|---|
| 306 | #define PCRE2_ERROR_INTERNAL_BAD_CODE_IN_SKIP      190 | 
|---|
| 307 | #define PCRE2_ERROR_NO_SURROGATES_IN_UTF16         191 | 
|---|
| 308 | #define PCRE2_ERROR_BAD_LITERAL_OPTIONS            192 | 
|---|
| 309 | #define PCRE2_ERROR_SUPPORTED_ONLY_IN_UNICODE      193 | 
|---|
| 310 | #define PCRE2_ERROR_INVALID_HYPHEN_IN_OPTIONS      194 | 
|---|
| 311 | #define PCRE2_ERROR_ALPHA_ASSERTION_UNKNOWN        195 | 
|---|
| 312 | #define PCRE2_ERROR_SCRIPT_RUN_NOT_AVAILABLE       196 | 
|---|
| 313 | #define PCRE2_ERROR_TOO_MANY_CAPTURES              197 | 
|---|
| 314 | #define PCRE2_ERROR_CONDITION_ATOMIC_ASSERTION_EXPECTED  198 | 
|---|
| 315 | #define PCRE2_ERROR_BACKSLASH_K_IN_LOOKAROUND      199 | 
|---|
| 316 |  | 
|---|
| 317 |  | 
|---|
| 318 | /* "Expected" matching error codes: no match and partial match. */ | 
|---|
| 319 |  | 
|---|
| 320 | #define PCRE2_ERROR_NOMATCH          (-1) | 
|---|
| 321 | #define PCRE2_ERROR_PARTIAL          (-2) | 
|---|
| 322 |  | 
|---|
| 323 | /* Error codes for UTF-8 validity checks */ | 
|---|
| 324 |  | 
|---|
| 325 | #define PCRE2_ERROR_UTF8_ERR1        (-3) | 
|---|
| 326 | #define PCRE2_ERROR_UTF8_ERR2        (-4) | 
|---|
| 327 | #define PCRE2_ERROR_UTF8_ERR3        (-5) | 
|---|
| 328 | #define PCRE2_ERROR_UTF8_ERR4        (-6) | 
|---|
| 329 | #define PCRE2_ERROR_UTF8_ERR5        (-7) | 
|---|
| 330 | #define PCRE2_ERROR_UTF8_ERR6        (-8) | 
|---|
| 331 | #define PCRE2_ERROR_UTF8_ERR7        (-9) | 
|---|
| 332 | #define PCRE2_ERROR_UTF8_ERR8       (-10) | 
|---|
| 333 | #define PCRE2_ERROR_UTF8_ERR9       (-11) | 
|---|
| 334 | #define PCRE2_ERROR_UTF8_ERR10      (-12) | 
|---|
| 335 | #define PCRE2_ERROR_UTF8_ERR11      (-13) | 
|---|
| 336 | #define PCRE2_ERROR_UTF8_ERR12      (-14) | 
|---|
| 337 | #define PCRE2_ERROR_UTF8_ERR13      (-15) | 
|---|
| 338 | #define PCRE2_ERROR_UTF8_ERR14      (-16) | 
|---|
| 339 | #define PCRE2_ERROR_UTF8_ERR15      (-17) | 
|---|
| 340 | #define PCRE2_ERROR_UTF8_ERR16      (-18) | 
|---|
| 341 | #define PCRE2_ERROR_UTF8_ERR17      (-19) | 
|---|
| 342 | #define PCRE2_ERROR_UTF8_ERR18      (-20) | 
|---|
| 343 | #define PCRE2_ERROR_UTF8_ERR19      (-21) | 
|---|
| 344 | #define PCRE2_ERROR_UTF8_ERR20      (-22) | 
|---|
| 345 | #define PCRE2_ERROR_UTF8_ERR21      (-23) | 
|---|
| 346 |  | 
|---|
| 347 | /* Error codes for UTF-16 validity checks */ | 
|---|
| 348 |  | 
|---|
| 349 | #define PCRE2_ERROR_UTF16_ERR1      (-24) | 
|---|
| 350 | #define PCRE2_ERROR_UTF16_ERR2      (-25) | 
|---|
| 351 | #define PCRE2_ERROR_UTF16_ERR3      (-26) | 
|---|
| 352 |  | 
|---|
| 353 | /* Error codes for UTF-32 validity checks */ | 
|---|
| 354 |  | 
|---|
| 355 | #define PCRE2_ERROR_UTF32_ERR1      (-27) | 
|---|
| 356 | #define PCRE2_ERROR_UTF32_ERR2      (-28) | 
|---|
| 357 |  | 
|---|
| 358 | /* Miscellaneous error codes for pcre2[_dfa]_match(), substring extraction | 
|---|
| 359 | functions, context functions, and serializing functions. They are in numerical | 
|---|
| 360 | order. Originally they were in alphabetical order too, but now that PCRE2 is | 
|---|
| 361 | released, the numbers must not be changed. */ | 
|---|
| 362 |  | 
|---|
| 363 | #define PCRE2_ERROR_BADDATA           (-29) | 
|---|
| 364 | #define PCRE2_ERROR_MIXEDTABLES       (-30)  /* Name was changed */ | 
|---|
| 365 | #define PCRE2_ERROR_BADMAGIC          (-31) | 
|---|
| 366 | #define PCRE2_ERROR_BADMODE           (-32) | 
|---|
| 367 | #define PCRE2_ERROR_BADOFFSET         (-33) | 
|---|
| 368 | #define PCRE2_ERROR_BADOPTION         (-34) | 
|---|
| 369 | #define PCRE2_ERROR_BADREPLACEMENT    (-35) | 
|---|
| 370 | #define PCRE2_ERROR_BADUTFOFFSET      (-36) | 
|---|
| 371 | #define PCRE2_ERROR_CALLOUT           (-37)  /* Never used by PCRE2 itself */ | 
|---|
| 372 | #define PCRE2_ERROR_DFA_BADRESTART    (-38) | 
|---|
| 373 | #define PCRE2_ERROR_DFA_RECURSE       (-39) | 
|---|
| 374 | #define PCRE2_ERROR_DFA_UCOND         (-40) | 
|---|
| 375 | #define PCRE2_ERROR_DFA_UFUNC         (-41) | 
|---|
| 376 | #define PCRE2_ERROR_DFA_UITEM         (-42) | 
|---|
| 377 | #define PCRE2_ERROR_DFA_WSSIZE        (-43) | 
|---|
| 378 | #define PCRE2_ERROR_INTERNAL          (-44) | 
|---|
| 379 | #define PCRE2_ERROR_JIT_BADOPTION     (-45) | 
|---|
| 380 | #define PCRE2_ERROR_JIT_STACKLIMIT    (-46) | 
|---|
| 381 | #define PCRE2_ERROR_MATCHLIMIT        (-47) | 
|---|
| 382 | #define PCRE2_ERROR_NOMEMORY          (-48) | 
|---|
| 383 | #define PCRE2_ERROR_NOSUBSTRING       (-49) | 
|---|
| 384 | #define PCRE2_ERROR_NOUNIQUESUBSTRING (-50) | 
|---|
| 385 | #define PCRE2_ERROR_NULL              (-51) | 
|---|
| 386 | #define PCRE2_ERROR_RECURSELOOP       (-52) | 
|---|
| 387 | #define PCRE2_ERROR_DEPTHLIMIT        (-53) | 
|---|
| 388 | #define PCRE2_ERROR_RECURSIONLIMIT    (-53)  /* Obsolete synonym */ | 
|---|
| 389 | #define PCRE2_ERROR_UNAVAILABLE       (-54) | 
|---|
| 390 | #define PCRE2_ERROR_UNSET             (-55) | 
|---|
| 391 | #define PCRE2_ERROR_BADOFFSETLIMIT    (-56) | 
|---|
| 392 | #define PCRE2_ERROR_BADREPESCAPE      (-57) | 
|---|
| 393 | #define PCRE2_ERROR_REPMISSINGBRACE   (-58) | 
|---|
| 394 | #define PCRE2_ERROR_BADSUBSTITUTION   (-59) | 
|---|
| 395 | #define PCRE2_ERROR_BADSUBSPATTERN    (-60) | 
|---|
| 396 | #define PCRE2_ERROR_TOOMANYREPLACE    (-61) | 
|---|
| 397 | #define PCRE2_ERROR_BADSERIALIZEDDATA (-62) | 
|---|
| 398 | #define PCRE2_ERROR_HEAPLIMIT         (-63) | 
|---|
| 399 | #define PCRE2_ERROR_CONVERT_SYNTAX    (-64) | 
|---|
| 400 | #define PCRE2_ERROR_INTERNAL_DUPMATCH (-65) | 
|---|
| 401 | #define PCRE2_ERROR_DFA_UINVALID_UTF  (-66) | 
|---|
| 402 |  | 
|---|
| 403 |  | 
|---|
| 404 | /* Request types for pcre2_pattern_info() */ | 
|---|
| 405 |  | 
|---|
| 406 | #define PCRE2_INFO_ALLOPTIONS            0 | 
|---|
| 407 | #define PCRE2_INFO_ARGOPTIONS            1 | 
|---|
| 408 | #define PCRE2_INFO_BACKREFMAX            2 | 
|---|
| 409 | #define PCRE2_INFO_BSR                   3 | 
|---|
| 410 | #define PCRE2_INFO_CAPTURECOUNT          4 | 
|---|
| 411 | #define PCRE2_INFO_FIRSTCODEUNIT         5 | 
|---|
| 412 | #define PCRE2_INFO_FIRSTCODETYPE         6 | 
|---|
| 413 | #define PCRE2_INFO_FIRSTBITMAP           7 | 
|---|
| 414 | #define PCRE2_INFO_HASCRORLF             8 | 
|---|
| 415 | #define PCRE2_INFO_JCHANGED              9 | 
|---|
| 416 | #define PCRE2_INFO_JITSIZE              10 | 
|---|
| 417 | #define PCRE2_INFO_LASTCODEUNIT         11 | 
|---|
| 418 | #define PCRE2_INFO_LASTCODETYPE         12 | 
|---|
| 419 | #define PCRE2_INFO_MATCHEMPTY           13 | 
|---|
| 420 | #define PCRE2_INFO_MATCHLIMIT           14 | 
|---|
| 421 | #define PCRE2_INFO_MAXLOOKBEHIND        15 | 
|---|
| 422 | #define PCRE2_INFO_MINLENGTH            16 | 
|---|
| 423 | #define PCRE2_INFO_NAMECOUNT            17 | 
|---|
| 424 | #define PCRE2_INFO_NAMEENTRYSIZE        18 | 
|---|
| 425 | #define PCRE2_INFO_NAMETABLE            19 | 
|---|
| 426 | #define PCRE2_INFO_NEWLINE              20 | 
|---|
| 427 | #define PCRE2_INFO_DEPTHLIMIT           21 | 
|---|
| 428 | #define PCRE2_INFO_RECURSIONLIMIT       21  /* Obsolete synonym */ | 
|---|
| 429 | #define PCRE2_INFO_SIZE                 22 | 
|---|
| 430 | #define PCRE2_INFO_HASBACKSLASHC        23 | 
|---|
| 431 | #define PCRE2_INFO_FRAMESIZE            24 | 
|---|
| 432 | #define PCRE2_INFO_HEAPLIMIT            25 | 
|---|
| 433 | #define          26 | 
|---|
| 434 |  | 
|---|
| 435 | /* Request types for pcre2_config(). */ | 
|---|
| 436 |  | 
|---|
| 437 | #define PCRE2_CONFIG_BSR                     0 | 
|---|
| 438 | #define PCRE2_CONFIG_JIT                     1 | 
|---|
| 439 | #define PCRE2_CONFIG_JITTARGET               2 | 
|---|
| 440 | #define PCRE2_CONFIG_LINKSIZE                3 | 
|---|
| 441 | #define PCRE2_CONFIG_MATCHLIMIT              4 | 
|---|
| 442 | #define PCRE2_CONFIG_NEWLINE                 5 | 
|---|
| 443 | #define PCRE2_CONFIG_PARENSLIMIT             6 | 
|---|
| 444 | #define PCRE2_CONFIG_DEPTHLIMIT              7 | 
|---|
| 445 | #define PCRE2_CONFIG_RECURSIONLIMIT          7  /* Obsolete synonym */ | 
|---|
| 446 | #define PCRE2_CONFIG_STACKRECURSE            8  /* Obsolete */ | 
|---|
| 447 | #define PCRE2_CONFIG_UNICODE                 9 | 
|---|
| 448 | #define PCRE2_CONFIG_UNICODE_VERSION        10 | 
|---|
| 449 | #define PCRE2_CONFIG_VERSION                11 | 
|---|
| 450 | #define PCRE2_CONFIG_HEAPLIMIT              12 | 
|---|
| 451 | #define PCRE2_CONFIG_NEVER_BACKSLASH_C      13 | 
|---|
| 452 | #define PCRE2_CONFIG_COMPILED_WIDTHS        14 | 
|---|
| 453 | #define PCRE2_CONFIG_TABLES_LENGTH          15 | 
|---|
| 454 |  | 
|---|
| 455 |  | 
|---|
| 456 | /* Types for code units in patterns and subject strings. */ | 
|---|
| 457 |  | 
|---|
| 458 | typedef uint8_t  PCRE2_UCHAR8; | 
|---|
| 459 | typedef uint16_t PCRE2_UCHAR16; | 
|---|
| 460 | typedef uint32_t PCRE2_UCHAR32; | 
|---|
| 461 |  | 
|---|
| 462 | typedef const PCRE2_UCHAR8  *PCRE2_SPTR8; | 
|---|
| 463 | typedef const PCRE2_UCHAR16 *PCRE2_SPTR16; | 
|---|
| 464 | typedef const PCRE2_UCHAR32 *PCRE2_SPTR32; | 
|---|
| 465 |  | 
|---|
| 466 | /* The PCRE2_SIZE type is used for all string lengths and offsets in PCRE2, | 
|---|
| 467 | including pattern offsets for errors and subject offsets after a match. We | 
|---|
| 468 | define special values to indicate zero-terminated strings and unset offsets in | 
|---|
| 469 | the offset vector (ovector). */ | 
|---|
| 470 |  | 
|---|
| 471 | #define PCRE2_SIZE            size_t | 
|---|
| 472 | #define PCRE2_SIZE_MAX        SIZE_MAX | 
|---|
| 473 | #define PCRE2_ZERO_TERMINATED (~(PCRE2_SIZE)0) | 
|---|
| 474 | #define PCRE2_UNSET           (~(PCRE2_SIZE)0) | 
|---|
| 475 |  | 
|---|
| 476 | /* Generic types for opaque structures and JIT callback functions. These | 
|---|
| 477 | declarations are defined in a macro that is expanded for each width later. */ | 
|---|
| 478 |  | 
|---|
| 479 | #define PCRE2_TYPES_LIST \ | 
|---|
| 480 | struct pcre2_real_general_context; \ | 
|---|
| 481 | typedef struct pcre2_real_general_context pcre2_general_context; \ | 
|---|
| 482 | \ | 
|---|
| 483 | struct pcre2_real_compile_context; \ | 
|---|
| 484 | typedef struct pcre2_real_compile_context pcre2_compile_context; \ | 
|---|
| 485 | \ | 
|---|
| 486 | struct pcre2_real_match_context; \ | 
|---|
| 487 | typedef struct pcre2_real_match_context pcre2_match_context; \ | 
|---|
| 488 | \ | 
|---|
| 489 | struct pcre2_real_convert_context; \ | 
|---|
| 490 | typedef struct pcre2_real_convert_context pcre2_convert_context; \ | 
|---|
| 491 | \ | 
|---|
| 492 | struct pcre2_real_code; \ | 
|---|
| 493 | typedef struct pcre2_real_code pcre2_code; \ | 
|---|
| 494 | \ | 
|---|
| 495 | struct pcre2_real_match_data; \ | 
|---|
| 496 | typedef struct pcre2_real_match_data pcre2_match_data; \ | 
|---|
| 497 | \ | 
|---|
| 498 | struct pcre2_real_jit_stack; \ | 
|---|
| 499 | typedef struct pcre2_real_jit_stack pcre2_jit_stack; \ | 
|---|
| 500 | \ | 
|---|
| 501 | typedef pcre2_jit_stack *(*pcre2_jit_callback)(void *); | 
|---|
| 502 |  | 
|---|
| 503 |  | 
|---|
| 504 | /* The structures for passing out data via callout functions. We use structures | 
|---|
| 505 | so that new fields can be added on the end in future versions, without changing | 
|---|
| 506 | the API of the function, thereby allowing old clients to work without | 
|---|
| 507 | modification. Define the generic versions in a macro; the width-specific | 
|---|
| 508 | versions are generated from this macro below. */ | 
|---|
| 509 |  | 
|---|
| 510 | /* Flags for the callout_flags field. These are cleared after a callout. */ | 
|---|
| 511 |  | 
|---|
| 512 | #define PCRE2_CALLOUT_STARTMATCH    0x00000001u  /* Set for each bumpalong */ | 
|---|
| 513 | #define PCRE2_CALLOUT_BACKTRACK     0x00000002u  /* Set after a backtrack */ | 
|---|
| 514 |  | 
|---|
| 515 | #define PCRE2_STRUCTURE_LIST \ | 
|---|
| 516 | typedef struct pcre2_callout_block { \ | 
|---|
| 517 | uint32_t      version;           /* Identifies version of block */ \ | 
|---|
| 518 | /* ------------------------ Version 0 ------------------------------- */ \ | 
|---|
| 519 | uint32_t      callout_number;    /* Number compiled into pattern */ \ | 
|---|
| 520 | uint32_t      capture_top;       /* Max current capture */ \ | 
|---|
| 521 | uint32_t      capture_last;      /* Most recently closed capture */ \ | 
|---|
| 522 | PCRE2_SIZE   *offset_vector;     /* The offset vector */ \ | 
|---|
| 523 | PCRE2_SPTR    mark;              /* Pointer to current mark or NULL */ \ | 
|---|
| 524 | PCRE2_SPTR    subject;           /* The subject being matched */ \ | 
|---|
| 525 | PCRE2_SIZE    subject_length;    /* The length of the subject */ \ | 
|---|
| 526 | PCRE2_SIZE    start_match;       /* Offset to start of this match attempt */ \ | 
|---|
| 527 | PCRE2_SIZE    current_position;  /* Where we currently are in the subject */ \ | 
|---|
| 528 | PCRE2_SIZE    pattern_position;  /* Offset to next item in the pattern */ \ | 
|---|
| 529 | PCRE2_SIZE    next_item_length;  /* Length of next item in the pattern */ \ | 
|---|
| 530 | /* ------------------- Added for Version 1 -------------------------- */ \ | 
|---|
| 531 | PCRE2_SIZE    callout_string_offset; /* Offset to string within pattern */ \ | 
|---|
| 532 | PCRE2_SIZE    callout_string_length; /* Length of string compiled into pattern */ \ | 
|---|
| 533 | PCRE2_SPTR    callout_string;    /* String compiled into pattern */ \ | 
|---|
| 534 | /* ------------------- Added for Version 2 -------------------------- */ \ | 
|---|
| 535 | uint32_t      callout_flags;     /* See above for list */ \ | 
|---|
| 536 | /* ------------------------------------------------------------------ */ \ | 
|---|
| 537 | } pcre2_callout_block; \ | 
|---|
| 538 | \ | 
|---|
| 539 | typedef struct pcre2_callout_enumerate_block { \ | 
|---|
| 540 | uint32_t      version;           /* Identifies version of block */ \ | 
|---|
| 541 | /* ------------------------ Version 0 ------------------------------- */ \ | 
|---|
| 542 | PCRE2_SIZE    pattern_position;  /* Offset to next item in the pattern */ \ | 
|---|
| 543 | PCRE2_SIZE    next_item_length;  /* Length of next item in the pattern */ \ | 
|---|
| 544 | uint32_t      callout_number;    /* Number compiled into pattern */ \ | 
|---|
| 545 | PCRE2_SIZE    callout_string_offset; /* Offset to string within pattern */ \ | 
|---|
| 546 | PCRE2_SIZE    callout_string_length; /* Length of string compiled into pattern */ \ | 
|---|
| 547 | PCRE2_SPTR    callout_string;    /* String compiled into pattern */ \ | 
|---|
| 548 | /* ------------------------------------------------------------------ */ \ | 
|---|
| 549 | } pcre2_callout_enumerate_block; \ | 
|---|
| 550 | \ | 
|---|
| 551 | typedef struct pcre2_substitute_callout_block { \ | 
|---|
| 552 | uint32_t      version;           /* Identifies version of block */ \ | 
|---|
| 553 | /* ------------------------ Version 0 ------------------------------- */ \ | 
|---|
| 554 | PCRE2_SPTR    input;             /* Pointer to input subject string */ \ | 
|---|
| 555 | PCRE2_SPTR    output;            /* Pointer to output buffer */ \ | 
|---|
| 556 | PCRE2_SIZE    output_offsets[2]; /* Changed portion of the output */ \ | 
|---|
| 557 | PCRE2_SIZE   *ovector;           /* Pointer to current ovector */ \ | 
|---|
| 558 | uint32_t      oveccount;         /* Count of pairs set in ovector */ \ | 
|---|
| 559 | uint32_t      subscount;         /* Substitution number */ \ | 
|---|
| 560 | /* ------------------------------------------------------------------ */ \ | 
|---|
| 561 | } pcre2_substitute_callout_block; | 
|---|
| 562 |  | 
|---|
| 563 |  | 
|---|
| 564 | /* List the generic forms of all other functions in macros, which will be | 
|---|
| 565 | expanded for each width below. Start with functions that give general | 
|---|
| 566 | information. */ | 
|---|
| 567 |  | 
|---|
| 568 | #define PCRE2_GENERAL_INFO_FUNCTIONS \ | 
|---|
| 569 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION pcre2_config(uint32_t, void *); | 
|---|
| 570 |  | 
|---|
| 571 |  | 
|---|
| 572 | /* Functions for manipulating contexts. */ | 
|---|
| 573 |  | 
|---|
| 574 | #define PCRE2_GENERAL_CONTEXT_FUNCTIONS \ | 
|---|
| 575 | PCRE2_EXP_DECL pcre2_general_context *PCRE2_CALL_CONVENTION \ | 
|---|
| 576 | pcre2_general_context_copy(pcre2_general_context *); \ | 
|---|
| 577 | PCRE2_EXP_DECL pcre2_general_context *PCRE2_CALL_CONVENTION \ | 
|---|
| 578 | pcre2_general_context_create(void *(*)(PCRE2_SIZE, void *), \ | 
|---|
| 579 | void (*)(void *, void *), void *); \ | 
|---|
| 580 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 581 | pcre2_general_context_free(pcre2_general_context *); | 
|---|
| 582 |  | 
|---|
| 583 | #define PCRE2_COMPILE_CONTEXT_FUNCTIONS \ | 
|---|
| 584 | PCRE2_EXP_DECL pcre2_compile_context *PCRE2_CALL_CONVENTION \ | 
|---|
| 585 | pcre2_compile_context_copy(pcre2_compile_context *); \ | 
|---|
| 586 | PCRE2_EXP_DECL pcre2_compile_context *PCRE2_CALL_CONVENTION \ | 
|---|
| 587 | pcre2_compile_context_create(pcre2_general_context *);\ | 
|---|
| 588 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 589 | pcre2_compile_context_free(pcre2_compile_context *); \ | 
|---|
| 590 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 591 | pcre2_set_bsr(pcre2_compile_context *, uint32_t); \ | 
|---|
| 592 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 593 | pcre2_set_character_tables(pcre2_compile_context *, const uint8_t *); \ | 
|---|
| 594 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 595 | pcre2_set_compile_extra_options(pcre2_compile_context *, uint32_t); \ | 
|---|
| 596 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 597 | pcre2_set_max_pattern_length(pcre2_compile_context *, PCRE2_SIZE); \ | 
|---|
| 598 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 599 | pcre2_set_newline(pcre2_compile_context *, uint32_t); \ | 
|---|
| 600 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 601 | pcre2_set_parens_nest_limit(pcre2_compile_context *, uint32_t); \ | 
|---|
| 602 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 603 | pcre2_set_compile_recursion_guard(pcre2_compile_context *, \ | 
|---|
| 604 | int (*)(uint32_t, void *), void *); | 
|---|
| 605 |  | 
|---|
| 606 | #define PCRE2_MATCH_CONTEXT_FUNCTIONS \ | 
|---|
| 607 | PCRE2_EXP_DECL pcre2_match_context *PCRE2_CALL_CONVENTION \ | 
|---|
| 608 | pcre2_match_context_copy(pcre2_match_context *); \ | 
|---|
| 609 | PCRE2_EXP_DECL pcre2_match_context *PCRE2_CALL_CONVENTION \ | 
|---|
| 610 | pcre2_match_context_create(pcre2_general_context *); \ | 
|---|
| 611 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 612 | pcre2_match_context_free(pcre2_match_context *); \ | 
|---|
| 613 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 614 | pcre2_set_callout(pcre2_match_context *, \ | 
|---|
| 615 | int (*)(pcre2_callout_block *, void *), void *); \ | 
|---|
| 616 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 617 | pcre2_set_substitute_callout(pcre2_match_context *, \ | 
|---|
| 618 | int (*)(pcre2_substitute_callout_block *, void *), void *); \ | 
|---|
| 619 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 620 | pcre2_set_depth_limit(pcre2_match_context *, uint32_t); \ | 
|---|
| 621 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 622 | pcre2_set_heap_limit(pcre2_match_context *, uint32_t); \ | 
|---|
| 623 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 624 | pcre2_set_match_limit(pcre2_match_context *, uint32_t); \ | 
|---|
| 625 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 626 | pcre2_set_offset_limit(pcre2_match_context *, PCRE2_SIZE); \ | 
|---|
| 627 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 628 | pcre2_set_recursion_limit(pcre2_match_context *, uint32_t); \ | 
|---|
| 629 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 630 | pcre2_set_recursion_memory_management(pcre2_match_context *, \ | 
|---|
| 631 | void *(*)(PCRE2_SIZE, void *), void (*)(void *, void *), void *); | 
|---|
| 632 |  | 
|---|
| 633 | #define PCRE2_CONVERT_CONTEXT_FUNCTIONS \ | 
|---|
| 634 | PCRE2_EXP_DECL pcre2_convert_context *PCRE2_CALL_CONVENTION \ | 
|---|
| 635 | pcre2_convert_context_copy(pcre2_convert_context *); \ | 
|---|
| 636 | PCRE2_EXP_DECL pcre2_convert_context *PCRE2_CALL_CONVENTION \ | 
|---|
| 637 | pcre2_convert_context_create(pcre2_general_context *); \ | 
|---|
| 638 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 639 | pcre2_convert_context_free(pcre2_convert_context *); \ | 
|---|
| 640 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 641 | pcre2_set_glob_escape(pcre2_convert_context *, uint32_t); \ | 
|---|
| 642 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 643 | pcre2_set_glob_separator(pcre2_convert_context *, uint32_t); | 
|---|
| 644 |  | 
|---|
| 645 |  | 
|---|
| 646 | /* Functions concerned with compiling a pattern to PCRE internal code. */ | 
|---|
| 647 |  | 
|---|
| 648 | #define PCRE2_COMPILE_FUNCTIONS \ | 
|---|
| 649 | PCRE2_EXP_DECL pcre2_code *PCRE2_CALL_CONVENTION \ | 
|---|
| 650 | pcre2_compile(PCRE2_SPTR, PCRE2_SIZE, uint32_t, int *, PCRE2_SIZE *, \ | 
|---|
| 651 | pcre2_compile_context *); \ | 
|---|
| 652 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 653 | pcre2_code_free(pcre2_code *); \ | 
|---|
| 654 | PCRE2_EXP_DECL pcre2_code *PCRE2_CALL_CONVENTION \ | 
|---|
| 655 | pcre2_code_copy(const pcre2_code *); \ | 
|---|
| 656 | PCRE2_EXP_DECL pcre2_code *PCRE2_CALL_CONVENTION \ | 
|---|
| 657 | pcre2_code_copy_with_tables(const pcre2_code *); | 
|---|
| 658 |  | 
|---|
| 659 |  | 
|---|
| 660 | /* Functions that give information about a compiled pattern. */ | 
|---|
| 661 |  | 
|---|
| 662 | #define PCRE2_PATTERN_INFO_FUNCTIONS \ | 
|---|
| 663 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 664 | pcre2_pattern_info(const pcre2_code *, uint32_t, void *); \ | 
|---|
| 665 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 666 | pcre2_callout_enumerate(const pcre2_code *, \ | 
|---|
| 667 | int (*)(pcre2_callout_enumerate_block *, void *), void *); | 
|---|
| 668 |  | 
|---|
| 669 |  | 
|---|
| 670 | /* Functions for running a match and inspecting the result. */ | 
|---|
| 671 |  | 
|---|
| 672 | #define PCRE2_MATCH_FUNCTIONS \ | 
|---|
| 673 | PCRE2_EXP_DECL pcre2_match_data *PCRE2_CALL_CONVENTION \ | 
|---|
| 674 | pcre2_match_data_create(uint32_t, pcre2_general_context *); \ | 
|---|
| 675 | PCRE2_EXP_DECL pcre2_match_data *PCRE2_CALL_CONVENTION \ | 
|---|
| 676 | pcre2_match_data_create_from_pattern(const pcre2_code *, \ | 
|---|
| 677 | pcre2_general_context *); \ | 
|---|
| 678 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 679 | pcre2_dfa_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ | 
|---|
| 680 | uint32_t, pcre2_match_data *, pcre2_match_context *, int *, PCRE2_SIZE); \ | 
|---|
| 681 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 682 | pcre2_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ | 
|---|
| 683 | uint32_t, pcre2_match_data *, pcre2_match_context *); \ | 
|---|
| 684 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 685 | pcre2_match_data_free(pcre2_match_data *); \ | 
|---|
| 686 | PCRE2_EXP_DECL PCRE2_SPTR PCRE2_CALL_CONVENTION \ | 
|---|
| 687 | pcre2_get_mark(pcre2_match_data *); \ | 
|---|
| 688 | PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ | 
|---|
| 689 | pcre2_get_match_data_size(pcre2_match_data *); \ | 
|---|
| 690 | PCRE2_EXP_DECL uint32_t PCRE2_CALL_CONVENTION \ | 
|---|
| 691 | pcre2_get_ovector_count(pcre2_match_data *); \ | 
|---|
| 692 | PCRE2_EXP_DECL PCRE2_SIZE *PCRE2_CALL_CONVENTION \ | 
|---|
| 693 | pcre2_get_ovector_pointer(pcre2_match_data *); \ | 
|---|
| 694 | PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ | 
|---|
| 695 | pcre2_get_startchar(pcre2_match_data *); | 
|---|
| 696 |  | 
|---|
| 697 |  | 
|---|
| 698 | /* Convenience functions for handling matched substrings. */ | 
|---|
| 699 |  | 
|---|
| 700 | #define PCRE2_SUBSTRING_FUNCTIONS \ | 
|---|
| 701 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 702 | pcre2_substring_copy_byname(pcre2_match_data *, PCRE2_SPTR, PCRE2_UCHAR *, \ | 
|---|
| 703 | PCRE2_SIZE *); \ | 
|---|
| 704 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 705 | pcre2_substring_copy_bynumber(pcre2_match_data *, uint32_t, PCRE2_UCHAR *, \ | 
|---|
| 706 | PCRE2_SIZE *); \ | 
|---|
| 707 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 708 | pcre2_substring_free(PCRE2_UCHAR *); \ | 
|---|
| 709 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 710 | pcre2_substring_get_byname(pcre2_match_data *, PCRE2_SPTR, PCRE2_UCHAR **, \ | 
|---|
| 711 | PCRE2_SIZE *); \ | 
|---|
| 712 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 713 | pcre2_substring_get_bynumber(pcre2_match_data *, uint32_t, PCRE2_UCHAR **, \ | 
|---|
| 714 | PCRE2_SIZE *); \ | 
|---|
| 715 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 716 | pcre2_substring_length_byname(pcre2_match_data *, PCRE2_SPTR, PCRE2_SIZE *); \ | 
|---|
| 717 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 718 | pcre2_substring_length_bynumber(pcre2_match_data *, uint32_t, PCRE2_SIZE *); \ | 
|---|
| 719 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 720 | pcre2_substring_nametable_scan(const pcre2_code *, PCRE2_SPTR, PCRE2_SPTR *, \ | 
|---|
| 721 | PCRE2_SPTR *); \ | 
|---|
| 722 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 723 | pcre2_substring_number_from_name(const pcre2_code *, PCRE2_SPTR); \ | 
|---|
| 724 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 725 | pcre2_substring_list_free(PCRE2_SPTR *); \ | 
|---|
| 726 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 727 | pcre2_substring_list_get(pcre2_match_data *, PCRE2_UCHAR ***, PCRE2_SIZE **); | 
|---|
| 728 |  | 
|---|
| 729 | /* Functions for serializing / deserializing compiled patterns. */ | 
|---|
| 730 |  | 
|---|
| 731 | #define PCRE2_SERIALIZE_FUNCTIONS \ | 
|---|
| 732 | PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \ | 
|---|
| 733 | pcre2_serialize_encode(const pcre2_code **, int32_t, uint8_t **, \ | 
|---|
| 734 | PCRE2_SIZE *, pcre2_general_context *); \ | 
|---|
| 735 | PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \ | 
|---|
| 736 | pcre2_serialize_decode(pcre2_code **, int32_t, const uint8_t *, \ | 
|---|
| 737 | pcre2_general_context *); \ | 
|---|
| 738 | PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \ | 
|---|
| 739 | pcre2_serialize_get_number_of_codes(const uint8_t *); \ | 
|---|
| 740 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 741 | pcre2_serialize_free(uint8_t *); | 
|---|
| 742 |  | 
|---|
| 743 |  | 
|---|
| 744 | /* Convenience function for match + substitute. */ | 
|---|
| 745 |  | 
|---|
| 746 | #define PCRE2_SUBSTITUTE_FUNCTION \ | 
|---|
| 747 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 748 | pcre2_substitute(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ | 
|---|
| 749 | uint32_t, pcre2_match_data *, pcre2_match_context *, PCRE2_SPTR, \ | 
|---|
| 750 | PCRE2_SIZE, PCRE2_UCHAR *, PCRE2_SIZE *); | 
|---|
| 751 |  | 
|---|
| 752 |  | 
|---|
| 753 | /* Functions for converting pattern source strings. */ | 
|---|
| 754 |  | 
|---|
| 755 | #define PCRE2_CONVERT_FUNCTIONS \ | 
|---|
| 756 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 757 | pcre2_pattern_convert(PCRE2_SPTR, PCRE2_SIZE, uint32_t, PCRE2_UCHAR **, \ | 
|---|
| 758 | PCRE2_SIZE *, pcre2_convert_context *); \ | 
|---|
| 759 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 760 | pcre2_converted_pattern_free(PCRE2_UCHAR *); | 
|---|
| 761 |  | 
|---|
| 762 |  | 
|---|
| 763 | /* Functions for JIT processing */ | 
|---|
| 764 |  | 
|---|
| 765 | #define PCRE2_JIT_FUNCTIONS \ | 
|---|
| 766 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 767 | pcre2_jit_compile(pcre2_code *, uint32_t); \ | 
|---|
| 768 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 769 | pcre2_jit_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ | 
|---|
| 770 | uint32_t, pcre2_match_data *, pcre2_match_context *); \ | 
|---|
| 771 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 772 | pcre2_jit_free_unused_memory(pcre2_general_context *); \ | 
|---|
| 773 | PCRE2_EXP_DECL pcre2_jit_stack *PCRE2_CALL_CONVENTION \ | 
|---|
| 774 | pcre2_jit_stack_create(PCRE2_SIZE, PCRE2_SIZE, pcre2_general_context *); \ | 
|---|
| 775 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 776 | pcre2_jit_stack_assign(pcre2_match_context *, pcre2_jit_callback, void *); \ | 
|---|
| 777 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 778 | pcre2_jit_stack_free(pcre2_jit_stack *); | 
|---|
| 779 |  | 
|---|
| 780 |  | 
|---|
| 781 | /* Other miscellaneous functions. */ | 
|---|
| 782 |  | 
|---|
| 783 | #define PCRE2_OTHER_FUNCTIONS \ | 
|---|
| 784 | PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ | 
|---|
| 785 | pcre2_get_error_message(int, PCRE2_UCHAR *, PCRE2_SIZE); \ | 
|---|
| 786 | PCRE2_EXP_DECL const uint8_t *PCRE2_CALL_CONVENTION \ | 
|---|
| 787 | pcre2_maketables(pcre2_general_context *); \ | 
|---|
| 788 | PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ | 
|---|
| 789 | pcre2_maketables_free(pcre2_general_context *, const uint8_t *); | 
|---|
| 790 |  | 
|---|
| 791 | /* Define macros that generate width-specific names from generic versions. The | 
|---|
| 792 | three-level macro scheme is necessary to get the macros expanded when we want | 
|---|
| 793 | them to be. First we get the width from PCRE2_LOCAL_WIDTH, which is used for | 
|---|
| 794 | generating three versions of everything below. After that, PCRE2_SUFFIX will be | 
|---|
| 795 | re-defined to use PCRE2_CODE_UNIT_WIDTH, for use when macros such as | 
|---|
| 796 | pcre2_compile are called by application code. */ | 
|---|
| 797 |  | 
|---|
| 798 | #define PCRE2_JOIN(a,b) a ## b | 
|---|
| 799 | #define PCRE2_GLUE(a,b) PCRE2_JOIN(a,b) | 
|---|
| 800 | #define PCRE2_SUFFIX(a) PCRE2_GLUE(a,PCRE2_LOCAL_WIDTH) | 
|---|
| 801 |  | 
|---|
| 802 |  | 
|---|
| 803 | /* Data types */ | 
|---|
| 804 |  | 
|---|
| 805 | #define PCRE2_UCHAR                 PCRE2_SUFFIX(PCRE2_UCHAR) | 
|---|
| 806 | #define PCRE2_SPTR                  PCRE2_SUFFIX(PCRE2_SPTR) | 
|---|
| 807 |  | 
|---|
| 808 | #define pcre2_code                  PCRE2_SUFFIX(pcre2_code_) | 
|---|
| 809 | #define pcre2_jit_callback          PCRE2_SUFFIX(pcre2_jit_callback_) | 
|---|
| 810 | #define pcre2_jit_stack             PCRE2_SUFFIX(pcre2_jit_stack_) | 
|---|
| 811 |  | 
|---|
| 812 | #define pcre2_real_code             PCRE2_SUFFIX(pcre2_real_code_) | 
|---|
| 813 | #define pcre2_real_general_context  PCRE2_SUFFIX(pcre2_real_general_context_) | 
|---|
| 814 | #define pcre2_real_compile_context  PCRE2_SUFFIX(pcre2_real_compile_context_) | 
|---|
| 815 | #define pcre2_real_convert_context  PCRE2_SUFFIX(pcre2_real_convert_context_) | 
|---|
| 816 | #define pcre2_real_match_context    PCRE2_SUFFIX(pcre2_real_match_context_) | 
|---|
| 817 | #define pcre2_real_jit_stack        PCRE2_SUFFIX(pcre2_real_jit_stack_) | 
|---|
| 818 | #define pcre2_real_match_data       PCRE2_SUFFIX(pcre2_real_match_data_) | 
|---|
| 819 |  | 
|---|
| 820 |  | 
|---|
| 821 | /* Data blocks */ | 
|---|
| 822 |  | 
|---|
| 823 | #define pcre2_callout_block            PCRE2_SUFFIX(pcre2_callout_block_) | 
|---|
| 824 | #define pcre2_callout_enumerate_block  PCRE2_SUFFIX(pcre2_callout_enumerate_block_) | 
|---|
| 825 | #define pcre2_substitute_callout_block PCRE2_SUFFIX(pcre2_substitute_callout_block_) | 
|---|
| 826 | #define pcre2_general_context          PCRE2_SUFFIX(pcre2_general_context_) | 
|---|
| 827 | #define pcre2_compile_context          PCRE2_SUFFIX(pcre2_compile_context_) | 
|---|
| 828 | #define pcre2_convert_context          PCRE2_SUFFIX(pcre2_convert_context_) | 
|---|
| 829 | #define pcre2_match_context            PCRE2_SUFFIX(pcre2_match_context_) | 
|---|
| 830 | #define pcre2_match_data               PCRE2_SUFFIX(pcre2_match_data_) | 
|---|
| 831 |  | 
|---|
| 832 |  | 
|---|
| 833 | /* Functions: the complete list in alphabetical order */ | 
|---|
| 834 |  | 
|---|
| 835 | #define pcre2_callout_enumerate               PCRE2_SUFFIX(pcre2_callout_enumerate_) | 
|---|
| 836 | #define pcre2_code_copy                       PCRE2_SUFFIX(pcre2_code_copy_) | 
|---|
| 837 | #define pcre2_code_copy_with_tables           PCRE2_SUFFIX(pcre2_code_copy_with_tables_) | 
|---|
| 838 | #define pcre2_code_free                       PCRE2_SUFFIX(pcre2_code_free_) | 
|---|
| 839 | #define pcre2_compile                         PCRE2_SUFFIX(pcre2_compile_) | 
|---|
| 840 | #define pcre2_compile_context_copy            PCRE2_SUFFIX(pcre2_compile_context_copy_) | 
|---|
| 841 | #define pcre2_compile_context_create          PCRE2_SUFFIX(pcre2_compile_context_create_) | 
|---|
| 842 | #define pcre2_compile_context_free            PCRE2_SUFFIX(pcre2_compile_context_free_) | 
|---|
| 843 | #define pcre2_config                          PCRE2_SUFFIX(pcre2_config_) | 
|---|
| 844 | #define pcre2_convert_context_copy            PCRE2_SUFFIX(pcre2_convert_context_copy_) | 
|---|
| 845 | #define pcre2_convert_context_create          PCRE2_SUFFIX(pcre2_convert_context_create_) | 
|---|
| 846 | #define pcre2_convert_context_free            PCRE2_SUFFIX(pcre2_convert_context_free_) | 
|---|
| 847 | #define pcre2_converted_pattern_free          PCRE2_SUFFIX(pcre2_converted_pattern_free_) | 
|---|
| 848 | #define pcre2_dfa_match                       PCRE2_SUFFIX(pcre2_dfa_match_) | 
|---|
| 849 | #define pcre2_general_context_copy            PCRE2_SUFFIX(pcre2_general_context_copy_) | 
|---|
| 850 | #define pcre2_general_context_create          PCRE2_SUFFIX(pcre2_general_context_create_) | 
|---|
| 851 | #define pcre2_general_context_free            PCRE2_SUFFIX(pcre2_general_context_free_) | 
|---|
| 852 | #define pcre2_get_error_message               PCRE2_SUFFIX(pcre2_get_error_message_) | 
|---|
| 853 | #define pcre2_get_mark                        PCRE2_SUFFIX(pcre2_get_mark_) | 
|---|
| 854 | #define pcre2_get_match_data_size             PCRE2_SUFFIX(pcre2_get_match_data_size_) | 
|---|
| 855 | #define pcre2_get_ovector_pointer             PCRE2_SUFFIX(pcre2_get_ovector_pointer_) | 
|---|
| 856 | #define pcre2_get_ovector_count               PCRE2_SUFFIX(pcre2_get_ovector_count_) | 
|---|
| 857 | #define pcre2_get_startchar                   PCRE2_SUFFIX(pcre2_get_startchar_) | 
|---|
| 858 | #define pcre2_jit_compile                     PCRE2_SUFFIX(pcre2_jit_compile_) | 
|---|
| 859 | #define pcre2_jit_match                       PCRE2_SUFFIX(pcre2_jit_match_) | 
|---|
| 860 | #define pcre2_jit_free_unused_memory          PCRE2_SUFFIX(pcre2_jit_free_unused_memory_) | 
|---|
| 861 | #define pcre2_jit_stack_assign                PCRE2_SUFFIX(pcre2_jit_stack_assign_) | 
|---|
| 862 | #define pcre2_jit_stack_create                PCRE2_SUFFIX(pcre2_jit_stack_create_) | 
|---|
| 863 | #define pcre2_jit_stack_free                  PCRE2_SUFFIX(pcre2_jit_stack_free_) | 
|---|
| 864 | #define pcre2_maketables                      PCRE2_SUFFIX(pcre2_maketables_) | 
|---|
| 865 | #define pcre2_maketables_free                 PCRE2_SUFFIX(pcre2_maketables_free_) | 
|---|
| 866 | #define pcre2_match                           PCRE2_SUFFIX(pcre2_match_) | 
|---|
| 867 | #define pcre2_match_context_copy              PCRE2_SUFFIX(pcre2_match_context_copy_) | 
|---|
| 868 | #define pcre2_match_context_create            PCRE2_SUFFIX(pcre2_match_context_create_) | 
|---|
| 869 | #define pcre2_match_context_free              PCRE2_SUFFIX(pcre2_match_context_free_) | 
|---|
| 870 | #define pcre2_match_data_create               PCRE2_SUFFIX(pcre2_match_data_create_) | 
|---|
| 871 | #define pcre2_match_data_create_from_pattern  PCRE2_SUFFIX(pcre2_match_data_create_from_pattern_) | 
|---|
| 872 | #define pcre2_match_data_free                 PCRE2_SUFFIX(pcre2_match_data_free_) | 
|---|
| 873 | #define pcre2_pattern_convert                 PCRE2_SUFFIX(pcre2_pattern_convert_) | 
|---|
| 874 | #define pcre2_pattern_info                    PCRE2_SUFFIX(pcre2_pattern_info_) | 
|---|
| 875 | #define pcre2_serialize_decode                PCRE2_SUFFIX(pcre2_serialize_decode_) | 
|---|
| 876 | #define pcre2_serialize_encode                PCRE2_SUFFIX(pcre2_serialize_encode_) | 
|---|
| 877 | #define pcre2_serialize_free                  PCRE2_SUFFIX(pcre2_serialize_free_) | 
|---|
| 878 | #define pcre2_serialize_get_number_of_codes   PCRE2_SUFFIX(pcre2_serialize_get_number_of_codes_) | 
|---|
| 879 | #define pcre2_set_bsr                         PCRE2_SUFFIX(pcre2_set_bsr_) | 
|---|
| 880 | #define pcre2_set_callout                     PCRE2_SUFFIX(pcre2_set_callout_) | 
|---|
| 881 | #define pcre2_set_character_tables            PCRE2_SUFFIX(pcre2_set_character_tables_) | 
|---|
| 882 | #define        PCRE2_SUFFIX(pcre2_set_compile_extra_options_) | 
|---|
| 883 | #define pcre2_set_compile_recursion_guard     PCRE2_SUFFIX(pcre2_set_compile_recursion_guard_) | 
|---|
| 884 | #define pcre2_set_depth_limit                 PCRE2_SUFFIX(pcre2_set_depth_limit_) | 
|---|
| 885 | #define pcre2_set_glob_escape                 PCRE2_SUFFIX(pcre2_set_glob_escape_) | 
|---|
| 886 | #define pcre2_set_glob_separator              PCRE2_SUFFIX(pcre2_set_glob_separator_) | 
|---|
| 887 | #define pcre2_set_heap_limit                  PCRE2_SUFFIX(pcre2_set_heap_limit_) | 
|---|
| 888 | #define pcre2_set_match_limit                 PCRE2_SUFFIX(pcre2_set_match_limit_) | 
|---|
| 889 | #define pcre2_set_max_pattern_length          PCRE2_SUFFIX(pcre2_set_max_pattern_length_) | 
|---|
| 890 | #define pcre2_set_newline                     PCRE2_SUFFIX(pcre2_set_newline_) | 
|---|
| 891 | #define pcre2_set_parens_nest_limit           PCRE2_SUFFIX(pcre2_set_parens_nest_limit_) | 
|---|
| 892 | #define pcre2_set_offset_limit                PCRE2_SUFFIX(pcre2_set_offset_limit_) | 
|---|
| 893 | #define pcre2_set_substitute_callout          PCRE2_SUFFIX(pcre2_set_substitute_callout_) | 
|---|
| 894 | #define pcre2_substitute                      PCRE2_SUFFIX(pcre2_substitute_) | 
|---|
| 895 | #define pcre2_substring_copy_byname           PCRE2_SUFFIX(pcre2_substring_copy_byname_) | 
|---|
| 896 | #define pcre2_substring_copy_bynumber         PCRE2_SUFFIX(pcre2_substring_copy_bynumber_) | 
|---|
| 897 | #define pcre2_substring_free                  PCRE2_SUFFIX(pcre2_substring_free_) | 
|---|
| 898 | #define pcre2_substring_get_byname            PCRE2_SUFFIX(pcre2_substring_get_byname_) | 
|---|
| 899 | #define pcre2_substring_get_bynumber          PCRE2_SUFFIX(pcre2_substring_get_bynumber_) | 
|---|
| 900 | #define pcre2_substring_length_byname         PCRE2_SUFFIX(pcre2_substring_length_byname_) | 
|---|
| 901 | #define pcre2_substring_length_bynumber       PCRE2_SUFFIX(pcre2_substring_length_bynumber_) | 
|---|
| 902 | #define pcre2_substring_list_get              PCRE2_SUFFIX(pcre2_substring_list_get_) | 
|---|
| 903 | #define pcre2_substring_list_free             PCRE2_SUFFIX(pcre2_substring_list_free_) | 
|---|
| 904 | #define pcre2_substring_nametable_scan        PCRE2_SUFFIX(pcre2_substring_nametable_scan_) | 
|---|
| 905 | #define pcre2_substring_number_from_name      PCRE2_SUFFIX(pcre2_substring_number_from_name_) | 
|---|
| 906 |  | 
|---|
| 907 | /* Keep this old function name for backwards compatibility */ | 
|---|
| 908 | #define pcre2_set_recursion_limit PCRE2_SUFFIX(pcre2_set_recursion_limit_) | 
|---|
| 909 |  | 
|---|
| 910 | /* Keep this obsolete function for backwards compatibility: it is now a noop. */ | 
|---|
| 911 | #define pcre2_set_recursion_memory_management PCRE2_SUFFIX(pcre2_set_recursion_memory_management_) | 
|---|
| 912 |  | 
|---|
| 913 | /* Now generate all three sets of width-specific structures and function | 
|---|
| 914 | prototypes. */ | 
|---|
| 915 |  | 
|---|
| 916 | #define PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS \ | 
|---|
| 917 | PCRE2_TYPES_LIST \ | 
|---|
| 918 | PCRE2_STRUCTURE_LIST \ | 
|---|
| 919 | PCRE2_GENERAL_INFO_FUNCTIONS \ | 
|---|
| 920 | PCRE2_GENERAL_CONTEXT_FUNCTIONS \ | 
|---|
| 921 | PCRE2_COMPILE_CONTEXT_FUNCTIONS \ | 
|---|
| 922 | PCRE2_CONVERT_CONTEXT_FUNCTIONS \ | 
|---|
| 923 | PCRE2_CONVERT_FUNCTIONS \ | 
|---|
| 924 | PCRE2_MATCH_CONTEXT_FUNCTIONS \ | 
|---|
| 925 | PCRE2_COMPILE_FUNCTIONS \ | 
|---|
| 926 | PCRE2_PATTERN_INFO_FUNCTIONS \ | 
|---|
| 927 | PCRE2_MATCH_FUNCTIONS \ | 
|---|
| 928 | PCRE2_SUBSTRING_FUNCTIONS \ | 
|---|
| 929 | PCRE2_SERIALIZE_FUNCTIONS \ | 
|---|
| 930 | PCRE2_SUBSTITUTE_FUNCTION \ | 
|---|
| 931 | PCRE2_JIT_FUNCTIONS \ | 
|---|
| 932 | PCRE2_OTHER_FUNCTIONS | 
|---|
| 933 |  | 
|---|
| 934 | #define PCRE2_LOCAL_WIDTH 8 | 
|---|
| 935 | PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS | 
|---|
| 936 | #undef PCRE2_LOCAL_WIDTH | 
|---|
| 937 |  | 
|---|
| 938 | #define PCRE2_LOCAL_WIDTH 16 | 
|---|
| 939 | PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS | 
|---|
| 940 | #undef PCRE2_LOCAL_WIDTH | 
|---|
| 941 |  | 
|---|
| 942 | #define PCRE2_LOCAL_WIDTH 32 | 
|---|
| 943 | PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS | 
|---|
| 944 | #undef PCRE2_LOCAL_WIDTH | 
|---|
| 945 |  | 
|---|
| 946 | /* Undefine the list macros; they are no longer needed. */ | 
|---|
| 947 |  | 
|---|
| 948 | #undef PCRE2_TYPES_LIST | 
|---|
| 949 | #undef PCRE2_STRUCTURE_LIST | 
|---|
| 950 | #undef PCRE2_GENERAL_INFO_FUNCTIONS | 
|---|
| 951 | #undef PCRE2_GENERAL_CONTEXT_FUNCTIONS | 
|---|
| 952 | #undef PCRE2_COMPILE_CONTEXT_FUNCTIONS | 
|---|
| 953 | #undef PCRE2_CONVERT_CONTEXT_FUNCTIONS | 
|---|
| 954 | #undef PCRE2_MATCH_CONTEXT_FUNCTIONS | 
|---|
| 955 | #undef PCRE2_COMPILE_FUNCTIONS | 
|---|
| 956 | #undef PCRE2_PATTERN_INFO_FUNCTIONS | 
|---|
| 957 | #undef PCRE2_MATCH_FUNCTIONS | 
|---|
| 958 | #undef PCRE2_SUBSTRING_FUNCTIONS | 
|---|
| 959 | #undef PCRE2_SERIALIZE_FUNCTIONS | 
|---|
| 960 | #undef PCRE2_SUBSTITUTE_FUNCTION | 
|---|
| 961 | #undef PCRE2_JIT_FUNCTIONS | 
|---|
| 962 | #undef PCRE2_OTHER_FUNCTIONS | 
|---|
| 963 | #undef PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS | 
|---|
| 964 |  | 
|---|
| 965 | /* PCRE2_CODE_UNIT_WIDTH must be defined. If it is 8, 16, or 32, redefine | 
|---|
| 966 | PCRE2_SUFFIX to use it. If it is 0, undefine the other macros and make | 
|---|
| 967 | PCRE2_SUFFIX a no-op. Otherwise, generate an error. */ | 
|---|
| 968 |  | 
|---|
| 969 | #undef PCRE2_SUFFIX | 
|---|
| 970 | #ifndef PCRE2_CODE_UNIT_WIDTH | 
|---|
| 971 | #error PCRE2_CODE_UNIT_WIDTH must be defined before including pcre2.h. | 
|---|
| 972 | #error Use 8, 16, or 32; or 0 for a multi-width application. | 
|---|
| 973 | #else  /* PCRE2_CODE_UNIT_WIDTH is defined */ | 
|---|
| 974 | #if PCRE2_CODE_UNIT_WIDTH == 8 || \ | 
|---|
| 975 | PCRE2_CODE_UNIT_WIDTH == 16 || \ | 
|---|
| 976 | PCRE2_CODE_UNIT_WIDTH == 32 | 
|---|
| 977 | #define PCRE2_SUFFIX(a) PCRE2_GLUE(a, PCRE2_CODE_UNIT_WIDTH) | 
|---|
| 978 | #elif PCRE2_CODE_UNIT_WIDTH == 0 | 
|---|
| 979 | #undef PCRE2_JOIN | 
|---|
| 980 | #undef PCRE2_GLUE | 
|---|
| 981 | #define PCRE2_SUFFIX(a) a | 
|---|
| 982 | #else | 
|---|
| 983 | #error PCRE2_CODE_UNIT_WIDTH must be 0, 8, 16, or 32. | 
|---|
| 984 | #endif | 
|---|
| 985 | #endif  /* PCRE2_CODE_UNIT_WIDTH is defined */ | 
|---|
| 986 |  | 
|---|
| 987 | #ifdef __cplusplus | 
|---|
| 988 | }  /* extern "C" */ | 
|---|
| 989 | #endif | 
|---|
| 990 |  | 
|---|
| 991 | #endif  /* PCRE2_H_IDEMPOTENT_GUARD */ | 
|---|
| 992 |  | 
|---|
| 993 | /* End of pcre2.h */ | 
|---|
| 994 |  | 
|---|