aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_regex.h
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2021-12-29 15:17:26 +0300
committerSergey Kandaurov <pluknet@nginx.com>2021-12-29 15:17:26 +0300
commitf3363a8dbe29b3159881e259b2690c78757c946f (patch)
treedfc3e7dd6803c65a8b2a94c941fe258d05f6c756 /src/core/ngx_regex.h
parentfa21bf0cc7ba2d94f66a061d644163547d79e6a2 (diff)
parent054944feb352ce16c5ef99e3fb58b8fd5796c0f1 (diff)
downloadnginx-f3363a8dbe29b3159881e259b2690c78757c946f.tar.gz
nginx-f3363a8dbe29b3159881e259b2690c78757c946f.zip
Merged with the default branch.
Diffstat (limited to 'src/core/ngx_regex.h')
-rw-r--r--src/core/ngx_regex.h34
1 files changed, 26 insertions, 8 deletions
diff --git a/src/core/ngx_regex.h b/src/core/ngx_regex.h
index 680486c81..182373a22 100644
--- a/src/core/ngx_regex.h
+++ b/src/core/ngx_regex.h
@@ -12,24 +12,38 @@
#include <ngx_config.h>
#include <ngx_core.h>
-#include <pcre.h>
+#if (NGX_PCRE2)
+
+#define PCRE2_CODE_UNIT_WIDTH 8
+#include <pcre2.h>
+
+#define NGX_REGEX_NO_MATCHED PCRE2_ERROR_NOMATCH /* -1 */
-#define NGX_REGEX_NO_MATCHED PCRE_ERROR_NOMATCH /* -1 */
+typedef pcre2_code ngx_regex_t;
-#define NGX_REGEX_CASELESS PCRE_CASELESS
+#else
+
+#include <pcre.h>
+#define NGX_REGEX_NO_MATCHED PCRE_ERROR_NOMATCH /* -1 */
typedef struct {
pcre *code;
pcre_extra *extra;
} ngx_regex_t;
+#endif
+
+
+#define NGX_REGEX_CASELESS 0x00000001
+#define NGX_REGEX_MULTILINE 0x00000002
+
typedef struct {
ngx_str_t pattern;
ngx_pool_t *pool;
- ngx_int_t options;
+ ngx_uint_t options;
ngx_regex_t *regex;
int captures;
@@ -49,10 +63,14 @@ typedef struct {
void ngx_regex_init(void);
ngx_int_t ngx_regex_compile(ngx_regex_compile_t *rc);
-#define ngx_regex_exec(re, s, captures, size) \
- pcre_exec(re->code, re->extra, (const char *) (s)->data, (s)->len, 0, 0, \
- captures, size)
-#define ngx_regex_exec_n "pcre_exec()"
+ngx_int_t ngx_regex_exec(ngx_regex_t *re, ngx_str_t *s, int *captures,
+ ngx_uint_t size);
+
+#if (NGX_PCRE2)
+#define ngx_regex_exec_n "pcre2_match()"
+#else
+#define ngx_regex_exec_n "pcre_exec()"
+#endif
ngx_int_t ngx_regex_exec_array(ngx_array_t *a, ngx_str_t *s, ngx_log_t *log);