1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
--- a/src/regex.c
+++ b/src/regex.c
@@ -848,11 +848,13 @@ static const char *re_error_msg[] =
/* Subroutine declarations and macros for regex_compile. */
-static void store_op1 (), store_op2 ();
-static void insert_op1 (), insert_op2 ();
-static boolean at_begline_loc_p (), at_endline_loc_p ();
-static boolean group_in_compile_stack ();
-static reg_errcode_t compile_range ();
+static void store_op1 (re_opcode_t op, unsigned char *loc, int arg);
+static void store_op2 (re_opcode_t op, unsigned char *loc, int arg1, int arg2);
+static void insert_op1 (re_opcode_t op, unsigned char *loc, int arg, unsigned char *end);
+static void insert_op2 (re_opcode_t op, unsigned char *loc, int arg1, int arg2, unsigned char *end);
+static boolean at_begline_loc_p (const char *pattern, const char *p, reg_syntax_t syntax);
+static boolean at_endline_loc_p (const char *p, const char *pend, int syntax);
+static reg_errcode_t compile_range (const char **p_ptr, const char *pend, char *translate, reg_syntax_t syntax, unsigned char *b);
/* Fetch the next character in the uncompiled pattern---translating it
if necessary. Also cast from a signed character in the constant
@@ -1006,6 +1008,7 @@ typedef struct
unsigned avail; /* Offset of next open position. */
} compile_stack_type;
+static boolean group_in_compile_stack (compile_stack_type compile_stack, regnum_t regnum);
#define INIT_COMPILE_STACK_SIZE 32
@@ -3000,10 +3003,7 @@ re_search_2 (bufp, string1, size1, strin
/* Declarations and macros for re_match_2. */
-static int bcmp_translate ();
-static boolean alt_match_null_string_p (),
- common_op_match_null_string_p (),
- group_match_null_string_p ();
+static int bcmp_translate (unsigned char *s1, unsigned char *s2, register int len, char *translate);
/* Structure for per-register (a.k.a. per-group) information.
This must not be longer than one word, because we push this value
@@ -3031,6 +3031,10 @@ typedef union
} bits;
} register_info_type;
+static boolean alt_match_null_string_p (unsigned char *p, unsigned char *end, register_info_type *reg_info);
+static boolean common_op_match_null_string_p (unsigned char **p, unsigned char *end, register_info_type *reg_info);
+static boolean group_match_null_string_p (unsigned char **p, unsigned char *end, register_info_type *reg_info);
+
#define REG_MATCH_NULL_STRING_P(R) ((R).bits.match_null_string_p)
#define IS_ACTIVE(R) ((R).bits.is_active)
#define MATCHED_SOMETHING(R) ((R).bits.matched_something)
|