1 | #ifndef DEFINE_FUNC_ATTRIBUTES |
2 | # define DEFINE_FUNC_ATTRIBUTES |
3 | #endif |
4 | #include "nvim/func_attr.h" |
5 | #undef DEFINE_FUNC_ATTRIBUTES |
6 | static int no_Magic(int x); |
7 | static int toggle_Magic(int x); |
8 | static int re_multi_type(int c); |
9 | static int backslash_trans(int c); |
10 | static int get_char_class(char_u **pp); |
11 | static void init_class_tab(void); |
12 | static int get_equi_class(char_u **pp); |
13 | static void reg_equi_class(int c); |
14 | static int get_coll_element(char_u **pp); |
15 | static void get_cpo_flags(void); |
16 | static char_u *skip_anyof(char_u *p); |
17 | static int seen_endbrace(int refnum); |
18 | static regprog_T *bt_regcomp(char_u *expr, int re_flags); |
19 | static void bt_regfree(regprog_T *prog); |
20 | static void regcomp_start(char_u *expr, int re_flags ); |
21 | static char_u *reg(int paren, int *flagp ); |
22 | static char_u *regbranch(int *flagp); |
23 | static char_u *regconcat(int *flagp); |
24 | static char_u *regpiece(int *flagp); |
25 | static char_u *regatom(int *flagp); |
26 | static _Bool re_mult_next(char *what); |
27 | static int use_multibytecode(int c); |
28 | static char_u *regnode(int op); |
29 | static void regc(int b); |
30 | static void regmbc(int c); |
31 | static void reginsert(int op, char_u *opnd); |
32 | static void reginsert_nr(int op, long val, char_u *opnd); |
33 | static void reginsert_limits(int op, long minval, long maxval, char_u *opnd); |
34 | static char_u *re_put_uint32(char_u *p, uint32_t val); |
35 | static void regtail(char_u *p, char_u *val); |
36 | static void regoptail(char_u *p, char_u *val); |
37 | static void initchr(char_u *str); |
38 | static void save_parse_state(parse_state_T *ps); |
39 | static void restore_parse_state(parse_state_T *ps); |
40 | static int peekchr(void); |
41 | static void skipchr(void); |
42 | static void skipchr_keepstart(void); |
43 | static int getchr(void); |
44 | static void ungetchr(void); |
45 | static int64_t gethexchrs(int maxinputlen); |
46 | static int64_t getdecchrs(void); |
47 | static int64_t getoctchrs(void); |
48 | static int coll_get_char(void); |
49 | static int read_limits(long *minval, long *maxval); |
50 | static char_u *reg_getline(linenr_T lnum); |
51 | static int bt_regexec_nl(regmatch_T *rmp, char_u *line, colnr_T col, _Bool line_lbr ); |
52 | static inline char_u *cstrchr(const char_u *const s, const int c) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL FUNC_ATTR_ALWAYS_INLINE; |
53 | static long bt_regexec_multi(regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col, proftime_T *tm, int *timed_out); |
54 | static long bt_regexec_both(char_u *line, colnr_T col, proftime_T *tm, int *timed_out); |
55 | static reg_extmatch_T *make_extmatch(void); |
56 | static long regtry(bt_regprog_T *prog, colnr_T col, proftime_T *tm, int *timed_out); |
57 | static int reg_prev_class(void); |
58 | static int reg_match_visual(void); |
59 | static int regmatch(char_u *scan, proftime_T *tm, int *timed_out ); |
60 | static regitem_T *regstack_push(regstate_T state, char_u *scan); |
61 | static void regstack_pop(char_u **scan); |
62 | static int regrepeat(char_u *p, long maxcount ); |
63 | static char_u *regnext(char_u *p) FUNC_ATTR_NONNULL_ALL; |
64 | static int prog_magic_wrong(void); |
65 | static void cleanup_subexpr(void); |
66 | static void cleanup_zsubexpr(void); |
67 | static void save_subexpr(regbehind_T *bp); |
68 | static void restore_subexpr(regbehind_T *bp); |
69 | static void reg_nextline(void); |
70 | static void reg_save(regsave_T *save, garray_T *gap); |
71 | static void reg_restore(regsave_T *save, garray_T *gap); |
72 | static int reg_save_equal(regsave_T *save); |
73 | static void save_se_multi(save_se_T *savep, lpos_T *posp); |
74 | static void save_se_one(save_se_T *savep, char_u **pp); |
75 | static int re_num_cmp(uint32_t val, char_u *scan); |
76 | static int match_with_backref(linenr_T start_lnum, colnr_T start_col, linenr_T end_lnum, colnr_T end_col, int *bytelen); |
77 | static void mb_decompose(int c, int *c1, int *c2, int *c3); |
78 | static int cstrncmp(char_u *s1, char_u *s2, int *n); |
79 | static fptr_T do_upper(int *d, int c); |
80 | static fptr_T do_Upper(int *d, int c); |
81 | static fptr_T do_lower(int *d, int c); |
82 | static fptr_T do_Lower(int *d, int c); |
83 | static int fill_submatch_list(int argc, typval_T *argv, int argcount); |
84 | static void clear_submatch_list(staticList10_T *sl); |
85 | static int vim_regsub_both(char_u *source, typval_T *expr, char_u *dest, int copy, int magic, int backslash); |
86 | static char_u *reg_getline_submatch(linenr_T lnum); |
87 | static void report_re_switch(char_u *pat); |
88 | static int vim_regexec_string(regmatch_T *rmp, char_u *line, colnr_T col, _Bool nl); |
89 | #include "nvim/func_attr.h" |
90 | |