xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/regex.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker #ifndef _REGEX_H
2*cda5da8dSAndroid Build Coastguard Worker #define _REGEX_H
3*cda5da8dSAndroid Build Coastguard Worker 
4*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus
5*cda5da8dSAndroid Build Coastguard Worker extern "C" {
6*cda5da8dSAndroid Build Coastguard Worker #endif
7*cda5da8dSAndroid Build Coastguard Worker 
8*cda5da8dSAndroid Build Coastguard Worker #include <features.h>
9*cda5da8dSAndroid Build Coastguard Worker 
10*cda5da8dSAndroid Build Coastguard Worker #define __NEED_regoff_t
11*cda5da8dSAndroid Build Coastguard Worker #define __NEED_size_t
12*cda5da8dSAndroid Build Coastguard Worker 
13*cda5da8dSAndroid Build Coastguard Worker #include <bits/alltypes.h>
14*cda5da8dSAndroid Build Coastguard Worker 
15*cda5da8dSAndroid Build Coastguard Worker typedef struct re_pattern_buffer {
16*cda5da8dSAndroid Build Coastguard Worker 	size_t re_nsub;
17*cda5da8dSAndroid Build Coastguard Worker 	void *__opaque, *__padding[4];
18*cda5da8dSAndroid Build Coastguard Worker 	size_t __nsub2;
19*cda5da8dSAndroid Build Coastguard Worker 	char __padding2;
20*cda5da8dSAndroid Build Coastguard Worker } regex_t;
21*cda5da8dSAndroid Build Coastguard Worker 
22*cda5da8dSAndroid Build Coastguard Worker typedef struct {
23*cda5da8dSAndroid Build Coastguard Worker 	regoff_t rm_so;
24*cda5da8dSAndroid Build Coastguard Worker 	regoff_t rm_eo;
25*cda5da8dSAndroid Build Coastguard Worker } regmatch_t;
26*cda5da8dSAndroid Build Coastguard Worker 
27*cda5da8dSAndroid Build Coastguard Worker #define REG_EXTENDED    1
28*cda5da8dSAndroid Build Coastguard Worker #define REG_ICASE       2
29*cda5da8dSAndroid Build Coastguard Worker #define REG_NEWLINE     4
30*cda5da8dSAndroid Build Coastguard Worker #define REG_NOSUB       8
31*cda5da8dSAndroid Build Coastguard Worker 
32*cda5da8dSAndroid Build Coastguard Worker #define REG_NOTBOL      1
33*cda5da8dSAndroid Build Coastguard Worker #define REG_NOTEOL      2
34*cda5da8dSAndroid Build Coastguard Worker 
35*cda5da8dSAndroid Build Coastguard Worker #define REG_OK          0
36*cda5da8dSAndroid Build Coastguard Worker #define REG_NOMATCH     1
37*cda5da8dSAndroid Build Coastguard Worker #define REG_BADPAT      2
38*cda5da8dSAndroid Build Coastguard Worker #define REG_ECOLLATE    3
39*cda5da8dSAndroid Build Coastguard Worker #define REG_ECTYPE      4
40*cda5da8dSAndroid Build Coastguard Worker #define REG_EESCAPE     5
41*cda5da8dSAndroid Build Coastguard Worker #define REG_ESUBREG     6
42*cda5da8dSAndroid Build Coastguard Worker #define REG_EBRACK      7
43*cda5da8dSAndroid Build Coastguard Worker #define REG_EPAREN      8
44*cda5da8dSAndroid Build Coastguard Worker #define REG_EBRACE      9
45*cda5da8dSAndroid Build Coastguard Worker #define REG_BADBR       10
46*cda5da8dSAndroid Build Coastguard Worker #define REG_ERANGE      11
47*cda5da8dSAndroid Build Coastguard Worker #define REG_ESPACE      12
48*cda5da8dSAndroid Build Coastguard Worker #define REG_BADRPT      13
49*cda5da8dSAndroid Build Coastguard Worker 
50*cda5da8dSAndroid Build Coastguard Worker #define REG_ENOSYS      -1
51*cda5da8dSAndroid Build Coastguard Worker 
52*cda5da8dSAndroid Build Coastguard Worker int regcomp(regex_t *__restrict, const char *__restrict, int);
53*cda5da8dSAndroid Build Coastguard Worker int regexec(const regex_t *__restrict, const char *__restrict, size_t, regmatch_t *__restrict, int);
54*cda5da8dSAndroid Build Coastguard Worker void regfree(regex_t *);
55*cda5da8dSAndroid Build Coastguard Worker 
56*cda5da8dSAndroid Build Coastguard Worker size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t);
57*cda5da8dSAndroid Build Coastguard Worker 
58*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus
59*cda5da8dSAndroid Build Coastguard Worker }
60*cda5da8dSAndroid Build Coastguard Worker #endif
61*cda5da8dSAndroid Build Coastguard Worker 
62*cda5da8dSAndroid Build Coastguard Worker #endif
63