Mercurial > hg > nginx
annotate src/core/ngx_regex.h @ 9329:eebab9268326 default tip
MIME: added mjs extension to text/javascript.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 31 Aug 2024 05:40:14 +0300 |
parents | d07456044b61 |
children |
rev | line source |
---|---|
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
216
diff
changeset
|
1 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
216
diff
changeset
|
2 /* |
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
441
diff
changeset
|
3 * Copyright (C) Igor Sysoev |
4412 | 4 * Copyright (C) Nginx, Inc. |
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
216
diff
changeset
|
5 */ |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
216
diff
changeset
|
6 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
216
diff
changeset
|
7 |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 #ifndef _NGX_REGEX_H_INCLUDED_ |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 #define _NGX_REGEX_H_INCLUDED_ |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
12 #include <ngx_config.h> |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
13 #include <ngx_core.h> |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
14 |
7981 | 15 |
16 #if (NGX_PCRE2) | |
17 | |
18 #define PCRE2_CODE_UNIT_WIDTH 8 | |
19 #include <pcre2.h> | |
20 | |
21 #define NGX_REGEX_NO_MATCHED PCRE2_ERROR_NOMATCH /* -1 */ | |
22 | |
23 typedef pcre2_code ngx_regex_t; | |
24 | |
25 #else | |
26 | |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
27 #include <pcre.h> |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
28 |
7981 | 29 #define NGX_REGEX_NO_MATCHED PCRE_ERROR_NOMATCH /* -1 */ |
4388
005fc2d5e84f
Added support for regex study and PCRE JIT (ticket #41) optimizations on
Valentin Bartenev <vbart@nginx.com>
parents:
3325
diff
changeset
|
30 |
005fc2d5e84f
Added support for regex study and PCRE JIT (ticket #41) optimizations on
Valentin Bartenev <vbart@nginx.com>
parents:
3325
diff
changeset
|
31 typedef struct { |
4638
6e1a48bcf915
Fixed the ngx_regex.h header file compatibility with C++.
Valentin Bartenev <vbart@nginx.com>
parents:
4412
diff
changeset
|
32 pcre *code; |
4388
005fc2d5e84f
Added support for regex study and PCRE JIT (ticket #41) optimizations on
Valentin Bartenev <vbart@nginx.com>
parents:
3325
diff
changeset
|
33 pcre_extra *extra; |
005fc2d5e84f
Added support for regex study and PCRE JIT (ticket #41) optimizations on
Valentin Bartenev <vbart@nginx.com>
parents:
3325
diff
changeset
|
34 } ngx_regex_t; |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
35 |
7981 | 36 #endif |
37 | |
3325 | 38 |
7982
fbbb5ce52995
PCRE2 and PCRE binary compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7981
diff
changeset
|
39 #define NGX_REGEX_CASELESS 0x00000001 |
7983
d07456044b61
Core: added NGX_REGEX_MULTILINE for 3rd party modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7982
diff
changeset
|
40 #define NGX_REGEX_MULTILINE 0x00000002 |
7982
fbbb5ce52995
PCRE2 and PCRE binary compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7981
diff
changeset
|
41 |
fbbb5ce52995
PCRE2 and PCRE binary compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7981
diff
changeset
|
42 |
1784 | 43 typedef struct { |
3325 | 44 ngx_str_t pattern; |
45 ngx_pool_t *pool; | |
7982
fbbb5ce52995
PCRE2 and PCRE binary compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7981
diff
changeset
|
46 ngx_uint_t options; |
3325 | 47 |
48 ngx_regex_t *regex; | |
49 int captures; | |
50 int named_captures; | |
51 int name_size; | |
52 u_char *names; | |
53 ngx_str_t err; | |
54 } ngx_regex_compile_t; | |
55 | |
56 | |
57 typedef struct { | |
58 ngx_regex_t *regex; | |
59 u_char *name; | |
1784 | 60 } ngx_regex_elt_t; |
61 | |
62 | |
499 | 63 void ngx_regex_init(void); |
3325 | 64 ngx_int_t ngx_regex_compile(ngx_regex_compile_t *rc); |
3319
be47fe127f8c
ngx_regex_exec() calling optimiztion:
Igor Sysoev <igor@sysoev.ru>
parents:
1784
diff
changeset
|
65 |
7981 | 66 ngx_int_t ngx_regex_exec(ngx_regex_t *re, ngx_str_t *s, int *captures, |
67 ngx_uint_t size); | |
7982
fbbb5ce52995
PCRE2 and PCRE binary compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7981
diff
changeset
|
68 |
fbbb5ce52995
PCRE2 and PCRE binary compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7981
diff
changeset
|
69 #if (NGX_PCRE2) |
7981 | 70 #define ngx_regex_exec_n "pcre2_match()" |
71 #else | |
72 #define ngx_regex_exec_n "pcre_exec()" | |
73 #endif | |
3319
be47fe127f8c
ngx_regex_exec() calling optimiztion:
Igor Sysoev <igor@sysoev.ru>
parents:
1784
diff
changeset
|
74 |
1784 | 75 ngx_int_t ngx_regex_exec_array(ngx_array_t *a, ngx_str_t *s, ngx_log_t *log); |
76 | |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
77 |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
78 #endif /* _NGX_REGEX_H_INCLUDED_ */ |