Line | Source Code | Coverage |
---|
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | static const char rep_min[] = { 0, 0, 1, 1, 0, 0 }; | - |
8 | static const char rep_max[] = { 0, 0, 0, 0, 1, 1 }; | - |
9 | static int | - |
10 | match_ref(int offset, register const pcre_uchar * eptr, int length, match_data *md, | - |
11 | BOOL caseless) | - |
12 | { | - |
13 | const pcre_uchar * eptr_start = eptr; | - |
14 | register const pcre_uchar * p = md->start_subject + md->offset_vector[offset]; | - |
15 | if (length < 0) return -1; never executed: return -1; never evaluated: length < 0 | 0 |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | | - |
21 | if (caseless) never evaluated: caseless | 0 |
22 | { | - |
23 | | - |
24 | | - |
25 | if (md->utf) | 0 |
26 | { | - |
27 | const pcre_uchar * endptr = p + length; | - |
28 | while (p < endptr) never evaluated: p < endptr | 0 |
29 | { | - |
30 | int c, d; | - |
31 | if (eptr >= md->end_subject) return -1; never executed: return -1; never evaluated: eptr >= md->end_subject | 0 |
32 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
33 | d = *p++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*p++ & 0x3ff)) + 0x10000; };; never evaluated: (d & 0xfc00) == 0xd800 | 0 |
34 | if (c != d && c != (d + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(d) / 128] * 128 + (d) % 128])->other_case)) return -1; never evaluated: c != (d + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(d) / 128] * 128 + (d) % 128])->other_case) never executed: return -1; | 0 |
35 | } | 0 |
36 | } | 0 |
37 | else | - |
38 | | - |
39 | | - |
40 | | - |
41 | | - |
42 | | - |
43 | { | - |
44 | if (eptr + length > md->end_subject) return -1; never evaluated: eptr + length > md->end_subject never executed: return -1; | 0 |
45 | while (length-- > 0) never evaluated: length-- > 0 | 0 |
46 | { | - |
47 | if ((((*p) <= 255u)? ((md->lcc)[*p]):(*p)) != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr))) return -1; never evaluated: (((*p) <= 255u)? ((md->lcc)[*p]):(*p)) != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr)) never evaluated: ((*p) <= 255u) never evaluated: ((*eptr) <= 255u) never executed: return -1; | 0 |
48 | p++; | - |
49 | eptr++; | - |
50 | } | 0 |
51 | } | 0 |
52 | } | - |
53 | | - |
54 | | - |
55 | | - |
56 | | - |
57 | else | - |
58 | { | - |
59 | if (eptr + length > md->end_subject) return -1; never executed: return -1; never evaluated: eptr + length > md->end_subject | 0 |
60 | while (length-- > 0) if (*p++ != *eptr++) return -1; never executed: return -1; never evaluated: *p++ != *eptr++ never evaluated: length-- > 0 | 0 |
61 | } | 0 |
62 | | - |
63 | return (int)(eptr - eptr_start); never executed: return (int)(eptr - eptr_start); | 0 |
64 | } | - |
65 | enum { RM1=1, RM2, RM3, RM4, RM5, RM6, RM7, RM8, RM9, RM10, | - |
66 | RM11, RM12, RM13, RM14, RM15, RM16, RM17, RM18, RM19, RM20, | - |
67 | RM21, RM22, RM23, RM24, RM25, RM26, RM27, RM28, RM29, RM30, | - |
68 | RM31, RM32, RM33, RM34, RM35, RM36, RM37, RM38, RM39, RM40, | - |
69 | RM41, RM42, RM43, RM44, RM45, RM46, RM47, RM48, RM49, RM50, | - |
70 | RM51, RM52, RM53, RM54, RM55, RM56, RM57, RM58, RM59, RM60, | - |
71 | RM61, RM62, RM63, RM64, RM65, RM66 }; | - |
72 | static int | - |
73 | match(register const pcre_uchar * eptr, register const pcre_uchar *ecode, | - |
74 | const pcre_uchar * mstart, int offset_top, match_data *md, eptrblock *eptrb, | - |
75 | unsigned int rdepth) | - |
76 | { | - |
77 | | - |
78 | | - |
79 | | - |
80 | | - |
81 | register int rrc; | - |
82 | register int i; | - |
83 | register unsigned int c; | - |
84 | register BOOL utf; | - |
85 | | - |
86 | BOOL minimize, possessive; | - |
87 | BOOL caseless; | - |
88 | int condcode; | - |
89 | const pcre_uchar *charptr; | - |
90 | | - |
91 | const pcre_uchar *callpat; | - |
92 | const pcre_uchar *data; | - |
93 | const pcre_uchar *next; | - |
94 | const pcre_uchar * pp; | - |
95 | const pcre_uchar *prev; | - |
96 | const pcre_uchar * saved_eptr; | - |
97 | | - |
98 | recursion_info new_recursive; | - |
99 | | - |
100 | BOOL cur_is_word; | - |
101 | BOOL condition; | - |
102 | BOOL prev_is_word; | - |
103 | | - |
104 | | - |
105 | int prop_type; | - |
106 | int prop_value; | - |
107 | int prop_fail_result; | - |
108 | int oclength; | - |
109 | pcre_uchar occhars[6]; | - |
110 | | - |
111 | | - |
112 | int codelink; | - |
113 | int ctype; | - |
114 | int length; | - |
115 | int max; | - |
116 | int min; | - |
117 | int number; | - |
118 | int offset; | - |
119 | int op; | - |
120 | int save_capture_last; | - |
121 | int save_offset1, save_offset2, save_offset3; | - |
122 | int stacksave[30]; | - |
123 | | - |
124 | eptrblock newptrb; | - |
125 | | - |
126 | | - |
127 | | - |
128 | | - |
129 | | - |
130 | | - |
131 | | - |
132 | if (ecode == ((void *)0)) partially evaluated: ecode == ((void *)0) no Evaluation Count:0 | yes Evaluation Count:1687 |
| 0-1687 |
133 | { | - |
134 | if (rdepth == 0) never evaluated: rdepth == 0 | 0 |
135 | return match((const pcre_uchar *)&rdepth, ((void *)0), ((void *)0), 0, ((void *)0), ((void *)0), 1); never executed: return match((const pcre_uchar *)&rdepth, ((void *)0), ((void *)0), 0, ((void *)0), ((void *)0), 1); | 0 |
136 | else | - |
137 | { | - |
138 | int len = (char *)&rdepth - (char *)eptr; | - |
139 | return (len > 0)? -len : len; never executed: return (len > 0)? -len : len; | 0 |
140 | } | - |
141 | } | - |
142 | prop_value = 0; | - |
143 | prop_fail_result = 0; | - |
144 | TAIL_RECURSE: code before this statement executed: TAIL_RECURSE: Execution Count:1687 | 1687 |
145 | utf = md->utf; | - |
146 | | - |
147 | | - |
148 | | - |
149 | | - |
150 | | - |
151 | | - |
152 | | - |
153 | if (md->match_call_count++ >= md->match_limit) return (-8); never executed: return (-8); partially evaluated: md->match_call_count++ >= md->match_limit no Evaluation Count:0 | yes Evaluation Count:2766 |
| 0-2766 |
154 | if (rdepth >= md->match_limit_recursion) return (-21); never executed: return (-21); partially evaluated: rdepth >= md->match_limit_recursion no Evaluation Count:0 | yes Evaluation Count:2766 |
| 0-2766 |
155 | if (md->match_function_type == 2) partially evaluated: md->match_function_type == 2 no Evaluation Count:0 | yes Evaluation Count:2766 |
| 0-2766 |
156 | { | - |
157 | newptrb.epb_saved_eptr = eptr; | - |
158 | newptrb.epb_prev = eptrb; | - |
159 | eptrb = &newptrb; | - |
160 | md->match_function_type = 0; | - |
161 | } | 0 |
162 | | - |
163 | | - |
164 | | - |
165 | for (;;) | - |
166 | { | - |
167 | minimize = possessive = 0; | - |
168 | op = *ecode; | - |
169 | | - |
170 | switch(op) | - |
171 | { | - |
172 | case OP_MARK: | - |
173 | md->nomatch_mark = ecode + 2; | - |
174 | md->mark = ((void *)0); | - |
175 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode] + ecode[1],mstart,offset_top,md,eptrb,rdepth+1); | - |
176 | | - |
177 | if ((rrc == 1 || rrc == (-999)) && never evaluated: rrc == 1 never evaluated: rrc == (-999) | 0 |
178 | md->mark == ((void *)0)) md->mark = ecode + 2; never executed: md->mark = ecode + 2; never evaluated: md->mark == ((void *)0) | 0 |
179 | else if (rrc == (-993) && never evaluated: rrc == (-993) | 0 |
180 | _pcre16_strcmp_uc_uc((ecode + 2), (md->start_match_ptr)) == 0) never evaluated: _pcre16_strcmp_uc_uc((ecode + 2), (md->start_match_ptr)) == 0 | 0 |
181 | { | - |
182 | md->start_match_ptr = eptr; | - |
183 | return (-994); never executed: return (-994); | 0 |
184 | } | - |
185 | return rrc; never executed: return rrc; | 0 |
186 | | - |
187 | case OP_FAIL: | - |
188 | return 0; never executed: return 0; | 0 |
189 | | - |
190 | | - |
191 | | - |
192 | case OP_COMMIT: | - |
193 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); | - |
194 | | - |
195 | if (rrc != 0 && rrc != (-995) && never evaluated: rrc != 0 never evaluated: rrc != (-995) | 0 |
196 | rrc != (-994) && rrc != (-993) && never evaluated: rrc != (-994) never evaluated: rrc != (-993) | 0 |
197 | rrc != (-992)) never evaluated: rrc != (-992) | 0 |
198 | return rrc; never executed: return rrc; | 0 |
199 | return (-998); never executed: return (-998); | 0 |
200 | | - |
201 | | - |
202 | | - |
203 | case OP_PRUNE: | - |
204 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); | - |
205 | | - |
206 | if (rrc != 0 && rrc != (-992)) return rrc; never executed: return rrc; never evaluated: rrc != 0 never evaluated: rrc != (-992) | 0 |
207 | return (-995); never executed: return (-995); | 0 |
208 | | - |
209 | case OP_PRUNE_ARG: | - |
210 | md->nomatch_mark = ecode + 2; | - |
211 | md->mark = ((void *)0); | - |
212 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode] + ecode[1],mstart,offset_top,md,eptrb,rdepth+1); | - |
213 | | - |
214 | if ((rrc == 1 || rrc == (-999)) && never evaluated: rrc == 1 never evaluated: rrc == (-999) | 0 |
215 | md->mark == ((void *)0)) md->mark = ecode + 2; never evaluated: md->mark == ((void *)0) never executed: md->mark = ecode + 2; | 0 |
216 | if (rrc != 0 && rrc != (-992)) return rrc; never evaluated: rrc != 0 never evaluated: rrc != (-992) never executed: return rrc; | 0 |
217 | return (-995); never executed: return (-995); | 0 |
218 | | - |
219 | | - |
220 | | - |
221 | case OP_SKIP: | - |
222 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); | - |
223 | | - |
224 | if (rrc != 0 && rrc != (-995) && rrc != (-992)) never evaluated: rrc != 0 never evaluated: rrc != (-995) never evaluated: rrc != (-992) | 0 |
225 | return rrc; never executed: return rrc; | 0 |
226 | md->start_match_ptr = eptr; | - |
227 | return (-994); never executed: return (-994); | 0 |
228 | | - |
229 | | - |
230 | | - |
231 | | - |
232 | | - |
233 | case OP_SKIP_ARG: | - |
234 | if (md->ignore_skip_arg) never evaluated: md->ignore_skip_arg | 0 |
235 | { | - |
236 | ecode += _pcre16_OP_lengths[*ecode] + ecode[1]; | - |
237 | break; | 0 |
238 | } | - |
239 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode] + ecode[1],mstart,offset_top,md,eptrb,rdepth+1); | - |
240 | | - |
241 | if (rrc != 0 && rrc != (-995) && rrc != (-992)) never evaluated: rrc != 0 never evaluated: rrc != (-995) never evaluated: rrc != (-992) | 0 |
242 | return rrc; never executed: return rrc; | 0 |
243 | | - |
244 | | - |
245 | | - |
246 | | - |
247 | | - |
248 | | - |
249 | md->start_match_ptr = ecode + 2; | - |
250 | return (-993); never executed: return (-993); | 0 |
251 | | - |
252 | | - |
253 | | - |
254 | | - |
255 | | - |
256 | case OP_THEN: | - |
257 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); | - |
258 | | - |
259 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
260 | md->start_match_ptr = ecode; | - |
261 | return (-992); never executed: return (-992); | 0 |
262 | | - |
263 | case OP_THEN_ARG: | - |
264 | md->nomatch_mark = ecode + 2; | - |
265 | md->mark = ((void *)0); | - |
266 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode] + ecode[1],mstart,offset_top,md,eptrb,rdepth+1); | - |
267 | | - |
268 | if ((rrc == 1 || rrc == (-999)) && never evaluated: rrc == 1 never evaluated: rrc == (-999) | 0 |
269 | md->mark == ((void *)0)) md->mark = ecode + 2; never evaluated: md->mark == ((void *)0) never executed: md->mark = ecode + 2; | 0 |
270 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
271 | md->start_match_ptr = ecode; | - |
272 | return (-992); never executed: return (-992); | 0 |
273 | case OP_ONCE_NC: | - |
274 | prev = ecode; | - |
275 | saved_eptr = eptr; | - |
276 | data = md->mark; | - |
277 | do | - |
278 | { | - |
279 | rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); | - |
280 | if (rrc == 1) never evaluated: rrc == 1 | 0 |
281 | { | - |
282 | mstart = md->start_match_ptr; | - |
283 | break; | 0 |
284 | } | - |
285 | if (rrc == (-992)) never evaluated: rrc == (-992) | 0 |
286 | { | - |
287 | next = ecode + (ecode[1]); | - |
288 | if (md->start_match_ptr < next && never evaluated: md->start_match_ptr < next | 0 |
289 | (*ecode == OP_ALT || *next == OP_ALT)) never evaluated: *ecode == OP_ALT never evaluated: *next == OP_ALT | 0 |
290 | rrc = 0; | 0 |
291 | } | 0 |
292 | | - |
293 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
294 | ecode += (ecode[1]); | - |
295 | md->mark = data; | - |
296 | } | 0 |
297 | while (*ecode == OP_ALT); never evaluated: *ecode == OP_ALT | 0 |
298 | | - |
299 | | - |
300 | | - |
301 | if (*ecode != OP_ONCE_NC && *ecode != OP_ALT) return 0; never evaluated: *ecode != OP_ONCE_NC never evaluated: *ecode != OP_ALT never executed: return 0; | 0 |
302 | | - |
303 | | - |
304 | | - |
305 | | - |
306 | do ecode += (ecode[1]); while (*ecode == OP_ALT); never evaluated: *ecode == OP_ALT never executed: ecode += (ecode[1]); | 0 |
307 | | - |
308 | offset_top = md->end_offset_top; | - |
309 | eptr = md->end_match_ptr; | - |
310 | | - |
311 | | - |
312 | | - |
313 | | - |
314 | | - |
315 | | - |
316 | if (*ecode == OP_KET || eptr == saved_eptr) never evaluated: *ecode == OP_KET never evaluated: eptr == saved_eptr | 0 |
317 | { | - |
318 | ecode += 1+1; | - |
319 | break; | 0 |
320 | } | - |
321 | | - |
322 | | - |
323 | | - |
324 | | - |
325 | | - |
326 | if (*ecode == OP_KETRMIN) never evaluated: *ecode == OP_KETRMIN | 0 |
327 | { | - |
328 | rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); | - |
329 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
330 | ecode = prev; | - |
331 | goto TAIL_RECURSE; never executed: goto TAIL_RECURSE; | 0 |
332 | } | - |
333 | else | - |
334 | { | - |
335 | md->match_function_type = 2; | - |
336 | rrc = match(eptr,prev,mstart,offset_top,md,eptrb,rdepth+1); | - |
337 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
338 | ecode += 1 + 1; | - |
339 | goto TAIL_RECURSE; never executed: goto TAIL_RECURSE; | 0 |
340 | } | - |
341 | case OP_CBRA: | - |
342 | case OP_SCBRA: | - |
343 | number = ecode[1+1]; | - |
344 | offset = number << 1; | - |
345 | if (offset < md->offset_max) partially evaluated: offset < md->offset_max yes Evaluation Count:208 | no Evaluation Count:0 |
| 0-208 |
346 | { | - |
347 | save_offset1 = md->offset_vector[offset]; | - |
348 | save_offset2 = md->offset_vector[offset+1]; | - |
349 | save_offset3 = md->offset_vector[md->offset_end - number]; | - |
350 | save_capture_last = md->capture_last; | - |
351 | data = md->mark; | - |
352 | | - |
353 | ; | - |
354 | md->offset_vector[md->offset_end - number] = | - |
355 | (int)(eptr - md->start_subject); | - |
356 | | - |
357 | for (;;) | - |
358 | { | - |
359 | if (op >= OP_SBRA) md->match_function_type = 2; partially evaluated: op >= OP_SBRA no Evaluation Count:0 | yes Evaluation Count:208 |
never executed: md->match_function_type = 2; | 0-208 |
360 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); | - |
361 | | - |
362 | if (rrc == (-996)) break; partially evaluated: rrc == (-996) no Evaluation Count:0 | yes Evaluation Count:208 |
| 0-208 |
363 | if (rrc == (-992)) partially evaluated: rrc == (-992) no Evaluation Count:0 | yes Evaluation Count:208 |
| 0-208 |
364 | { | - |
365 | next = ecode + (ecode[1]); | - |
366 | if (md->start_match_ptr < next && never evaluated: md->start_match_ptr < next | 0 |
367 | (*ecode == OP_ALT || *next == OP_ALT)) never evaluated: *ecode == OP_ALT never evaluated: *next == OP_ALT | 0 |
368 | rrc = 0; | 0 |
369 | } | 0 |
370 | | - |
371 | | - |
372 | | - |
373 | if (rrc != 0) return rrc; evaluated: rrc != 0 yes Evaluation Count:155 | yes Evaluation Count:53 |
executed: return rrc; Execution Count:155 | 53-155 |
374 | md->capture_last = save_capture_last; | - |
375 | ecode += (ecode[1]); | - |
376 | md->mark = data; | - |
377 | if (*ecode != OP_ALT) break; partially evaluated: *ecode != OP_ALT yes Evaluation Count:53 | no Evaluation Count:0 |
executed: break; Execution Count:53 | 0-53 |
378 | } | 0 |
379 | | - |
380 | ; | - |
381 | md->offset_vector[offset] = save_offset1; | - |
382 | md->offset_vector[offset+1] = save_offset2; | - |
383 | md->offset_vector[md->offset_end - number] = save_offset3; | - |
384 | | - |
385 | | - |
386 | | - |
387 | return rrc; executed: return rrc; Execution Count:53 | 53 |
388 | } | - |
389 | | - |
390 | | - |
391 | | - |
392 | | - |
393 | | - |
394 | | - |
395 | | - |
396 | ; | - |
397 | case OP_ONCE: code before this statement never executed: case OP_ONCE: | 0 |
398 | case OP_BRA: | - |
399 | case OP_SBRA: | - |
400 | ; | - |
401 | | - |
402 | for (;;) | - |
403 | { | - |
404 | if (op >= OP_SBRA || op == OP_ONCE) md->match_function_type = 2; partially evaluated: op >= OP_SBRA no Evaluation Count:0 | yes Evaluation Count:1117 |
partially evaluated: op == OP_ONCE no Evaluation Count:0 | yes Evaluation Count:1117 |
never executed: md->match_function_type = 2; | 0-1117 |
405 | | - |
406 | | - |
407 | | - |
408 | | - |
409 | | - |
410 | else if (!md->hasthen && ecode[(ecode[1])] != OP_ALT) partially evaluated: !md->hasthen yes Evaluation Count:1117 | no Evaluation Count:0 |
evaluated: ecode[(ecode[1])] != OP_ALT yes Evaluation Count:1055 | yes Evaluation Count:62 |
| 0-1117 |
411 | { | - |
412 | ecode += _pcre16_OP_lengths[*ecode]; | - |
413 | goto TAIL_RECURSE; executed: goto TAIL_RECURSE; Execution Count:1055 | 1055 |
414 | } | - |
415 | | - |
416 | | - |
417 | | - |
418 | data = md->mark; | - |
419 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); | - |
420 | | - |
421 | | - |
422 | | - |
423 | | - |
424 | | - |
425 | if (rrc == (-992)) partially evaluated: rrc == (-992) no Evaluation Count:0 | yes Evaluation Count:62 |
| 0-62 |
426 | { | - |
427 | next = ecode + (ecode[1]); | - |
428 | if (md->start_match_ptr < next && never evaluated: md->start_match_ptr < next | 0 |
429 | (*ecode == OP_ALT || *next == OP_ALT)) never evaluated: *ecode == OP_ALT never evaluated: *next == OP_ALT | 0 |
430 | rrc = 0; | 0 |
431 | } | 0 |
432 | | - |
433 | if (rrc != 0) evaluated: rrc != 0 yes Evaluation Count:8 | yes Evaluation Count:54 |
| 8-54 |
434 | { | - |
435 | if (rrc == (-996)) partially evaluated: rrc == (-996) no Evaluation Count:0 | yes Evaluation Count:8 |
| 0-8 |
436 | { | - |
437 | const pcre_uchar *scode = ecode; | - |
438 | if (*scode != OP_ONCE) never evaluated: *scode != OP_ONCE | 0 |
439 | { | - |
440 | while (*scode == OP_ALT) scode += (scode[1]); never evaluated: *scode == OP_ALT never executed: scode += (scode[1]); | 0 |
441 | scode -= (scode[1]); | - |
442 | } | 0 |
443 | if (md->once_target == scode) rrc = 0; never evaluated: md->once_target == scode | 0 |
444 | } | 0 |
445 | return rrc; executed: return rrc; Execution Count:8 | 8 |
446 | } | - |
447 | ecode += (ecode[1]); | - |
448 | md->mark = data; | - |
449 | if (*ecode != OP_ALT) break; partially evaluated: *ecode != OP_ALT no Evaluation Count:0 | yes Evaluation Count:54 |
| 0-54 |
450 | } executed: } Execution Count:54 | 54 |
451 | | - |
452 | return 0; never executed: return 0; | 0 |
453 | case OP_CBRAPOS: | - |
454 | case OP_SCBRAPOS: | - |
455 | cur_is_word = 0; | - |
456 | | - |
457 | POSSESSIVE_CAPTURE: code before this statement never executed: POSSESSIVE_CAPTURE: | 0 |
458 | number = ecode[1+1]; | - |
459 | offset = number << 1; | - |
460 | if (offset < md->offset_max) never evaluated: offset < md->offset_max | 0 |
461 | { | - |
462 | prev_is_word = 0; | - |
463 | codelink = (int)(ecode - md->start_code); | - |
464 | | - |
465 | save_offset1 = md->offset_vector[offset]; | - |
466 | save_offset2 = md->offset_vector[offset+1]; | - |
467 | save_offset3 = md->offset_vector[md->offset_end - number]; | - |
468 | save_capture_last = md->capture_last; | - |
469 | | - |
470 | ; | - |
471 | for (;;) | - |
472 | { | - |
473 | md->offset_vector[md->offset_end - number] = | - |
474 | (int)(eptr - md->start_subject); | - |
475 | if (op >= OP_SBRA) md->match_function_type = 2; never evaluated: op >= OP_SBRA never executed: md->match_function_type = 2; | 0 |
476 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); | - |
477 | | - |
478 | if (rrc == (-997)) never evaluated: rrc == (-997) | 0 |
479 | { | - |
480 | offset_top = md->end_offset_top; | - |
481 | eptr = md->end_match_ptr; | - |
482 | ecode = md->start_code + codelink; | - |
483 | save_capture_last = md->capture_last; | - |
484 | prev_is_word = 1; | - |
485 | continue; never executed: continue; | 0 |
486 | } | - |
487 | | - |
488 | | - |
489 | | - |
490 | | - |
491 | if (rrc == (-992)) never evaluated: rrc == (-992) | 0 |
492 | { | - |
493 | next = ecode + (ecode[1]); | - |
494 | if (md->start_match_ptr < next && never evaluated: md->start_match_ptr < next | 0 |
495 | (*ecode == OP_ALT || *next == OP_ALT)) never evaluated: *ecode == OP_ALT never evaluated: *next == OP_ALT | 0 |
496 | rrc = 0; | 0 |
497 | } | 0 |
498 | | - |
499 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
500 | md->capture_last = save_capture_last; | - |
501 | ecode += (ecode[1]); | - |
502 | if (*ecode != OP_ALT) break; never evaluated: *ecode != OP_ALT | 0 |
503 | } | 0 |
504 | | - |
505 | if (!prev_is_word) never evaluated: !prev_is_word | 0 |
506 | { | - |
507 | md->offset_vector[offset] = save_offset1; | - |
508 | md->offset_vector[offset+1] = save_offset2; | - |
509 | md->offset_vector[md->offset_end - number] = save_offset3; | - |
510 | } | 0 |
511 | | - |
512 | if (cur_is_word || prev_is_word) never evaluated: cur_is_word never evaluated: prev_is_word | 0 |
513 | { | - |
514 | ecode += 1 + 1; | - |
515 | break; | 0 |
516 | } | - |
517 | | - |
518 | return 0; never executed: return 0; | 0 |
519 | } | - |
520 | | - |
521 | | - |
522 | | - |
523 | | - |
524 | | - |
525 | | - |
526 | | - |
527 | ; | - |
528 | case OP_BRAPOS: code before this statement never executed: case OP_BRAPOS: | 0 |
529 | case OP_SBRAPOS: | - |
530 | cur_is_word = 0; | - |
531 | | - |
532 | POSSESSIVE_NON_CAPTURE: code before this statement never executed: POSSESSIVE_NON_CAPTURE: | 0 |
533 | prev_is_word = 0; | - |
534 | codelink = (int)(ecode - md->start_code); | - |
535 | | - |
536 | for (;;) | - |
537 | { | - |
538 | if (op >= OP_SBRA) md->match_function_type = 2; never evaluated: op >= OP_SBRA never executed: md->match_function_type = 2; | 0 |
539 | rrc = match(eptr,ecode + _pcre16_OP_lengths[*ecode],mstart,offset_top,md,eptrb,rdepth+1); | - |
540 | | - |
541 | if (rrc == (-997)) never evaluated: rrc == (-997) | 0 |
542 | { | - |
543 | offset_top = md->end_offset_top; | - |
544 | eptr = md->end_match_ptr; | - |
545 | ecode = md->start_code + codelink; | - |
546 | prev_is_word = 1; | - |
547 | continue; never executed: continue; | 0 |
548 | } | - |
549 | | - |
550 | | - |
551 | | - |
552 | | - |
553 | if (rrc == (-992)) never evaluated: rrc == (-992) | 0 |
554 | { | - |
555 | next = ecode + (ecode[1]); | - |
556 | if (md->start_match_ptr < next && never evaluated: md->start_match_ptr < next | 0 |
557 | (*ecode == OP_ALT || *next == OP_ALT)) never evaluated: *ecode == OP_ALT never evaluated: *next == OP_ALT | 0 |
558 | rrc = 0; | 0 |
559 | } | 0 |
560 | | - |
561 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
562 | ecode += (ecode[1]); | - |
563 | if (*ecode != OP_ALT) break; never evaluated: *ecode != OP_ALT | 0 |
564 | } | 0 |
565 | | - |
566 | if (prev_is_word || cur_is_word) never evaluated: prev_is_word never evaluated: cur_is_word | 0 |
567 | { | - |
568 | ecode += 1 + 1; | - |
569 | break; | 0 |
570 | } | - |
571 | return 0; never executed: return 0; | 0 |
572 | case OP_COND: | - |
573 | case OP_SCOND: | - |
574 | codelink = (ecode[1]); | - |
575 | | - |
576 | | - |
577 | | - |
578 | | - |
579 | if (ecode[1 +1] == OP_CALLOUT) partially evaluated: ecode[1 +1] == OP_CALLOUT no Evaluation Count:0 | yes Evaluation Count:12 |
| 0-12 |
580 | { | - |
581 | if (pcre16_callout != ((void *)0)) never evaluated: pcre16_callout != ((void *)0) | 0 |
582 | { | - |
583 | pcre16_callout_block cb; | - |
584 | cb.version = 2; | - |
585 | cb.callout_number = ecode[1 +2]; | - |
586 | cb.offset_vector = md->offset_vector; | - |
587 | | - |
588 | | - |
589 | | - |
590 | cb.subject = (const unsigned short *)md->start_subject; | - |
591 | | - |
592 | cb.subject_length = (int)(md->end_subject - md->start_subject); | - |
593 | cb.start_match = (int)(mstart - md->start_subject); | - |
594 | cb.current_position = (int)(eptr - md->start_subject); | - |
595 | cb.pattern_position = (ecode[1 + 3]); | - |
596 | cb.next_item_length = (ecode[3 + 2*1]); | - |
597 | cb.capture_top = offset_top/2; | - |
598 | cb.capture_last = md->capture_last; | - |
599 | cb.callout_data = md->callout_data; | - |
600 | cb.mark = md->nomatch_mark; | - |
601 | if ((rrc = (*pcre16_callout)(&cb)) > 0) return 0; never evaluated: (rrc = (*pcre16_callout)(&cb)) > 0 never executed: return 0; | 0 |
602 | if (rrc < 0) return rrc; never executed: return rrc; | 0 |
603 | } | 0 |
604 | ecode += _pcre16_OP_lengths[OP_CALLOUT]; | - |
605 | } | 0 |
606 | | - |
607 | condcode = ecode[1 +1]; | - |
608 | | - |
609 | | - |
610 | | - |
611 | if (condcode == OP_RREF || condcode == OP_NRREF) partially evaluated: condcode == OP_RREF yes Evaluation Count:12 | no Evaluation Count:0 |
never evaluated: condcode == OP_NRREF | 0-12 |
612 | { | - |
613 | if (md->recursive == ((void *)0)) evaluated: md->recursive == ((void *)0) yes Evaluation Count:4 | yes Evaluation Count:8 |
| 4-8 |
614 | { | - |
615 | condition = 0; | - |
616 | ecode += (ecode[1]); | - |
617 | } executed: } Execution Count:4 | 4 |
618 | else | - |
619 | { | - |
620 | int recno = ecode[1 + 2]; | - |
621 | condition = (recno == 0xffff || recno == md->recursive->group_num); partially evaluated: recno == 0xffff yes Evaluation Count:8 | no Evaluation Count:0 |
never evaluated: recno == md->recursive->group_num | 0-8 |
622 | | - |
623 | | - |
624 | | - |
625 | | - |
626 | | - |
627 | | - |
628 | if (!condition && condcode == OP_NRREF) partially evaluated: !condition no Evaluation Count:0 | yes Evaluation Count:8 |
never evaluated: condcode == OP_NRREF | 0-8 |
629 | { | - |
630 | pcre_uchar *slotA = md->name_table; | - |
631 | for (i = 0; i < md->name_count; i++) never evaluated: i < md->name_count | 0 |
632 | { | - |
633 | if (slotA[0] == recno) break; never evaluated: slotA[0] == recno | 0 |
634 | slotA += md->name_entry_size; | - |
635 | } | 0 |
636 | | - |
637 | | - |
638 | | - |
639 | | - |
640 | | - |
641 | if (i < md->name_count) never evaluated: i < md->name_count | 0 |
642 | { | - |
643 | pcre_uchar *slotB = slotA; | - |
644 | while (slotB > md->name_table) never evaluated: slotB > md->name_table | 0 |
645 | { | - |
646 | slotB -= md->name_entry_size; | - |
647 | if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0) never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0 | 0 |
648 | { | - |
649 | condition = slotB[0] == md->recursive->group_num; | - |
650 | if (condition) break; never evaluated: condition | 0 |
651 | } | 0 |
652 | else break; | 0 |
653 | } | - |
654 | | - |
655 | | - |
656 | | - |
657 | if (!condition) never evaluated: !condition | 0 |
658 | { | - |
659 | slotB = slotA; | - |
660 | for (i++; i < md->name_count; i++) never evaluated: i < md->name_count | 0 |
661 | { | - |
662 | slotB += md->name_entry_size; | - |
663 | if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0) never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0 | 0 |
664 | { | - |
665 | condition = slotB[0] == md->recursive->group_num; | - |
666 | if (condition) break; never evaluated: condition | 0 |
667 | } | 0 |
668 | else break; | 0 |
669 | } | - |
670 | } | 0 |
671 | } | 0 |
672 | } | 0 |
673 | | - |
674 | | - |
675 | | - |
676 | ecode += condition? 1 + 1 : (ecode[1]); partially evaluated: condition yes Evaluation Count:8 | no Evaluation Count:0 |
| 0-8 |
677 | } executed: } Execution Count:8 | 8 |
678 | } | - |
679 | | - |
680 | else if (condcode == OP_CREF || condcode == OP_NCREF) never evaluated: condcode == OP_CREF never evaluated: condcode == OP_NCREF | 0 |
681 | { | - |
682 | offset = ecode[1 +2] << 1; | - |
683 | condition = offset < offset_top && md->offset_vector[offset] >= 0; never evaluated: offset < offset_top never evaluated: md->offset_vector[offset] >= 0 | 0 |
684 | | - |
685 | | - |
686 | | - |
687 | | - |
688 | | - |
689 | | - |
690 | if (!condition && condcode == OP_NCREF) never evaluated: !condition never evaluated: condcode == OP_NCREF | 0 |
691 | { | - |
692 | int refno = offset >> 1; | - |
693 | pcre_uchar *slotA = md->name_table; | - |
694 | | - |
695 | for (i = 0; i < md->name_count; i++) never evaluated: i < md->name_count | 0 |
696 | { | - |
697 | if (slotA[0] == refno) break; never evaluated: slotA[0] == refno | 0 |
698 | slotA += md->name_entry_size; | - |
699 | } | 0 |
700 | | - |
701 | | - |
702 | | - |
703 | | - |
704 | | - |
705 | if (i < md->name_count) never evaluated: i < md->name_count | 0 |
706 | { | - |
707 | pcre_uchar *slotB = slotA; | - |
708 | while (slotB > md->name_table) never evaluated: slotB > md->name_table | 0 |
709 | { | - |
710 | slotB -= md->name_entry_size; | - |
711 | if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0) never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0 | 0 |
712 | { | - |
713 | offset = slotB[0] << 1; | - |
714 | condition = offset < offset_top && never evaluated: offset < offset_top | 0 |
715 | md->offset_vector[offset] >= 0; never evaluated: md->offset_vector[offset] >= 0 | 0 |
716 | if (condition) break; never evaluated: condition | 0 |
717 | } | 0 |
718 | else break; | 0 |
719 | } | - |
720 | | - |
721 | | - |
722 | | - |
723 | if (!condition) never evaluated: !condition | 0 |
724 | { | - |
725 | slotB = slotA; | - |
726 | for (i++; i < md->name_count; i++) never evaluated: i < md->name_count | 0 |
727 | { | - |
728 | slotB += md->name_entry_size; | - |
729 | if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0) never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0 | 0 |
730 | { | - |
731 | offset = slotB[0] << 1; | - |
732 | condition = offset < offset_top && never evaluated: offset < offset_top | 0 |
733 | md->offset_vector[offset] >= 0; never evaluated: md->offset_vector[offset] >= 0 | 0 |
734 | if (condition) break; never evaluated: condition | 0 |
735 | } | 0 |
736 | else break; | 0 |
737 | } | - |
738 | } | 0 |
739 | } | 0 |
740 | } | 0 |
741 | | - |
742 | | - |
743 | | - |
744 | ecode += condition? 1 + 1 : (ecode[1]); never evaluated: condition | 0 |
745 | } | 0 |
746 | | - |
747 | else if (condcode == OP_DEF) never evaluated: condcode == OP_DEF | 0 |
748 | { | - |
749 | condition = 0; | - |
750 | ecode += (ecode[1]); | - |
751 | } | 0 |
752 | | - |
753 | | - |
754 | | - |
755 | | - |
756 | | - |
757 | else | - |
758 | { | - |
759 | md->match_function_type = 1; | - |
760 | rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,((void *)0),rdepth+1); | - |
761 | if (rrc == 1) never evaluated: rrc == 1 | 0 |
762 | { | - |
763 | if (md->end_offset_top > offset_top) never evaluated: md->end_offset_top > offset_top | 0 |
764 | offset_top = md->end_offset_top; never executed: offset_top = md->end_offset_top; | 0 |
765 | condition = 1; | - |
766 | ecode += 1 + 1 + (ecode[1 + 2]); | - |
767 | while (*ecode == OP_ALT) ecode += (ecode[1]); never executed: ecode += (ecode[1]); never evaluated: *ecode == OP_ALT | 0 |
768 | } | 0 |
769 | | - |
770 | | - |
771 | | - |
772 | | - |
773 | else if (rrc != 0 && rrc != (-992)) never evaluated: rrc != 0 never evaluated: rrc != (-992) | 0 |
774 | { | - |
775 | return rrc; never executed: return rrc; | 0 |
776 | } | - |
777 | else | - |
778 | { | - |
779 | condition = 0; | - |
780 | ecode += codelink; | - |
781 | } | 0 |
782 | } | - |
783 | if (condition || *ecode == OP_ALT) evaluated: condition yes Evaluation Count:8 | yes Evaluation Count:4 |
partially evaluated: *ecode == OP_ALT yes Evaluation Count:4 | no Evaluation Count:0 |
| 0-8 |
784 | { | - |
785 | if (op != OP_SCOND) partially evaluated: op != OP_SCOND yes Evaluation Count:12 | no Evaluation Count:0 |
| 0-12 |
786 | { | - |
787 | ecode += 1 + 1; | - |
788 | goto TAIL_RECURSE; executed: goto TAIL_RECURSE; Execution Count:12 | 12 |
789 | } | - |
790 | | - |
791 | md->match_function_type = 2; | - |
792 | rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); | - |
793 | return rrc; never executed: return rrc; | 0 |
794 | } | - |
795 | | - |
796 | | - |
797 | | - |
798 | else | - |
799 | { | - |
800 | ecode += 1 + 1; | - |
801 | } | 0 |
802 | break; | 0 |
803 | | - |
804 | | - |
805 | | - |
806 | | - |
807 | | - |
808 | case OP_CLOSE: | - |
809 | number = ecode[1]; | - |
810 | offset = number << 1; | - |
811 | | - |
812 | | - |
813 | | - |
814 | | - |
815 | | - |
816 | | - |
817 | md->capture_last = number; | - |
818 | if (offset >= md->offset_max) md->offset_overflow = 1; else never executed: md->offset_overflow = 1; never evaluated: offset >= md->offset_max | 0 |
819 | { | - |
820 | md->offset_vector[offset] = | - |
821 | md->offset_vector[md->offset_end - number]; | - |
822 | md->offset_vector[offset+1] = (int)(eptr - md->start_subject); | - |
823 | if (offset_top <= offset) offset_top = offset + 2; never executed: offset_top = offset + 2; never evaluated: offset_top <= offset | 0 |
824 | } | 0 |
825 | ecode += 1 + 1; | - |
826 | break; | 0 |
827 | | - |
828 | | - |
829 | | - |
830 | | - |
831 | case OP_END: | - |
832 | case OP_ACCEPT: | - |
833 | case OP_ASSERT_ACCEPT: | - |
834 | | - |
835 | | - |
836 | | - |
837 | | - |
838 | | - |
839 | | - |
840 | if (eptr == mstart && op != OP_ASSERT_ACCEPT && evaluated: eptr == mstart yes Evaluation Count:174 | yes Evaluation Count:406 |
partially evaluated: op != OP_ASSERT_ACCEPT yes Evaluation Count:174 | no Evaluation Count:0 |
| 0-406 |
841 | md->recursive == ((void *)0) && partially evaluated: md->recursive == ((void *)0) yes Evaluation Count:174 | no Evaluation Count:0 |
| 0-174 |
842 | (md->notempty || partially evaluated: md->notempty no Evaluation Count:0 | yes Evaluation Count:174 |
| 0-174 |
843 | (md->notempty_atstart && evaluated: md->notempty_atstart yes Evaluation Count:100 | yes Evaluation Count:74 |
| 74-100 |
844 | mstart == md->start_subject + md->start_offset))) partially evaluated: mstart == md->start_subject + md->start_offset yes Evaluation Count:100 | no Evaluation Count:0 |
| 0-100 |
845 | return 0; executed: return 0; Execution Count:100 | 100 |
846 | | - |
847 | | - |
848 | | - |
849 | md->end_match_ptr = eptr; | - |
850 | md->end_offset_top = offset_top; | - |
851 | md->start_match_ptr = mstart; | - |
852 | | - |
853 | | - |
854 | | - |
855 | | - |
856 | rrc = (op == OP_END)? 1 : (-999); partially evaluated: (op == OP_END) yes Evaluation Count:480 | no Evaluation Count:0 |
| 0-480 |
857 | return rrc; executed: return rrc; Execution Count:480 | 480 |
858 | case OP_ASSERT: | - |
859 | case OP_ASSERTBACK: | - |
860 | data = md->mark; | - |
861 | if (md->match_function_type == 1) never evaluated: md->match_function_type == 1 | 0 |
862 | { | - |
863 | condition = 1; | - |
864 | md->match_function_type = 0; | - |
865 | } | 0 |
866 | else condition = 0; never executed: condition = 0; | 0 |
867 | | - |
868 | do | - |
869 | { | - |
870 | rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,((void *)0),rdepth+1); | - |
871 | if (rrc == 1 || rrc == (-999)) never evaluated: rrc == 1 never evaluated: rrc == (-999) | 0 |
872 | { | - |
873 | mstart = md->start_match_ptr; | - |
874 | break; | 0 |
875 | } | - |
876 | | - |
877 | | - |
878 | | - |
879 | | - |
880 | if (rrc != 0 && rrc != (-992)) return rrc; never executed: return rrc; never evaluated: rrc != 0 never evaluated: rrc != (-992) | 0 |
881 | ecode += (ecode[1]); | - |
882 | md->mark = data; | - |
883 | } | 0 |
884 | while (*ecode == OP_ALT); never evaluated: *ecode == OP_ALT | 0 |
885 | | - |
886 | if (*ecode == OP_KET) return 0; never executed: return 0; never evaluated: *ecode == OP_KET | 0 |
887 | | - |
888 | | - |
889 | | - |
890 | if (condition) return 1; never executed: return 1; never evaluated: condition | 0 |
891 | | - |
892 | | - |
893 | | - |
894 | | - |
895 | do ecode += (ecode[1]); while (*ecode == OP_ALT); never executed: ecode += (ecode[1]); never evaluated: *ecode == OP_ALT | 0 |
896 | ecode += 1 + 1; | - |
897 | offset_top = md->end_offset_top; | - |
898 | continue; never executed: continue; | 0 |
899 | | - |
900 | | - |
901 | | - |
902 | | - |
903 | | - |
904 | case OP_ASSERT_NOT: | - |
905 | case OP_ASSERTBACK_NOT: | - |
906 | data = md->mark; | - |
907 | if (md->match_function_type == 1) never evaluated: md->match_function_type == 1 | 0 |
908 | { | - |
909 | condition = 1; | - |
910 | md->match_function_type = 0; | - |
911 | } | 0 |
912 | else condition = 0; never executed: condition = 0; | 0 |
913 | | - |
914 | do | - |
915 | { | - |
916 | rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,((void *)0),rdepth+1); | - |
917 | md->mark = data; | - |
918 | if (rrc == 1 || rrc == (-999)) return 0; never executed: return 0; never evaluated: rrc == 1 never evaluated: rrc == (-999) | 0 |
919 | if (rrc == (-994) || rrc == (-995) || rrc == (-998)) never evaluated: rrc == (-994) never evaluated: rrc == (-995) never evaluated: rrc == (-998) | 0 |
920 | { | - |
921 | do ecode += (ecode[1]); while (*ecode == OP_ALT); never executed: ecode += (ecode[1]); never evaluated: *ecode == OP_ALT | 0 |
922 | break; | 0 |
923 | } | - |
924 | | - |
925 | | - |
926 | | - |
927 | | - |
928 | if (rrc != 0 && rrc != (-992)) return rrc; never executed: return rrc; never evaluated: rrc != 0 never evaluated: rrc != (-992) | 0 |
929 | ecode += (ecode[1]); | - |
930 | } | 0 |
931 | while (*ecode == OP_ALT); never evaluated: *ecode == OP_ALT | 0 |
932 | | - |
933 | if (condition) return 1; never executed: return 1; never evaluated: condition | 0 |
934 | | - |
935 | ecode += 1 + 1; | - |
936 | continue; never executed: continue; | 0 |
937 | | - |
938 | | - |
939 | | - |
940 | | - |
941 | | - |
942 | | - |
943 | case OP_REVERSE: | - |
944 | | - |
945 | if (utf) | 0 |
946 | { | - |
947 | i = (ecode[1]); | - |
948 | while (i-- > 0) | 0 |
949 | { | - |
950 | eptr--; | - |
951 | if (eptr < md->start_subject) return 0; never executed: return 0; never evaluated: eptr < md->start_subject | 0 |
952 | if ((*eptr & 0xfc00) == 0xdc00) eptr--; never evaluated: (*eptr & 0xfc00) == 0xdc00 | 0 |
953 | } | 0 |
954 | } | 0 |
955 | else | - |
956 | | - |
957 | | - |
958 | | - |
959 | | - |
960 | { | - |
961 | eptr -= (ecode[1]); | - |
962 | if (eptr < md->start_subject) return 0; never executed: return 0; never evaluated: eptr < md->start_subject | 0 |
963 | } | 0 |
964 | | - |
965 | | - |
966 | | - |
967 | if (eptr < md->start_used_ptr) md->start_used_ptr = eptr; never executed: md->start_used_ptr = eptr; never evaluated: eptr < md->start_used_ptr | 0 |
968 | ecode += 1 + 1; | - |
969 | break; | 0 |
970 | | - |
971 | | - |
972 | | - |
973 | | - |
974 | | - |
975 | case OP_CALLOUT: | - |
976 | if (pcre16_callout != ((void *)0)) never evaluated: pcre16_callout != ((void *)0) | 0 |
977 | { | - |
978 | pcre16_callout_block cb; | - |
979 | cb.version = 2; | - |
980 | cb.callout_number = ecode[1]; | - |
981 | cb.offset_vector = md->offset_vector; | - |
982 | | - |
983 | | - |
984 | | - |
985 | cb.subject = (const unsigned short *)md->start_subject; | - |
986 | | - |
987 | cb.subject_length = (int)(md->end_subject - md->start_subject); | - |
988 | cb.start_match = (int)(mstart - md->start_subject); | - |
989 | cb.current_position = (int)(eptr - md->start_subject); | - |
990 | cb.pattern_position = (ecode[2]); | - |
991 | cb.next_item_length = (ecode[2 + 1]); | - |
992 | cb.capture_top = offset_top/2; | - |
993 | cb.capture_last = md->capture_last; | - |
994 | cb.callout_data = md->callout_data; | - |
995 | cb.mark = md->nomatch_mark; | - |
996 | if ((rrc = (*pcre16_callout)(&cb)) > 0) return 0; never executed: return 0; never evaluated: (rrc = (*pcre16_callout)(&cb)) > 0 | 0 |
997 | if (rrc < 0) return rrc; never executed: return rrc; | 0 |
998 | } | 0 |
999 | ecode += 2 + 2*1; | - |
1000 | break; | 0 |
1001 | case OP_RECURSE: | - |
1002 | { | - |
1003 | recursion_info *ri; | - |
1004 | int recno; | - |
1005 | | - |
1006 | callpat = md->start_code + (ecode[1]); | - |
1007 | recno = (callpat == md->start_code)? 0 : evaluated: (callpat == md->start_code) yes Evaluation Count:8 | yes Evaluation Count:8 |
| 8 |
1008 | callpat[1 + 1]; | - |
1009 | | - |
1010 | | - |
1011 | | - |
1012 | | - |
1013 | | - |
1014 | for (ri = md->recursive; ri != ((void *)0); ri = ri->prevrec) evaluated: ri != ((void *)0) yes Evaluation Count:20 | yes Evaluation Count:12 |
| 12-20 |
1015 | if (recno == ri->group_num && eptr == ri->subject_position) evaluated: recno == ri->group_num yes Evaluation Count:8 | yes Evaluation Count:12 |
evaluated: eptr == ri->subject_position yes Evaluation Count:4 | yes Evaluation Count:4 |
| 4-12 |
1016 | return (-26); executed: return (-26); Execution Count:4 | 4 |
1017 | | - |
1018 | | - |
1019 | | - |
1020 | new_recursive.group_num = recno; | - |
1021 | new_recursive.subject_position = eptr; | - |
1022 | new_recursive.prevrec = md->recursive; | - |
1023 | md->recursive = &new_recursive; | - |
1024 | | - |
1025 | | - |
1026 | | - |
1027 | ecode += 1 + 1; | - |
1028 | | - |
1029 | | - |
1030 | | - |
1031 | new_recursive.saved_max = md->offset_end; | - |
1032 | if (new_recursive.saved_max <= 30) partially evaluated: new_recursive.saved_max <= 30 yes Evaluation Count:12 | no Evaluation Count:0 |
| 0-12 |
1033 | new_recursive.offset_save = stacksave; executed: new_recursive.offset_save = stacksave; Execution Count:12 | 12 |
1034 | else | - |
1035 | { | - |
1036 | new_recursive.offset_save = | - |
1037 | (int *)(pcre16_malloc)(new_recursive.saved_max * sizeof(int)); | - |
1038 | if (new_recursive.offset_save == ((void *)0)) return (-6); never executed: return (-6); never evaluated: new_recursive.offset_save == ((void *)0) | 0 |
1039 | } | 0 |
1040 | memcpy(new_recursive.offset_save, md->offset_vector, | - |
1041 | new_recursive.saved_max * sizeof(int)); | - |
1042 | | - |
1043 | | - |
1044 | | - |
1045 | | - |
1046 | | - |
1047 | ; | - |
1048 | condition = (*callpat >= OP_SBRA); | - |
1049 | do | - |
1050 | { | - |
1051 | if (condition) md->match_function_type = 2; never executed: md->match_function_type = 2; partially evaluated: condition no Evaluation Count:0 | yes Evaluation Count:12 |
| 0-12 |
1052 | rrc = match(eptr,callpat + _pcre16_OP_lengths[*callpat],mstart,offset_top,md,eptrb,rdepth+1); | - |
1053 | | - |
1054 | memcpy(md->offset_vector, new_recursive.offset_save, | - |
1055 | new_recursive.saved_max * sizeof(int)); | - |
1056 | md->recursive = new_recursive.prevrec; | - |
1057 | if (rrc == 1 || rrc == (-999)) partially evaluated: rrc == 1 no Evaluation Count:0 | yes Evaluation Count:12 |
partially evaluated: rrc == (-999) no Evaluation Count:0 | yes Evaluation Count:12 |
| 0-12 |
1058 | { | - |
1059 | ; | - |
1060 | if (new_recursive.offset_save != stacksave) never evaluated: new_recursive.offset_save != stacksave | 0 |
1061 | (pcre16_free)(new_recursive.offset_save); never executed: (pcre16_free)(new_recursive.offset_save); | 0 |
1062 | | - |
1063 | | - |
1064 | | - |
1065 | | - |
1066 | | - |
1067 | eptr = md->end_match_ptr; | - |
1068 | mstart = md->start_match_ptr; | - |
1069 | goto RECURSION_MATCHED; never executed: goto RECURSION_MATCHED; | 0 |
1070 | } | - |
1071 | | - |
1072 | | - |
1073 | | - |
1074 | | - |
1075 | else if (rrc != 0 && rrc != (-992)) partially evaluated: rrc != 0 yes Evaluation Count:12 | no Evaluation Count:0 |
partially evaluated: rrc != (-992) yes Evaluation Count:12 | no Evaluation Count:0 |
| 0-12 |
1076 | { | - |
1077 | ; | - |
1078 | if (new_recursive.offset_save != stacksave) partially evaluated: new_recursive.offset_save != stacksave no Evaluation Count:0 | yes Evaluation Count:12 |
| 0-12 |
1079 | (pcre16_free)(new_recursive.offset_save); never executed: (pcre16_free)(new_recursive.offset_save); | 0 |
1080 | return rrc; executed: return rrc; Execution Count:12 | 12 |
1081 | } | - |
1082 | | - |
1083 | md->recursive = &new_recursive; | - |
1084 | callpat += (callpat[1]); | - |
1085 | } | 0 |
1086 | while (*callpat == OP_ALT); never evaluated: *callpat == OP_ALT | 0 |
1087 | | - |
1088 | ; | - |
1089 | md->recursive = new_recursive.prevrec; | - |
1090 | if (new_recursive.offset_save != stacksave) never evaluated: new_recursive.offset_save != stacksave | 0 |
1091 | (pcre16_free)(new_recursive.offset_save); never executed: (pcre16_free)(new_recursive.offset_save); | 0 |
1092 | return 0; never executed: return 0; | 0 |
1093 | } | - |
1094 | | - |
1095 | RECURSION_MATCHED: | - |
1096 | break; | 0 |
1097 | | - |
1098 | | - |
1099 | | - |
1100 | | - |
1101 | case OP_ALT: | - |
1102 | do ecode += (ecode[1]); while (*ecode == OP_ALT); executed: ecode += (ecode[1]); Execution Count:15 partially evaluated: *ecode == OP_ALT no Evaluation Count:0 | yes Evaluation Count:15 |
| 0-15 |
1103 | break; executed: break; Execution Count:15 | 15 |
1104 | | - |
1105 | | - |
1106 | | - |
1107 | | - |
1108 | | - |
1109 | | - |
1110 | | - |
1111 | case OP_BRAZERO: | - |
1112 | next = ecode + 1; | - |
1113 | rrc = match(eptr,next,mstart,offset_top,md,eptrb,rdepth+1); | - |
1114 | if (rrc != 0) return rrc; executed: return rrc; Execution Count:2 evaluated: rrc != 0 yes Evaluation Count:2 | yes Evaluation Count:1 |
| 1-2 |
1115 | do next += (next[1]); while (*next == OP_ALT); executed: next += (next[1]); Execution Count:1 partially evaluated: *next == OP_ALT no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
1116 | ecode = next + 1 + 1; | - |
1117 | break; executed: break; Execution Count:1 | 1 |
1118 | | - |
1119 | case OP_BRAMINZERO: | - |
1120 | next = ecode + 1; | - |
1121 | do next += (next[1]); while (*next == OP_ALT); executed: next += (next[1]); Execution Count:14 partially evaluated: *next == OP_ALT no Evaluation Count:0 | yes Evaluation Count:14 |
| 0-14 |
1122 | rrc = match(eptr,next + 1+1,mstart,offset_top,md,eptrb,rdepth+1); | - |
1123 | if (rrc != 0) return rrc; executed: return rrc; Execution Count:8 evaluated: rrc != 0 yes Evaluation Count:8 | yes Evaluation Count:6 |
| 6-8 |
1124 | ecode++; | - |
1125 | break; executed: break; Execution Count:6 | 6 |
1126 | | - |
1127 | case OP_SKIPZERO: | - |
1128 | next = ecode+1; | - |
1129 | do next += (next[1]); while (*next == OP_ALT); never executed: next += (next[1]); never evaluated: *next == OP_ALT | 0 |
1130 | ecode = next + 1 + 1; | - |
1131 | break; | 0 |
1132 | | - |
1133 | | - |
1134 | | - |
1135 | | - |
1136 | case OP_BRAPOSZERO: | - |
1137 | op = *(++ecode); | - |
1138 | cur_is_word = 1; | - |
1139 | if (op == OP_CBRAPOS || op == OP_SCBRAPOS) goto POSSESSIVE_CAPTURE; never executed: goto POSSESSIVE_CAPTURE; never evaluated: op == OP_CBRAPOS never evaluated: op == OP_SCBRAPOS | 0 |
1140 | goto POSSESSIVE_NON_CAPTURE; never executed: goto POSSESSIVE_NON_CAPTURE; | 0 |
1141 | | - |
1142 | | - |
1143 | | - |
1144 | case OP_KET: | - |
1145 | case OP_KETRMIN: | - |
1146 | case OP_KETRMAX: | - |
1147 | case OP_KETRPOS: | - |
1148 | prev = ecode - (ecode[1]); | - |
1149 | | - |
1150 | | - |
1151 | | - |
1152 | | - |
1153 | | - |
1154 | if (*prev >= OP_SBRA || *prev == OP_ONCE) partially evaluated: *prev >= OP_SBRA no Evaluation Count:0 | yes Evaluation Count:784 |
partially evaluated: *prev == OP_ONCE no Evaluation Count:0 | yes Evaluation Count:784 |
| 0-784 |
1155 | { | - |
1156 | saved_eptr = eptrb->epb_saved_eptr; | - |
1157 | eptrb = eptrb->epb_prev; | - |
1158 | } | 0 |
1159 | else saved_eptr = ((void *)0); executed: saved_eptr = ((void *)0); Execution Count:784 | 784 |
1160 | | - |
1161 | | - |
1162 | | - |
1163 | | - |
1164 | | - |
1165 | | - |
1166 | if ((*prev >= OP_ASSERT && *prev <= OP_ASSERTBACK_NOT) || partially evaluated: *prev >= OP_ASSERT yes Evaluation Count:784 | no Evaluation Count:0 |
partially evaluated: *prev <= OP_ASSERTBACK_NOT no Evaluation Count:0 | yes Evaluation Count:784 |
| 0-784 |
1167 | *prev == OP_ONCE_NC) partially evaluated: *prev == OP_ONCE_NC no Evaluation Count:0 | yes Evaluation Count:784 |
| 0-784 |
1168 | { | - |
1169 | md->end_match_ptr = eptr; | - |
1170 | md->end_offset_top = offset_top; | - |
1171 | md->start_match_ptr = mstart; | - |
1172 | return 1; never executed: return 1; | 0 |
1173 | } | - |
1174 | if (*prev == OP_CBRA || *prev == OP_SCBRA || evaluated: *prev == OP_CBRA yes Evaluation Count:174 | yes Evaluation Count:610 |
partially evaluated: *prev == OP_SCBRA no Evaluation Count:0 | yes Evaluation Count:610 |
| 0-610 |
1175 | *prev == OP_CBRAPOS || *prev == OP_SCBRAPOS) partially evaluated: *prev == OP_CBRAPOS no Evaluation Count:0 | yes Evaluation Count:610 |
partially evaluated: *prev == OP_SCBRAPOS no Evaluation Count:0 | yes Evaluation Count:610 |
| 0-610 |
1176 | { | - |
1177 | number = prev[1+1]; | - |
1178 | offset = number << 1; | - |
1179 | if (md->recursive != ((void *)0) && md->recursive->group_num == number) partially evaluated: md->recursive != ((void *)0) no Evaluation Count:0 | yes Evaluation Count:174 |
never evaluated: md->recursive->group_num == number | 0-174 |
1180 | { | - |
1181 | md->end_match_ptr = eptr; | - |
1182 | md->start_match_ptr = mstart; | - |
1183 | return 1; never executed: return 1; | 0 |
1184 | } | - |
1185 | | - |
1186 | | - |
1187 | | - |
1188 | md->capture_last = number; | - |
1189 | if (offset >= md->offset_max) md->offset_overflow = 1; else never executed: md->offset_overflow = 1; partially evaluated: offset >= md->offset_max no Evaluation Count:0 | yes Evaluation Count:174 |
| 0-174 |
1190 | { | - |
1191 | if (offset > offset_top) evaluated: offset > offset_top yes Evaluation Count:5 | yes Evaluation Count:169 |
| 5-169 |
1192 | { | - |
1193 | register int *iptr = md->offset_vector + offset_top; | - |
1194 | register int *iend = md->offset_vector + offset; | - |
1195 | while (iptr < iend) *iptr++ = -1; executed: *iptr++ = -1; Execution Count:106 evaluated: iptr < iend yes Evaluation Count:106 | yes Evaluation Count:5 |
| 5-106 |
1196 | } executed: } Execution Count:5 | 5 |
1197 | | - |
1198 | | - |
1199 | | - |
1200 | md->offset_vector[offset] = | - |
1201 | md->offset_vector[md->offset_end - number]; | - |
1202 | md->offset_vector[offset+1] = (int)(eptr - md->start_subject); | - |
1203 | if (offset_top <= offset) offset_top = offset + 2; evaluated: offset_top <= offset yes Evaluation Count:122 | yes Evaluation Count:52 |
executed: offset_top = offset + 2; Execution Count:122 | 52-122 |
1204 | } executed: } Execution Count:174 | 174 |
1205 | } | - |
1206 | if (*ecode == OP_KET || eptr == saved_eptr) evaluated: *ecode == OP_KET yes Evaluation Count:765 | yes Evaluation Count:19 |
partially evaluated: eptr == saved_eptr no Evaluation Count:0 | yes Evaluation Count:19 |
| 0-765 |
1207 | { | - |
1208 | if (*prev == OP_ONCE) partially evaluated: *prev == OP_ONCE no Evaluation Count:0 | yes Evaluation Count:765 |
| 0-765 |
1209 | { | - |
1210 | rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); | - |
1211 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
1212 | md->once_target = prev; | - |
1213 | return (-996); never executed: return (-996); | 0 |
1214 | } | - |
1215 | ecode += 1 + 1; | - |
1216 | break; executed: break; Execution Count:765 | 765 |
1217 | } | - |
1218 | | - |
1219 | | - |
1220 | | - |
1221 | | - |
1222 | | - |
1223 | if (*ecode == OP_KETRPOS) partially evaluated: *ecode == OP_KETRPOS no Evaluation Count:0 | yes Evaluation Count:19 |
| 0-19 |
1224 | { | - |
1225 | md->end_match_ptr = eptr; | - |
1226 | md->end_offset_top = offset_top; | - |
1227 | return (-997); never executed: return (-997); | 0 |
1228 | } | - |
1229 | | - |
1230 | | - |
1231 | | - |
1232 | | - |
1233 | | - |
1234 | | - |
1235 | | - |
1236 | if (*ecode == OP_KETRMIN) evaluated: *ecode == OP_KETRMIN yes Evaluation Count:18 | yes Evaluation Count:1 |
| 1-18 |
1237 | { | - |
1238 | rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); | - |
1239 | if (rrc != 0) return rrc; evaluated: rrc != 0 yes Evaluation Count:6 | yes Evaluation Count:12 |
executed: return rrc; Execution Count:6 | 6-12 |
1240 | if (*prev == OP_ONCE) partially evaluated: *prev == OP_ONCE no Evaluation Count:0 | yes Evaluation Count:12 |
| 0-12 |
1241 | { | - |
1242 | rrc = match(eptr,prev,mstart,offset_top,md,eptrb,rdepth+1); | - |
1243 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
1244 | md->once_target = prev; | - |
1245 | return (-996); never executed: return (-996); | 0 |
1246 | } | - |
1247 | if (*prev >= OP_SBRA) partially evaluated: *prev >= OP_SBRA no Evaluation Count:0 | yes Evaluation Count:12 |
| 0-12 |
1248 | { | - |
1249 | md->match_function_type = 2; | - |
1250 | rrc = match(eptr,prev,mstart,offset_top,md,eptrb,rdepth+1); | - |
1251 | return rrc; never executed: return rrc; | 0 |
1252 | } | - |
1253 | ecode = prev; | - |
1254 | goto TAIL_RECURSE; executed: goto TAIL_RECURSE; Execution Count:12 | 12 |
1255 | } | - |
1256 | else | - |
1257 | { | - |
1258 | if (*prev >= OP_SBRA) md->match_function_type = 2; partially evaluated: *prev >= OP_SBRA no Evaluation Count:0 | yes Evaluation Count:1 |
never executed: md->match_function_type = 2; | 0-1 |
1259 | rrc = match(eptr,prev,mstart,offset_top,md,eptrb,rdepth+1); | - |
1260 | if (rrc == (-996) && md->once_target == prev) rrc = 0; partially evaluated: rrc == (-996) no Evaluation Count:0 | yes Evaluation Count:1 |
never evaluated: md->once_target == prev | 0-1 |
1261 | if (rrc != 0) return rrc; partially evaluated: rrc != 0 yes Evaluation Count:1 | no Evaluation Count:0 |
executed: return rrc; Execution Count:1 | 0-1 |
1262 | if (*prev == OP_ONCE) never evaluated: *prev == OP_ONCE | 0 |
1263 | { | - |
1264 | rrc = match(eptr,ecode + 1 + 1,mstart,offset_top,md,eptrb,rdepth+1); | - |
1265 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
1266 | md->once_target = prev; | - |
1267 | return (-996); never executed: return (-996); | 0 |
1268 | } | - |
1269 | ecode += 1 + 1; | - |
1270 | goto TAIL_RECURSE; never executed: goto TAIL_RECURSE; | 0 |
1271 | } | - |
1272 | | - |
1273 | | - |
1274 | | - |
1275 | | - |
1276 | case OP_CIRC: | - |
1277 | if (md->notbol && eptr == md->start_subject) return 0; never executed: return 0; partially evaluated: md->notbol no Evaluation Count:0 | yes Evaluation Count:27 |
never evaluated: eptr == md->start_subject | 0-27 |
1278 | | - |
1279 | | - |
1280 | | - |
1281 | case OP_SOD: code before this statement executed: case OP_SOD: Execution Count:27 | 27 |
1282 | if (eptr != md->start_subject) return 0; evaluated: eptr != md->start_subject yes Evaluation Count:4 | yes Evaluation Count:42 |
executed: return 0; Execution Count:4 | 4-42 |
1283 | ecode++; | - |
1284 | break; executed: break; Execution Count:42 | 42 |
1285 | | - |
1286 | | - |
1287 | | - |
1288 | case OP_CIRCM: | - |
1289 | if (md->notbol && eptr == md->start_subject) return 0; never executed: return 0; partially evaluated: md->notbol no Evaluation Count:0 | yes Evaluation Count:4 |
never evaluated: eptr == md->start_subject | 0-4 |
1290 | if (eptr != md->start_subject && evaluated: eptr != md->start_subject yes Evaluation Count:3 | yes Evaluation Count:1 |
| 1-3 |
1291 | (eptr == md->end_subject || !((md->nltype != 0)? ((eptr) > md->start_subject && _pcre16_was_newline((eptr), md->nltype, md->start_subject, &(md->nllen), utf)) : ((eptr) >= md->start_subject + md->nllen && (eptr)[-md->nllen] == md->nl[0] && (md->nllen == 1 || (eptr)[-md->nllen+1] == md->nl[1]) ) ))) partially evaluated: eptr == md->end_subject no Evaluation Count:0 | yes Evaluation Count:3 |
partially evaluated: (md->nltype != 0) no Evaluation Count:0 | yes Evaluation Count:3 |
| 0-3 |
1292 | return 0; executed: return 0; Execution Count:1 | 1 |
1293 | ecode++; | - |
1294 | break; executed: break; Execution Count:3 | 3 |
1295 | | - |
1296 | | - |
1297 | | - |
1298 | case OP_SOM: | - |
1299 | if (eptr != md->start_subject + md->start_offset) return 0; partially evaluated: eptr != md->start_subject + md->start_offset no Evaluation Count:0 | yes Evaluation Count:7 |
never executed: return 0; | 0-7 |
1300 | ecode++; | - |
1301 | break; executed: break; Execution Count:7 | 7 |
1302 | | - |
1303 | | - |
1304 | | - |
1305 | case OP_SET_SOM: | - |
1306 | mstart = eptr; | - |
1307 | ecode++; | - |
1308 | break; | 0 |
1309 | | - |
1310 | | - |
1311 | | - |
1312 | | - |
1313 | case OP_DOLLM: | - |
1314 | if (eptr < md->end_subject) partially evaluated: eptr < md->end_subject yes Evaluation Count:6 | no Evaluation Count:0 |
| 0-6 |
1315 | { if (!((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) return 0; } executed: return 0; Execution Count:5 executed: } Execution Count:1 partially evaluated: (md->nltype != 0) no Evaluation Count:0 | yes Evaluation Count:6 |
| 0-6 |
1316 | else | - |
1317 | { | - |
1318 | if (md->noteol) return 0; never evaluated: md->noteol never executed: return 0; | 0 |
1319 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never executed: return (-12); never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
1320 | } | 0 |
1321 | ecode++; | - |
1322 | break; executed: break; Execution Count:1 | 1 |
1323 | | - |
1324 | | - |
1325 | | - |
1326 | | - |
1327 | case OP_DOLL: | - |
1328 | if (md->noteol) return 0; partially evaluated: md->noteol no Evaluation Count:0 | yes Evaluation Count:5 |
never executed: return 0; | 0-5 |
1329 | if (!md->endonly) goto ASSERT_NL_OR_EOS; partially evaluated: !md->endonly yes Evaluation Count:5 | no Evaluation Count:0 |
executed: goto ASSERT_NL_OR_EOS; Execution Count:5 | 0-5 |
1330 | | - |
1331 | | - |
1332 | | - |
1333 | | - |
1334 | | - |
1335 | case OP_EOD: code before this statement never executed: case OP_EOD: | 0 |
1336 | if (eptr < md->end_subject) return 0; partially evaluated: eptr < md->end_subject no Evaluation Count:0 | yes Evaluation Count:11 |
never executed: return 0; | 0-11 |
1337 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never executed: return (-12); partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:11 |
never evaluated: eptr > md->start_used_ptr | 0-11 |
1338 | ecode++; | - |
1339 | break; executed: break; Execution Count:11 | 11 |
1340 | | - |
1341 | | - |
1342 | | - |
1343 | case OP_EODN: | - |
1344 | ASSERT_NL_OR_EOS: | - |
1345 | if (eptr < md->end_subject && partially evaluated: eptr < md->end_subject no Evaluation Count:0 | yes Evaluation Count:5 |
| 0-5 |
1346 | (!((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) ) || eptr != md->end_subject - md->nllen)) never evaluated: (md->nltype != 0) never evaluated: eptr != md->end_subject - md->nllen | 0 |
1347 | return 0; never executed: return 0; | 0 |
1348 | | - |
1349 | | - |
1350 | | - |
1351 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; evaluated: md->partial > 1 yes Evaluation Count:1 | yes Evaluation Count:1 |
executed: return (-12); Execution Count:1 executed: } Execution Count:1 evaluated: md->partial != 0 yes Evaluation Count:2 | yes Evaluation Count:3 |
partially evaluated: eptr > md->start_used_ptr yes Evaluation Count:2 | no Evaluation Count:0 |
| 0-3 |
1352 | ecode++; | - |
1353 | break; executed: break; Execution Count:4 | 4 |
1354 | | - |
1355 | | - |
1356 | | - |
1357 | case OP_NOT_WORD_BOUNDARY: | - |
1358 | case OP_WORD_BOUNDARY: | - |
1359 | { | - |
1360 | | - |
1361 | | - |
1362 | | - |
1363 | | - |
1364 | | - |
1365 | | - |
1366 | | - |
1367 | if (utf) partially evaluated: utf yes Evaluation Count:114 | no Evaluation Count:0 |
| 0-114 |
1368 | { | - |
1369 | | - |
1370 | | - |
1371 | if (eptr == md->start_subject) prev_is_word = 0; else executed: prev_is_word = 0; Execution Count:6 evaluated: eptr == md->start_subject yes Evaluation Count:6 | yes Evaluation Count:108 |
| 6-108 |
1372 | { | - |
1373 | const pcre_uchar * lastptr = eptr - 1; | - |
1374 | if ((*lastptr & 0xfc00) == 0xdc00) lastptr--; partially evaluated: (*lastptr & 0xfc00) == 0xdc00 no Evaluation Count:0 | yes Evaluation Count:108 |
never executed: lastptr--; | 0-108 |
1375 | if (lastptr < md->start_used_ptr) md->start_used_ptr = lastptr; evaluated: lastptr < md->start_used_ptr yes Evaluation Count:107 | yes Evaluation Count:1 |
executed: md->start_used_ptr = lastptr; Execution Count:107 | 1-107 |
1376 | c = *lastptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (lastptr[1] & 0x3ff)) + 0x10000; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:108 |
| 0-108 |
1377 | | - |
1378 | if (md->use_ucp) partially evaluated: md->use_ucp no Evaluation Count:0 | yes Evaluation Count:108 |
| 0-108 |
1379 | { | - |
1380 | if (c == '_') prev_is_word = 1; else never executed: prev_is_word = 1; never evaluated: c == '_' | 0 |
1381 | { | - |
1382 | int cat = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
1383 | prev_is_word = (cat == ucp_L || cat == ucp_N); never evaluated: cat == ucp_L never evaluated: cat == ucp_N | 0 |
1384 | } | 0 |
1385 | } | - |
1386 | else | - |
1387 | | - |
1388 | prev_is_word = c < 256 && (md->ctypes[c] & 0x10) != 0; executed: prev_is_word = c < 256 && (md->ctypes[c] & 0x10) != 0; Execution Count:108 partially evaluated: c < 256 yes Evaluation Count:108 | no Evaluation Count:0 |
evaluated: (md->ctypes[c] & 0x10) != 0 yes Evaluation Count:76 | yes Evaluation Count:32 |
| 0-108 |
1389 | } | - |
1390 | | - |
1391 | | - |
1392 | | - |
1393 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:6 | yes Evaluation Count:108 |
| 6-108 |
1394 | { | - |
1395 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; partially evaluated: md->partial > 1 no Evaluation Count:0 | yes Evaluation Count:2 |
never executed: return (-12); executed: } Execution Count:2 evaluated: md->partial != 0 yes Evaluation Count:2 | yes Evaluation Count:4 |
partially evaluated: eptr > md->start_used_ptr yes Evaluation Count:2 | no Evaluation Count:0 |
| 0-4 |
1396 | cur_is_word = 0; | - |
1397 | } executed: } Execution Count:6 | 6 |
1398 | else | - |
1399 | { | - |
1400 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:108 |
| 0-108 |
1401 | | - |
1402 | if (md->use_ucp) partially evaluated: md->use_ucp no Evaluation Count:0 | yes Evaluation Count:108 |
| 0-108 |
1403 | { | - |
1404 | if (c == '_') cur_is_word = 1; else never evaluated: c == '_' never executed: cur_is_word = 1; | 0 |
1405 | { | - |
1406 | int cat = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
1407 | cur_is_word = (cat == ucp_L || cat == ucp_N); never evaluated: cat == ucp_L never evaluated: cat == ucp_N | 0 |
1408 | } | 0 |
1409 | } | - |
1410 | else | - |
1411 | | - |
1412 | cur_is_word = c < 256 && (md->ctypes[c] & 0x10) != 0; executed: cur_is_word = c < 256 && (md->ctypes[c] & 0x10) != 0; Execution Count:108 partially evaluated: c < 256 yes Evaluation Count:108 | no Evaluation Count:0 |
evaluated: (md->ctypes[c] & 0x10) != 0 yes Evaluation Count:79 | yes Evaluation Count:29 |
| 0-108 |
1413 | } | - |
1414 | } | - |
1415 | else | - |
1416 | | - |
1417 | | - |
1418 | | - |
1419 | | - |
1420 | | - |
1421 | { | - |
1422 | | - |
1423 | | - |
1424 | if (eptr == md->start_subject) prev_is_word = 0; else never evaluated: eptr == md->start_subject never executed: prev_is_word = 0; | 0 |
1425 | { | - |
1426 | if (eptr <= md->start_used_ptr) md->start_used_ptr = eptr - 1; never evaluated: eptr <= md->start_used_ptr never executed: md->start_used_ptr = eptr - 1; | 0 |
1427 | | - |
1428 | if (md->use_ucp) never evaluated: md->use_ucp | 0 |
1429 | { | - |
1430 | c = eptr[-1]; | - |
1431 | if (c == '_') prev_is_word = 1; else never evaluated: c == '_' never executed: prev_is_word = 1; | 0 |
1432 | { | - |
1433 | int cat = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
1434 | prev_is_word = (cat == ucp_L || cat == ucp_N); never evaluated: cat == ucp_L never evaluated: cat == ucp_N | 0 |
1435 | } | 0 |
1436 | } | - |
1437 | else | - |
1438 | | - |
1439 | prev_is_word = ((eptr[-1]) <= 255u) never evaluated: ((eptr[-1]) <= 255u) | 0 |
1440 | && ((md->ctypes[eptr[-1]] & 0x10) != 0); never executed: prev_is_word = ((eptr[-1]) <= 255u) && ((md->ctypes[eptr[-1]] & 0x10) != 0); never evaluated: ((md->ctypes[eptr[-1]] & 0x10) != 0) | 0 |
1441 | } | - |
1442 | | - |
1443 | | - |
1444 | | - |
1445 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1446 | { | - |
1447 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never executed: return (-12); never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
1448 | cur_is_word = 0; | - |
1449 | } | 0 |
1450 | else | - |
1451 | | - |
1452 | if (md->use_ucp) never evaluated: md->use_ucp | 0 |
1453 | { | - |
1454 | c = *eptr; | - |
1455 | if (c == '_') cur_is_word = 1; else never evaluated: c == '_' never executed: cur_is_word = 1; | 0 |
1456 | { | - |
1457 | int cat = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
1458 | cur_is_word = (cat == ucp_L || cat == ucp_N); never evaluated: cat == ucp_L never evaluated: cat == ucp_N | 0 |
1459 | } | 0 |
1460 | } | - |
1461 | else | - |
1462 | | - |
1463 | cur_is_word = ((*eptr) <= 255u) never evaluated: ((*eptr) <= 255u) | 0 |
1464 | && ((md->ctypes[*eptr] & 0x10) != 0); never executed: cur_is_word = ((*eptr) <= 255u) && ((md->ctypes[*eptr] & 0x10) != 0); never evaluated: ((md->ctypes[*eptr] & 0x10) != 0) | 0 |
1465 | } | - |
1466 | | - |
1467 | | - |
1468 | | - |
1469 | if ((*ecode++ == OP_WORD_BOUNDARY)? partially evaluated: (*ecode++ == OP_WORD_BOUNDARY) yes Evaluation Count:114 | no Evaluation Count:0 |
| 0-114 |
1470 | cur_is_word == prev_is_word : cur_is_word != prev_is_word) | - |
1471 | return 0; executed: return 0; Execution Count:51 | 51 |
1472 | } | - |
1473 | break; executed: break; Execution Count:63 | 63 |
1474 | | - |
1475 | | - |
1476 | | - |
1477 | case OP_ANY: | - |
1478 | if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) return 0; never executed: return 0; partially evaluated: (md->nltype != 0) no Evaluation Count:0 | yes Evaluation Count:11 |
| 0-11 |
1479 | | - |
1480 | | - |
1481 | case OP_ALLANY: code before this statement executed: case OP_ALLANY: Execution Count:11 | 11 |
1482 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:8 | yes Evaluation Count:3 |
| 3-8 |
1483 | { | - |
1484 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never executed: return (-12); partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:8 |
never evaluated: eptr > md->start_used_ptr | 0-8 |
1485 | return 0; executed: return 0; Execution Count:8 | 8 |
1486 | } | - |
1487 | eptr++; | - |
1488 | | - |
1489 | if (utf) if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++; partially evaluated: utf yes Evaluation Count:3 | no Evaluation Count:0 |
partially evaluated: (eptr < md->end_subject) yes Evaluation Count:3 | no Evaluation Count:0 |
partially evaluated: ((*eptr) & 0xfc00) == 0xdc00 no Evaluation Count:0 | yes Evaluation Count:3 |
| 0-3 |
1490 | | - |
1491 | ecode++; | - |
1492 | break; executed: break; Execution Count:3 | 3 |
1493 | | - |
1494 | | - |
1495 | | - |
1496 | | - |
1497 | case OP_ANYBYTE: | - |
1498 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1499 | { | - |
1500 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never executed: return (-12); never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
1501 | return 0; never executed: return 0; | 0 |
1502 | } | - |
1503 | eptr++; | - |
1504 | ecode++; | - |
1505 | break; | 0 |
1506 | | - |
1507 | case OP_NOT_DIGIT: | - |
1508 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1509 | { | - |
1510 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never executed: return (-12); never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
1511 | return 0; never executed: return 0; | 0 |
1512 | } | - |
1513 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1514 | if ( | - |
1515 | | - |
1516 | c < 256 && | 0 |
1517 | | - |
1518 | (md->ctypes[c] & 0x04) != 0 never evaluated: (md->ctypes[c] & 0x04) != 0 | 0 |
1519 | ) | - |
1520 | return 0; never executed: return 0; | 0 |
1521 | ecode++; | - |
1522 | break; | 0 |
1523 | | - |
1524 | case OP_DIGIT: | - |
1525 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
1526 | { | - |
1527 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never executed: return (-12); never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
1528 | return 0; never executed: return 0; | 0 |
1529 | } | - |
1530 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; partially evaluated: utf yes Evaluation Count:4 | no Evaluation Count:0 |
partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
1531 | if ( | - |
1532 | | - |
1533 | c > 255 || partially evaluated: c > 255 no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
1534 | | - |
1535 | (md->ctypes[c] & 0x04) == 0 partially evaluated: (md->ctypes[c] & 0x04) == 0 no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
1536 | ) | - |
1537 | return 0; never executed: return 0; | 0 |
1538 | ecode++; | - |
1539 | break; executed: break; Execution Count:4 | 4 |
1540 | | - |
1541 | case OP_NOT_WHITESPACE: | - |
1542 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1543 | { | - |
1544 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never executed: return (-12); never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
1545 | return 0; never executed: return 0; | 0 |
1546 | } | - |
1547 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1548 | if ( | - |
1549 | | - |
1550 | c < 256 && | 0 |
1551 | | - |
1552 | (md->ctypes[c] & 0x01) != 0 never evaluated: (md->ctypes[c] & 0x01) != 0 | 0 |
1553 | ) | - |
1554 | return 0; never executed: return 0; | 0 |
1555 | ecode++; | - |
1556 | break; | 0 |
1557 | | - |
1558 | case OP_WHITESPACE: | - |
1559 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1560 | { | - |
1561 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1562 | return 0; never executed: return 0; | 0 |
1563 | } | - |
1564 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1565 | if ( | - |
1566 | | - |
1567 | c > 255 || | 0 |
1568 | | - |
1569 | (md->ctypes[c] & 0x01) == 0 never evaluated: (md->ctypes[c] & 0x01) == 0 | 0 |
1570 | ) | - |
1571 | return 0; never executed: return 0; | 0 |
1572 | ecode++; | - |
1573 | break; | 0 |
1574 | | - |
1575 | case OP_NOT_WORDCHAR: | - |
1576 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1577 | { | - |
1578 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1579 | return 0; never executed: return 0; | 0 |
1580 | } | - |
1581 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1582 | if ( | - |
1583 | | - |
1584 | c < 256 && | 0 |
1585 | | - |
1586 | (md->ctypes[c] & 0x10) != 0 never evaluated: (md->ctypes[c] & 0x10) != 0 | 0 |
1587 | ) | - |
1588 | return 0; never executed: return 0; | 0 |
1589 | ecode++; | - |
1590 | break; | 0 |
1591 | | - |
1592 | case OP_WORDCHAR: | - |
1593 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:54 |
| 0-54 |
1594 | { | - |
1595 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1596 | return 0; never executed: return 0; | 0 |
1597 | } | - |
1598 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; partially evaluated: utf yes Evaluation Count:54 | no Evaluation Count:0 |
partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:54 |
| 0-54 |
1599 | if ( | - |
1600 | | - |
1601 | c > 255 || partially evaluated: c > 255 no Evaluation Count:0 | yes Evaluation Count:54 |
| 0-54 |
1602 | | - |
1603 | (md->ctypes[c] & 0x10) == 0 partially evaluated: (md->ctypes[c] & 0x10) == 0 no Evaluation Count:0 | yes Evaluation Count:54 |
| 0-54 |
1604 | ) | - |
1605 | return 0; never executed: return 0; | 0 |
1606 | ecode++; | - |
1607 | break; executed: break; Execution Count:54 | 54 |
1608 | | - |
1609 | case OP_ANYNL: | - |
1610 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1611 | { | - |
1612 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1613 | return 0; never executed: return 0; | 0 |
1614 | } | - |
1615 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1616 | switch(c) | - |
1617 | { | - |
1618 | default: return 0; never executed: return 0; | 0 |
1619 | | - |
1620 | case 0x000d: | - |
1621 | if (eptr < md->end_subject && *eptr == 0x0a) eptr++; never evaluated: eptr < md->end_subject never evaluated: *eptr == 0x0a | 0 |
1622 | break; | 0 |
1623 | | - |
1624 | case 0x000a: | - |
1625 | break; | 0 |
1626 | | - |
1627 | case 0x000b: | - |
1628 | case 0x000c: | - |
1629 | case 0x0085: | - |
1630 | case 0x2028: | - |
1631 | case 0x2029: | - |
1632 | if (md->bsr_anycrlf) return 0; never evaluated: md->bsr_anycrlf never executed: return 0; | 0 |
1633 | break; | 0 |
1634 | } | - |
1635 | ecode++; | - |
1636 | break; | 0 |
1637 | | - |
1638 | case OP_NOT_HSPACE: | - |
1639 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1640 | { | - |
1641 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1642 | return 0; never executed: return 0; | 0 |
1643 | } | - |
1644 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1645 | switch(c) | - |
1646 | { | - |
1647 | default: break; | 0 |
1648 | case 0x09: | - |
1649 | case 0x20: | - |
1650 | case 0xa0: | - |
1651 | case 0x1680: | - |
1652 | case 0x180e: | - |
1653 | case 0x2000: | - |
1654 | case 0x2001: | - |
1655 | case 0x2002: | - |
1656 | case 0x2003: | - |
1657 | case 0x2004: | - |
1658 | case 0x2005: | - |
1659 | case 0x2006: | - |
1660 | case 0x2007: | - |
1661 | case 0x2008: | - |
1662 | case 0x2009: | - |
1663 | case 0x200A: | - |
1664 | case 0x202f: | - |
1665 | case 0x205f: | - |
1666 | case 0x3000: | - |
1667 | return 0; never executed: return 0; | 0 |
1668 | } | - |
1669 | ecode++; | - |
1670 | break; | 0 |
1671 | | - |
1672 | case OP_HSPACE: | - |
1673 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1674 | { | - |
1675 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1676 | return 0; never executed: return 0; | 0 |
1677 | } | - |
1678 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1679 | switch(c) | - |
1680 | { | - |
1681 | default: return 0; never executed: return 0; | 0 |
1682 | case 0x09: | - |
1683 | case 0x20: | - |
1684 | case 0xa0: | - |
1685 | case 0x1680: | - |
1686 | case 0x180e: | - |
1687 | case 0x2000: | - |
1688 | case 0x2001: | - |
1689 | case 0x2002: | - |
1690 | case 0x2003: | - |
1691 | case 0x2004: | - |
1692 | case 0x2005: | - |
1693 | case 0x2006: | - |
1694 | case 0x2007: | - |
1695 | case 0x2008: | - |
1696 | case 0x2009: | - |
1697 | case 0x200A: | - |
1698 | case 0x202f: | - |
1699 | case 0x205f: | - |
1700 | case 0x3000: | - |
1701 | break; | 0 |
1702 | } | - |
1703 | ecode++; | - |
1704 | break; | 0 |
1705 | | - |
1706 | case OP_NOT_VSPACE: | - |
1707 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1708 | { | - |
1709 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1710 | return 0; never executed: return 0; | 0 |
1711 | } | - |
1712 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1713 | switch(c) | - |
1714 | { | - |
1715 | default: break; | 0 |
1716 | case 0x0a: | - |
1717 | case 0x0b: | - |
1718 | case 0x0c: | - |
1719 | case 0x0d: | - |
1720 | case 0x85: | - |
1721 | case 0x2028: | - |
1722 | case 0x2029: | - |
1723 | return 0; never executed: return 0; | 0 |
1724 | } | - |
1725 | ecode++; | - |
1726 | break; | 0 |
1727 | | - |
1728 | case OP_VSPACE: | - |
1729 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1730 | { | - |
1731 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1732 | return 0; never executed: return 0; | 0 |
1733 | } | - |
1734 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1735 | switch(c) | - |
1736 | { | - |
1737 | default: return 0; never executed: return 0; | 0 |
1738 | case 0x0a: | - |
1739 | case 0x0b: | - |
1740 | case 0x0c: | - |
1741 | case 0x0d: | - |
1742 | case 0x85: | - |
1743 | case 0x2028: | - |
1744 | case 0x2029: | - |
1745 | break; | 0 |
1746 | } | - |
1747 | ecode++; | - |
1748 | break; | 0 |
1749 | | - |
1750 | | - |
1751 | | - |
1752 | | - |
1753 | | - |
1754 | case OP_PROP: | - |
1755 | case OP_NOTPROP: | - |
1756 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
1757 | { | - |
1758 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1759 | return 0; never executed: return 0; | 0 |
1760 | } | - |
1761 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; partially evaluated: utf yes Evaluation Count:2 | no Evaluation Count:0 |
partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
1762 | { | - |
1763 | const ucd_record *prop = (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128]); | - |
1764 | | - |
1765 | switch(ecode[1]) | - |
1766 | { | - |
1767 | case 0: | - |
1768 | if (op == OP_NOTPROP) return 0; never evaluated: op == OP_NOTPROP never executed: return 0; | 0 |
1769 | break; | 0 |
1770 | | - |
1771 | case 1: | - |
1772 | if ((prop->chartype == ucp_Lu || never evaluated: prop->chartype == ucp_Lu | 0 |
1773 | prop->chartype == ucp_Ll || never evaluated: prop->chartype == ucp_Ll | 0 |
1774 | prop->chartype == ucp_Lt) == (op == OP_NOTPROP)) never evaluated: (prop->chartype == ucp_Lu || prop->chartype == ucp_Ll || prop->chartype == ucp_Lt) == (op == OP_NOTPROP) never evaluated: prop->chartype == ucp_Lt | 0 |
1775 | return 0; never executed: return 0; | 0 |
1776 | break; | 0 |
1777 | | - |
1778 | case 2: | - |
1779 | if ((ecode[2] != _pcre16_ucp_gentype[prop->chartype]) == (op == OP_PROP)) never evaluated: (ecode[2] != _pcre16_ucp_gentype[prop->chartype]) == (op == OP_PROP) | 0 |
1780 | return 0; never executed: return 0; | 0 |
1781 | break; | 0 |
1782 | | - |
1783 | case 3: | - |
1784 | if ((ecode[2] != prop->chartype) == (op == OP_PROP)) partially evaluated: (ecode[2] != prop->chartype) == (op == OP_PROP) yes Evaluation Count:2 | no Evaluation Count:0 |
| 0-2 |
1785 | return 0; executed: return 0; Execution Count:2 | 2 |
1786 | break; | 0 |
1787 | | - |
1788 | case 4: | - |
1789 | if ((ecode[2] != prop->script) == (op == OP_PROP)) never evaluated: (ecode[2] != prop->script) == (op == OP_PROP) | 0 |
1790 | return 0; never executed: return 0; | 0 |
1791 | break; | 0 |
1792 | | - |
1793 | | - |
1794 | | - |
1795 | case 5: | - |
1796 | if ((_pcre16_ucp_gentype[prop->chartype] == ucp_L || never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_L | 0 |
1797 | _pcre16_ucp_gentype[prop->chartype] == ucp_N) == (op == OP_NOTPROP)) never evaluated: (_pcre16_ucp_gentype[prop->chartype] == ucp_L || _pcre16_ucp_gentype[prop->chartype] == ucp_N) == (op == OP_NOTPROP) never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_N | 0 |
1798 | return 0; never executed: return 0; | 0 |
1799 | break; | 0 |
1800 | | - |
1801 | case 6: | - |
1802 | if ((_pcre16_ucp_gentype[prop->chartype] == ucp_Z || never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_Z | 0 |
1803 | c == '\011' || c == '\012' || c == '\014' || c == '\015') never evaluated: c == '\011' never evaluated: c == '\012' never evaluated: c == '\014' never evaluated: c == '\015' | 0 |
1804 | == (op == OP_NOTPROP)) never evaluated: (_pcre16_ucp_gentype[prop->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\014' || c == '\015') == (op == OP_NOTPROP) | 0 |
1805 | return 0; never executed: return 0; | 0 |
1806 | break; | 0 |
1807 | | - |
1808 | case 7: | - |
1809 | if ((_pcre16_ucp_gentype[prop->chartype] == ucp_Z || never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_Z | 0 |
1810 | c == '\011' || c == '\012' || c == '\013' || never evaluated: c == '\011' never evaluated: c == '\012' never evaluated: c == '\013' | 0 |
1811 | c == '\014' || c == '\015') never evaluated: c == '\014' never evaluated: c == '\015' | 0 |
1812 | == (op == OP_NOTPROP)) never evaluated: (_pcre16_ucp_gentype[prop->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\013' || c == '\014' || c == '\015') == (op == OP_NOTPROP) | 0 |
1813 | return 0; never executed: return 0; | 0 |
1814 | break; | 0 |
1815 | | - |
1816 | case 8: | - |
1817 | if ((_pcre16_ucp_gentype[prop->chartype] == ucp_L || never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_L | 0 |
1818 | _pcre16_ucp_gentype[prop->chartype] == ucp_N || never evaluated: _pcre16_ucp_gentype[prop->chartype] == ucp_N | 0 |
1819 | c == '\137') == (op == OP_NOTPROP)) never evaluated: (_pcre16_ucp_gentype[prop->chartype] == ucp_L || _pcre16_ucp_gentype[prop->chartype] == ucp_N || c == '\137') == (op == OP_NOTPROP) never evaluated: c == '\137' | 0 |
1820 | return 0; never executed: return 0; | 0 |
1821 | break; | 0 |
1822 | | - |
1823 | | - |
1824 | | - |
1825 | default: | - |
1826 | return (-14); never executed: return (-14); | 0 |
1827 | } | - |
1828 | | - |
1829 | ecode += 3; | - |
1830 | } | - |
1831 | break; | 0 |
1832 | | - |
1833 | | - |
1834 | | - |
1835 | | - |
1836 | case OP_EXTUNI: | - |
1837 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
1838 | { | - |
1839 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1840 | return 0; never executed: return 0; | 0 |
1841 | } | - |
1842 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
1843 | if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M) return 0; never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M never executed: return 0; | 0 |
1844 | while (eptr < md->end_subject) never evaluated: eptr < md->end_subject | 0 |
1845 | { | - |
1846 | int len = 1; | - |
1847 | if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; } never evaluated: (c & 0xfc00) == 0xd800 never executed: c = *eptr; | 0 |
1848 | if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break; never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M | 0 |
1849 | eptr += len; | - |
1850 | } | 0 |
1851 | ecode++; | - |
1852 | break; | 0 |
1853 | case OP_REF: | - |
1854 | case OP_REFI: | - |
1855 | caseless = op == OP_REFI; | - |
1856 | offset = ecode[1] << 1; | - |
1857 | ecode += 1 + 1; | - |
1858 | if (offset >= offset_top || md->offset_vector[offset] < 0) never evaluated: offset >= offset_top never evaluated: md->offset_vector[offset] < 0 | 0 |
1859 | length = (md->jscript_compat)? 0 : -1; never evaluated: (md->jscript_compat) never executed: length = (md->jscript_compat)? 0 : -1; | 0 |
1860 | else | - |
1861 | length = md->offset_vector[offset+1] - md->offset_vector[offset]; never executed: length = md->offset_vector[offset+1] - md->offset_vector[offset]; | 0 |
1862 | | - |
1863 | | - |
1864 | | - |
1865 | switch (*ecode) | - |
1866 | { | - |
1867 | case OP_CRSTAR: | - |
1868 | case OP_CRMINSTAR: | - |
1869 | case OP_CRPLUS: | - |
1870 | case OP_CRMINPLUS: | - |
1871 | case OP_CRQUERY: | - |
1872 | case OP_CRMINQUERY: | - |
1873 | c = *ecode++ - OP_CRSTAR; | - |
1874 | minimize = (c & 1) != 0; | - |
1875 | min = rep_min[c]; | - |
1876 | max = rep_max[c]; | - |
1877 | if (max == 0) max = 2147483647; never evaluated: max == 0 never executed: max = 2147483647; | 0 |
1878 | break; | 0 |
1879 | | - |
1880 | case OP_CRRANGE: | - |
1881 | case OP_CRMINRANGE: | - |
1882 | minimize = (*ecode == OP_CRMINRANGE); | - |
1883 | min = ecode[1]; | - |
1884 | max = ecode[1 + 1]; | - |
1885 | if (max == 0) max = 2147483647; never evaluated: max == 0 never executed: max = 2147483647; | 0 |
1886 | ecode += 1 + 2 * 1; | - |
1887 | break; | 0 |
1888 | | - |
1889 | default: | - |
1890 | if ((length = match_ref(offset, eptr, length, md, caseless)) < 0) never evaluated: (length = match_ref(offset, eptr, length, md, caseless)) < 0 | 0 |
1891 | { | - |
1892 | if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr >= md->end_subject never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1893 | return 0; never executed: return 0; | 0 |
1894 | } | - |
1895 | eptr += length; | - |
1896 | continue; never executed: continue; | 0 |
1897 | } | - |
1898 | | - |
1899 | | - |
1900 | | - |
1901 | | - |
1902 | | - |
1903 | | - |
1904 | | - |
1905 | if (length == 0) continue; never evaluated: length == 0 never executed: continue; | 0 |
1906 | if (length < 0 && min == 0) continue; never evaluated: length < 0 never evaluated: min == 0 never executed: continue; | 0 |
1907 | | - |
1908 | | - |
1909 | | - |
1910 | | - |
1911 | | - |
1912 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
1913 | { | - |
1914 | int slength; | - |
1915 | if ((slength = match_ref(offset, eptr, length, md, caseless)) < 0) never evaluated: (slength = match_ref(offset, eptr, length, md, caseless)) < 0 | 0 |
1916 | { | - |
1917 | if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr >= md->end_subject never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1918 | return 0; never executed: return 0; | 0 |
1919 | } | - |
1920 | eptr += slength; | - |
1921 | } | 0 |
1922 | | - |
1923 | | - |
1924 | | - |
1925 | | - |
1926 | if (min == max) continue; never evaluated: min == max never executed: continue; | 0 |
1927 | | - |
1928 | | - |
1929 | | - |
1930 | if (minimize) never evaluated: minimize | 0 |
1931 | { | - |
1932 | for (i = min;; i++) | - |
1933 | { | - |
1934 | int slength; | - |
1935 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
1936 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
1937 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
1938 | if ((slength = match_ref(offset, eptr, length, md, caseless)) < 0) never evaluated: (slength = match_ref(offset, eptr, length, md, caseless)) < 0 | 0 |
1939 | { | - |
1940 | if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr >= md->end_subject never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1941 | return 0; never executed: return 0; | 0 |
1942 | } | - |
1943 | eptr += slength; | - |
1944 | } | 0 |
1945 | | - |
1946 | } | 0 |
1947 | | - |
1948 | | - |
1949 | | - |
1950 | else | - |
1951 | { | - |
1952 | pp = eptr; | - |
1953 | for (i = min; i < max; i++) | 0 |
1954 | { | - |
1955 | int slength; | - |
1956 | if ((slength = match_ref(offset, eptr, length, md, caseless)) < 0) never evaluated: (slength = match_ref(offset, eptr, length, md, caseless)) < 0 | 0 |
1957 | { | - |
1958 | if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr >= md->end_subject never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
1959 | break; | 0 |
1960 | } | - |
1961 | eptr += slength; | - |
1962 | } | 0 |
1963 | while (eptr >= pp) never evaluated: eptr >= pp | 0 |
1964 | { | - |
1965 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
1966 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
1967 | eptr -= length; | - |
1968 | } | 0 |
1969 | return 0; never executed: return 0; | 0 |
1970 | } | - |
1971 | case OP_NCLASS: code before this statement never executed: case OP_NCLASS: | 0 |
1972 | case OP_CLASS: | - |
1973 | { | - |
1974 | | - |
1975 | | - |
1976 | | - |
1977 | data = ecode + 1; | - |
1978 | ecode += 1 + (32 / sizeof(pcre_uchar)); | - |
1979 | | - |
1980 | switch (*ecode) | - |
1981 | { | - |
1982 | case OP_CRSTAR: | - |
1983 | case OP_CRMINSTAR: | - |
1984 | case OP_CRPLUS: | - |
1985 | case OP_CRMINPLUS: | - |
1986 | case OP_CRQUERY: | - |
1987 | case OP_CRMINQUERY: | - |
1988 | c = *ecode++ - OP_CRSTAR; | - |
1989 | minimize = (c & 1) != 0; | - |
1990 | min = rep_min[c]; | - |
1991 | max = rep_max[c]; | - |
1992 | if (max == 0) max = 2147483647; never evaluated: max == 0 never executed: max = 2147483647; | 0 |
1993 | break; | 0 |
1994 | | - |
1995 | case OP_CRRANGE: | - |
1996 | case OP_CRMINRANGE: | - |
1997 | minimize = (*ecode == OP_CRMINRANGE); | - |
1998 | min = ecode[1]; | - |
1999 | max = ecode[1 + 1]; | - |
2000 | if (max == 0) max = 2147483647; never evaluated: max == 0 never executed: max = 2147483647; | 0 |
2001 | ecode += 1 + 2 * 1; | - |
2002 | break; | 0 |
2003 | | - |
2004 | default: | - |
2005 | min = max = 1; | - |
2006 | break; executed: break; Execution Count:125 | 125 |
2007 | } | - |
2008 | | - |
2009 | | - |
2010 | | - |
2011 | | - |
2012 | if (utf) partially evaluated: utf yes Evaluation Count:125 | no Evaluation Count:0 |
| 0-125 |
2013 | { | - |
2014 | for (i = 1; i <= min; i++) evaluated: i <= min yes Evaluation Count:125 | yes Evaluation Count:52 |
| 52-125 |
2015 | { | - |
2016 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:16 | yes Evaluation Count:109 |
| 16-109 |
2017 | { | - |
2018 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:16 |
never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0-16 |
2019 | return 0; executed: return 0; Execution Count:16 | 16 |
2020 | } | - |
2021 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:109 |
| 0-109 |
2022 | if (c > 255) partially evaluated: c > 255 no Evaluation Count:0 | yes Evaluation Count:109 |
| 0-109 |
2023 | { | - |
2024 | if (op == OP_CLASS) return 0; never evaluated: op == OP_CLASS never executed: return 0; | 0 |
2025 | } | 0 |
2026 | else | - |
2027 | if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) return 0; evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0 yes Evaluation Count:57 | yes Evaluation Count:52 |
executed: return 0; Execution Count:57 | 52-57 |
2028 | } | - |
2029 | } executed: } Execution Count:52 | 52 |
2030 | else | - |
2031 | | - |
2032 | | - |
2033 | { | - |
2034 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
2035 | { | - |
2036 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2037 | { | - |
2038 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2039 | return 0; never executed: return 0; | 0 |
2040 | } | - |
2041 | c = *eptr++; | - |
2042 | | - |
2043 | if (c > 255) | 0 |
2044 | { | - |
2045 | if (op == OP_CLASS) return 0; never evaluated: op == OP_CLASS never executed: return 0; | 0 |
2046 | } | 0 |
2047 | else | - |
2048 | | - |
2049 | if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) return 0; never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0 never executed: return 0; | 0 |
2050 | } | - |
2051 | } | 0 |
2052 | | - |
2053 | | - |
2054 | | - |
2055 | | - |
2056 | if (min == max) continue; partially evaluated: min == max yes Evaluation Count:52 | no Evaluation Count:0 |
executed: continue; Execution Count:52 | 0-52 |
2057 | | - |
2058 | | - |
2059 | | - |
2060 | | - |
2061 | if (minimize) never evaluated: minimize | 0 |
2062 | { | - |
2063 | | - |
2064 | if (utf) | 0 |
2065 | { | - |
2066 | for (i = min;; i++) | - |
2067 | { | - |
2068 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2069 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2070 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
2071 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2072 | { | - |
2073 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2074 | return 0; never executed: return 0; | 0 |
2075 | } | - |
2076 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
2077 | if (c > 255) | 0 |
2078 | { | - |
2079 | if (op == OP_CLASS) return 0; never evaluated: op == OP_CLASS never executed: return 0; | 0 |
2080 | } | 0 |
2081 | else | - |
2082 | if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) return 0; never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0 never executed: return 0; | 0 |
2083 | } | - |
2084 | } | 0 |
2085 | else | - |
2086 | | - |
2087 | | - |
2088 | { | - |
2089 | for (i = min;; i++) | - |
2090 | { | - |
2091 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2092 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2093 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
2094 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2095 | { | - |
2096 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2097 | return 0; never executed: return 0; | 0 |
2098 | } | - |
2099 | c = *eptr++; | - |
2100 | | - |
2101 | if (c > 255) | 0 |
2102 | { | - |
2103 | if (op == OP_CLASS) return 0; never evaluated: op == OP_CLASS never executed: return 0; | 0 |
2104 | } | 0 |
2105 | else | - |
2106 | | - |
2107 | if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) return 0; never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0 never executed: return 0; | 0 |
2108 | } | - |
2109 | } | 0 |
2110 | | - |
2111 | } | - |
2112 | | - |
2113 | | - |
2114 | | - |
2115 | else | - |
2116 | { | - |
2117 | pp = eptr; | - |
2118 | | - |
2119 | | - |
2120 | if (utf) | 0 |
2121 | { | - |
2122 | for (i = min; i < max; i++) | 0 |
2123 | { | - |
2124 | int len = 1; | - |
2125 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2126 | { | - |
2127 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2128 | break; | 0 |
2129 | } | - |
2130 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
2131 | if (c > 255) | 0 |
2132 | { | - |
2133 | if (op == OP_CLASS) break; never evaluated: op == OP_CLASS | 0 |
2134 | } | 0 |
2135 | else | - |
2136 | if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) break; never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0 | 0 |
2137 | eptr += len; | - |
2138 | } | 0 |
2139 | for (;;) | - |
2140 | { | - |
2141 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2142 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2143 | if (eptr-- == pp) break; never evaluated: eptr-- == pp | 0 |
2144 | if ((*eptr & 0xfc00) == 0xdc00) eptr--; never evaluated: (*eptr & 0xfc00) == 0xdc00 | 0 |
2145 | } | 0 |
2146 | } | 0 |
2147 | else | - |
2148 | | - |
2149 | | - |
2150 | { | - |
2151 | for (i = min; i < max; i++) | 0 |
2152 | { | - |
2153 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2154 | { | - |
2155 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2156 | break; | 0 |
2157 | } | - |
2158 | c = *eptr; | - |
2159 | | - |
2160 | if (c > 255) | 0 |
2161 | { | - |
2162 | if (op == OP_CLASS) break; never evaluated: op == OP_CLASS | 0 |
2163 | } | 0 |
2164 | else | - |
2165 | | - |
2166 | if ((((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0) break; never evaluated: (((pcre_uint8 *)data)[c/8] & (1 << (c&7))) == 0 | 0 |
2167 | eptr++; | - |
2168 | } | 0 |
2169 | while (eptr >= pp) never evaluated: eptr >= pp | 0 |
2170 | { | - |
2171 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2172 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2173 | eptr--; | - |
2174 | } | 0 |
2175 | } | 0 |
2176 | | - |
2177 | return 0; never executed: return 0; | 0 |
2178 | } | - |
2179 | | - |
2180 | } | - |
2181 | case OP_XCLASS: code before this statement never executed: case OP_XCLASS: | 0 |
2182 | { | - |
2183 | data = ecode + 1 + 1; | - |
2184 | ecode += (ecode[1]); | - |
2185 | | - |
2186 | switch (*ecode) | - |
2187 | { | - |
2188 | case OP_CRSTAR: | - |
2189 | case OP_CRMINSTAR: | - |
2190 | case OP_CRPLUS: | - |
2191 | case OP_CRMINPLUS: | - |
2192 | case OP_CRQUERY: | - |
2193 | case OP_CRMINQUERY: | - |
2194 | c = *ecode++ - OP_CRSTAR; | - |
2195 | minimize = (c & 1) != 0; | - |
2196 | min = rep_min[c]; | - |
2197 | max = rep_max[c]; | - |
2198 | if (max == 0) max = 2147483647; partially evaluated: max == 0 yes Evaluation Count:25 | no Evaluation Count:0 |
executed: max = 2147483647; Execution Count:25 | 0-25 |
2199 | break; executed: break; Execution Count:25 | 25 |
2200 | | - |
2201 | case OP_CRRANGE: | - |
2202 | case OP_CRMINRANGE: | - |
2203 | minimize = (*ecode == OP_CRMINRANGE); | - |
2204 | min = ecode[1]; | - |
2205 | max = ecode[1 + 1]; | - |
2206 | if (max == 0) max = 2147483647; never evaluated: max == 0 never executed: max = 2147483647; | 0 |
2207 | ecode += 1 + 2 * 1; | - |
2208 | break; | 0 |
2209 | | - |
2210 | default: | - |
2211 | min = max = 1; | - |
2212 | break; | 0 |
2213 | } | - |
2214 | | - |
2215 | | - |
2216 | | - |
2217 | for (i = 1; i <= min; i++) partially evaluated: i <= min no Evaluation Count:0 | yes Evaluation Count:25 |
| 0-25 |
2218 | { | - |
2219 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2220 | { | - |
2221 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2222 | return 0; never executed: return 0; | 0 |
2223 | } | - |
2224 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
2225 | if (!_pcre16_xclass(c, data, utf)) return 0; never evaluated: !_pcre16_xclass(c, data, utf) never executed: return 0; | 0 |
2226 | } | 0 |
2227 | | - |
2228 | | - |
2229 | | - |
2230 | | - |
2231 | if (min == max) continue; partially evaluated: min == max no Evaluation Count:0 | yes Evaluation Count:25 |
never executed: continue; | 0-25 |
2232 | | - |
2233 | | - |
2234 | | - |
2235 | | - |
2236 | if (minimize) partially evaluated: minimize no Evaluation Count:0 | yes Evaluation Count:25 |
| 0-25 |
2237 | { | - |
2238 | for (i = min;; i++) | - |
2239 | { | - |
2240 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2241 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2242 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
2243 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2244 | { | - |
2245 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2246 | return 0; never executed: return 0; | 0 |
2247 | } | - |
2248 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
2249 | if (!_pcre16_xclass(c, data, utf)) return 0; never evaluated: !_pcre16_xclass(c, data, utf) never executed: return 0; | 0 |
2250 | } | 0 |
2251 | | - |
2252 | } | 0 |
2253 | | - |
2254 | | - |
2255 | | - |
2256 | else | - |
2257 | { | - |
2258 | pp = eptr; | - |
2259 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:51 | no Evaluation Count:0 |
| 0-51 |
2260 | { | - |
2261 | int len = 1; | - |
2262 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:10 | yes Evaluation Count:41 |
| 10-41 |
2263 | { | - |
2264 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:10 |
never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0-10 |
2265 | break; executed: break; Execution Count:10 | 10 |
2266 | } | - |
2267 | | - |
2268 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; partially evaluated: utf yes Evaluation Count:41 | no Evaluation Count:0 |
evaluated: (c & 0xfc00) == 0xd800 yes Evaluation Count:15 | yes Evaluation Count:26 |
executed: } Execution Count:15 | 0-41 |
2269 | | - |
2270 | | - |
2271 | | - |
2272 | if (!_pcre16_xclass(c, data, utf)) break; evaluated: !_pcre16_xclass(c, data, utf) yes Evaluation Count:15 | yes Evaluation Count:26 |
executed: break; Execution Count:15 | 15-26 |
2273 | eptr += len; | - |
2274 | } executed: } Execution Count:26 | 26 |
2275 | for(;;) | - |
2276 | { | - |
2277 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2278 | if (rrc != 0) return rrc; evaluated: rrc != 0 yes Evaluation Count:15 | yes Evaluation Count:10 |
executed: return rrc; Execution Count:15 | 10-15 |
2279 | if (eptr-- == pp) break; partially evaluated: eptr-- == pp yes Evaluation Count:10 | no Evaluation Count:0 |
executed: break; Execution Count:10 | 0-10 |
2280 | | - |
2281 | if (utf) if ((*eptr & 0xfc00) == 0xdc00) eptr--; never evaluated: (*eptr & 0xfc00) == 0xdc00 | 0 |
2282 | | - |
2283 | } | 0 |
2284 | return 0; executed: return 0; Execution Count:10 | 10 |
2285 | } | - |
2286 | | - |
2287 | | - |
2288 | } | - |
2289 | | - |
2290 | | - |
2291 | | - |
2292 | | - |
2293 | case OP_CHAR: code before this statement never executed: case OP_CHAR: | 0 |
2294 | | - |
2295 | if (utf) partially evaluated: utf yes Evaluation Count:2255 | no Evaluation Count:0 |
| 0-2255 |
2296 | { | - |
2297 | length = 1; | - |
2298 | ecode++; | - |
2299 | c = *ecode; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (ecode[1] & 0x3ff)) + 0x10000; length++; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:2255 |
| 0-2255 |
2300 | if (length > md->end_subject - eptr) evaluated: length > md->end_subject - eptr yes Evaluation Count:119 | yes Evaluation Count:2136 |
| 119-2136 |
2301 | { | - |
2302 | if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; evaluated: md->partial > 1 yes Evaluation Count:7 | yes Evaluation Count:9 |
evaluated: md->partial != 0 yes Evaluation Count:29 | yes Evaluation Count:90 |
partially evaluated: eptr >= md->end_subject yes Evaluation Count:29 | no Evaluation Count:0 |
evaluated: eptr > md->start_used_ptr yes Evaluation Count:16 | yes Evaluation Count:13 |
executed: return (-12); Execution Count:7 executed: } Execution Count:9 | 0-90 |
2303 | return 0; executed: return 0; Execution Count:112 | 112 |
2304 | } | - |
2305 | while (length-- > 0) if (*ecode++ != *eptr++) return 0; evaluated: *ecode++ != *eptr++ yes Evaluation Count:156 | yes Evaluation Count:1980 |
evaluated: length-- > 0 yes Evaluation Count:2136 | yes Evaluation Count:1980 |
executed: return 0; Execution Count:156 | 156-2136 |
2306 | } executed: } Execution Count:1980 | 1980 |
2307 | else | - |
2308 | | - |
2309 | | - |
2310 | { | - |
2311 | if (md->end_subject - eptr < 1) never evaluated: md->end_subject - eptr < 1 | 0 |
2312 | { | - |
2313 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2314 | return 0; never executed: return 0; | 0 |
2315 | } | - |
2316 | if (ecode[1] != *eptr++) return 0; never evaluated: ecode[1] != *eptr++ never executed: return 0; | 0 |
2317 | ecode += 2; | - |
2318 | } | 0 |
2319 | break; executed: break; Execution Count:1980 | 1980 |
2320 | | - |
2321 | | - |
2322 | | - |
2323 | | - |
2324 | case OP_CHARI: | - |
2325 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:7 | yes Evaluation Count:577 |
| 7-577 |
2326 | { | - |
2327 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:7 |
never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0-7 |
2328 | return 0; executed: return 0; Execution Count:7 | 7 |
2329 | } | - |
2330 | | - |
2331 | | - |
2332 | if (utf) partially evaluated: utf yes Evaluation Count:577 | no Evaluation Count:0 |
| 0-577 |
2333 | { | - |
2334 | length = 1; | - |
2335 | ecode++; | - |
2336 | c = *ecode; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (ecode[1] & 0x3ff)) + 0x10000; length++; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:577 |
| 0-577 |
2337 | | - |
2338 | | - |
2339 | | - |
2340 | | - |
2341 | | - |
2342 | | - |
2343 | if (c < 128) evaluated: c < 128 yes Evaluation Count:576 | yes Evaluation Count:1 |
| 1-576 |
2344 | { | - |
2345 | if (md->lcc[c] | 0-576 |
2346 | != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr))) return 0; partially evaluated: md->lcc[c] != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr)) no Evaluation Count:0 | yes Evaluation Count:576 |
partially evaluated: ((*eptr) <= 255u) yes Evaluation Count:576 | no Evaluation Count:0 |
never executed: return 0; | 0-576 |
2347 | ecode++; | - |
2348 | eptr++; | - |
2349 | } executed: } Execution Count:576 | 576 |
2350 | | - |
2351 | | - |
2352 | | - |
2353 | | - |
2354 | | - |
2355 | else | - |
2356 | { | - |
2357 | unsigned int dc; | - |
2358 | dc = *eptr++; if ((dc & 0xfc00) == 0xd800) { dc = (((dc & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; partially evaluated: (dc & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
2359 | ecode += length; | - |
2360 | | - |
2361 | | - |
2362 | | - |
2363 | | - |
2364 | if (c != dc) partially evaluated: c != dc yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-1 |
2365 | { | - |
2366 | | - |
2367 | if (dc != (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case)) partially evaluated: dc != (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case) no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
2368 | | - |
2369 | return 0; never executed: return 0; | 0 |
2370 | } executed: } Execution Count:1 | 1 |
2371 | } executed: } Execution Count:1 | 1 |
2372 | } | - |
2373 | else | - |
2374 | | - |
2375 | | - |
2376 | | - |
2377 | { | - |
2378 | if ((((ecode[1]) <= 255u)? ((md->lcc)[ecode[1]]):(ecode[1])) never evaluated: ((ecode[1]) <= 255u) | 0 |
2379 | != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr))) return 0; never evaluated: (((ecode[1]) <= 255u)? ((md->lcc)[ecode[1]]):(ecode[1])) != (((*eptr) <= 255u)? ((md->lcc)[*eptr]):(*eptr)) never evaluated: ((*eptr) <= 255u) never executed: return 0; | 0 |
2380 | eptr++; | - |
2381 | ecode += 2; | - |
2382 | } | 0 |
2383 | break; executed: break; Execution Count:577 | 577 |
2384 | | - |
2385 | | - |
2386 | | - |
2387 | case OP_EXACT: | - |
2388 | case OP_EXACTI: | - |
2389 | min = max = ecode[1]; | - |
2390 | ecode += 1 + 1; | - |
2391 | goto REPEATCHAR; never executed: goto REPEATCHAR; | 0 |
2392 | | - |
2393 | case OP_POSUPTO: | - |
2394 | case OP_POSUPTOI: | - |
2395 | possessive = 1; | - |
2396 | | - |
2397 | | - |
2398 | case OP_UPTO: code before this statement never executed: case OP_UPTO: | 0 |
2399 | case OP_UPTOI: | - |
2400 | case OP_MINUPTO: | - |
2401 | case OP_MINUPTOI: | - |
2402 | min = 0; | - |
2403 | max = ecode[1]; | - |
2404 | minimize = *ecode == OP_MINUPTO || *ecode == OP_MINUPTOI; never evaluated: *ecode == OP_MINUPTO never evaluated: *ecode == OP_MINUPTOI | 0 |
2405 | ecode += 1 + 1; | - |
2406 | goto REPEATCHAR; never executed: goto REPEATCHAR; | 0 |
2407 | | - |
2408 | case OP_POSSTAR: | - |
2409 | case OP_POSSTARI: | - |
2410 | possessive = 1; | - |
2411 | min = 0; | - |
2412 | max = 2147483647; | - |
2413 | ecode++; | - |
2414 | goto REPEATCHAR; never executed: goto REPEATCHAR; | 0 |
2415 | | - |
2416 | case OP_POSPLUS: | - |
2417 | case OP_POSPLUSI: | - |
2418 | possessive = 1; | - |
2419 | min = 1; | - |
2420 | max = 2147483647; | - |
2421 | ecode++; | - |
2422 | goto REPEATCHAR; never executed: goto REPEATCHAR; | 0 |
2423 | | - |
2424 | case OP_POSQUERY: | - |
2425 | case OP_POSQUERYI: | - |
2426 | possessive = 1; | - |
2427 | min = 0; | - |
2428 | max = 1; | - |
2429 | ecode++; | - |
2430 | goto REPEATCHAR; never executed: goto REPEATCHAR; | 0 |
2431 | | - |
2432 | case OP_STAR: | - |
2433 | case OP_STARI: | - |
2434 | case OP_MINSTAR: | - |
2435 | case OP_MINSTARI: | - |
2436 | case OP_PLUS: | - |
2437 | case OP_PLUSI: | - |
2438 | case OP_MINPLUS: | - |
2439 | case OP_MINPLUSI: | - |
2440 | case OP_QUERY: | - |
2441 | case OP_QUERYI: | - |
2442 | case OP_MINQUERY: | - |
2443 | case OP_MINQUERYI: | - |
2444 | c = *ecode++ - ((op < OP_STARI)? OP_STAR : OP_STARI); partially evaluated: (op < OP_STARI) yes Evaluation Count:41 | no Evaluation Count:0 |
| 0-41 |
2445 | minimize = (c & 1) != 0; | - |
2446 | min = rep_min[c]; | - |
2447 | max = rep_max[c]; | - |
2448 | if (max == 0) max = 2147483647; partially evaluated: max == 0 yes Evaluation Count:41 | no Evaluation Count:0 |
executed: max = 2147483647; Execution Count:41 | 0-41 |
2449 | | - |
2450 | | - |
2451 | | - |
2452 | REPEATCHAR: code before this statement executed: REPEATCHAR: Execution Count:41 | 41 |
2453 | | - |
2454 | if (utf) partially evaluated: utf yes Evaluation Count:41 | no Evaluation Count:0 |
| 0-41 |
2455 | { | - |
2456 | length = 1; | - |
2457 | charptr = ecode; | - |
2458 | c = *ecode; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (ecode[1] & 0x3ff)) + 0x10000; length++; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:41 |
| 0-41 |
2459 | ecode += length; | - |
2460 | | - |
2461 | | - |
2462 | | - |
2463 | | - |
2464 | if (length > 1) partially evaluated: length > 1 no Evaluation Count:0 | yes Evaluation Count:41 |
| 0-41 |
2465 | { | - |
2466 | | - |
2467 | unsigned int othercase; | - |
2468 | if (op >= OP_STARI && never evaluated: op >= OP_STARI | 0 |
2469 | (othercase = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case)) != c) never evaluated: (othercase = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case)) != c | 0 |
2470 | oclength = _pcre16_ord2utf(othercase, occhars); never executed: oclength = _pcre16_ord2utf(othercase, occhars); | 0 |
2471 | else oclength = 0; never executed: oclength = 0; | 0 |
2472 | | - |
2473 | | - |
2474 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
2475 | { | - |
2476 | if (eptr <= md->end_subject - length && never evaluated: eptr <= md->end_subject - length | 0 |
2477 | memcmp(eptr, charptr, ((length) << 1)) == 0) eptr += length; never evaluated: memcmp(eptr, charptr, ((length) << 1)) == 0 never executed: eptr += length; | 0 |
2478 | | - |
2479 | else if (oclength > 0 && never evaluated: oclength > 0 | 0 |
2480 | eptr <= md->end_subject - oclength && never evaluated: eptr <= md->end_subject - oclength | 0 |
2481 | memcmp(eptr, occhars, ((oclength) << 1)) == 0) eptr += oclength; never evaluated: memcmp(eptr, occhars, ((oclength) << 1)) == 0 never executed: eptr += oclength; | 0 |
2482 | | - |
2483 | else | - |
2484 | { | - |
2485 | if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr >= md->end_subject never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2486 | return 0; never executed: return 0; | 0 |
2487 | } | - |
2488 | } | - |
2489 | | - |
2490 | if (min == max) continue; never evaluated: min == max never executed: continue; | 0 |
2491 | | - |
2492 | if (minimize) never evaluated: minimize | 0 |
2493 | { | - |
2494 | for (i = min;; i++) | - |
2495 | { | - |
2496 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2497 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2498 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
2499 | if (eptr <= md->end_subject - length && never evaluated: eptr <= md->end_subject - length | 0 |
2500 | memcmp(eptr, charptr, ((length) << 1)) == 0) eptr += length; never evaluated: memcmp(eptr, charptr, ((length) << 1)) == 0 never executed: eptr += length; | 0 |
2501 | | - |
2502 | else if (oclength > 0 && never evaluated: oclength > 0 | 0 |
2503 | eptr <= md->end_subject - oclength && never evaluated: eptr <= md->end_subject - oclength | 0 |
2504 | memcmp(eptr, occhars, ((oclength) << 1)) == 0) eptr += oclength; never evaluated: memcmp(eptr, occhars, ((oclength) << 1)) == 0 never executed: eptr += oclength; | 0 |
2505 | | - |
2506 | else | - |
2507 | { | - |
2508 | if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr >= md->end_subject never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2509 | return 0; never executed: return 0; | 0 |
2510 | } | - |
2511 | } | - |
2512 | | - |
2513 | } | 0 |
2514 | | - |
2515 | else | - |
2516 | { | - |
2517 | pp = eptr; | - |
2518 | for (i = min; i < max; i++) | 0 |
2519 | { | - |
2520 | if (eptr <= md->end_subject - length && never evaluated: eptr <= md->end_subject - length | 0 |
2521 | memcmp(eptr, charptr, ((length) << 1)) == 0) eptr += length; never evaluated: memcmp(eptr, charptr, ((length) << 1)) == 0 never executed: eptr += length; | 0 |
2522 | | - |
2523 | else if (oclength > 0 && never evaluated: oclength > 0 | 0 |
2524 | eptr <= md->end_subject - oclength && never evaluated: eptr <= md->end_subject - oclength | 0 |
2525 | memcmp(eptr, occhars, ((oclength) << 1)) == 0) eptr += oclength; never evaluated: memcmp(eptr, occhars, ((oclength) << 1)) == 0 never executed: eptr += oclength; | 0 |
2526 | | - |
2527 | else | - |
2528 | { | - |
2529 | if (md->partial != 0 && eptr >= md->end_subject && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr >= md->end_subject never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2530 | break; | 0 |
2531 | } | - |
2532 | } | - |
2533 | | - |
2534 | if (possessive) continue; never evaluated: possessive never executed: continue; | 0 |
2535 | | - |
2536 | for(;;) | - |
2537 | { | - |
2538 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2539 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2540 | if (eptr == pp) { return 0; } never evaluated: eptr == pp never executed: return 0; | 0 |
2541 | | - |
2542 | eptr--; | - |
2543 | if ((*eptr & 0xfc00) == 0xdc00) eptr--; never evaluated: (*eptr & 0xfc00) == 0xdc00 | 0 |
2544 | | - |
2545 | | - |
2546 | | - |
2547 | } | 0 |
2548 | } | 0 |
2549 | | - |
2550 | } | - |
2551 | | - |
2552 | | - |
2553 | | - |
2554 | | - |
2555 | } executed: } Execution Count:41 | 41 |
2556 | else | - |
2557 | | - |
2558 | | - |
2559 | c = *ecode++; never executed: c = *ecode++; | 0 |
2560 | ; | - |
2561 | | - |
2562 | | - |
2563 | if (op >= OP_STARI) partially evaluated: op >= OP_STARI no Evaluation Count:0 | yes Evaluation Count:41 |
| 0-41 |
2564 | { | - |
2565 | | - |
2566 | | - |
2567 | | - |
2568 | | - |
2569 | | - |
2570 | | - |
2571 | if (utf && c > 127) | 0 |
2572 | number = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case); never executed: number = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case); | 0 |
2573 | | - |
2574 | | - |
2575 | | - |
2576 | | - |
2577 | else | - |
2578 | | - |
2579 | number = (((c) <= 255u)? ((md->fcc)[c]):(c)); never evaluated: ((c) <= 255u) never executed: number = (((c) <= 255u)? ((md->fcc)[c]):(c)); | 0 |
2580 | | - |
2581 | | - |
2582 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
2583 | { | - |
2584 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2585 | { | - |
2586 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2587 | return 0; never executed: return 0; | 0 |
2588 | } | - |
2589 | if (c != *eptr && number != *eptr) return 0; never evaluated: c != *eptr never evaluated: number != *eptr never executed: return 0; | 0 |
2590 | eptr++; | - |
2591 | } | 0 |
2592 | if (min == max) continue; never evaluated: min == max never executed: continue; | 0 |
2593 | if (minimize) never evaluated: minimize | 0 |
2594 | { | - |
2595 | for (i = min;; i++) | - |
2596 | { | - |
2597 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2598 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2599 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
2600 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2601 | { | - |
2602 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2603 | return 0; never executed: return 0; | 0 |
2604 | } | - |
2605 | if (c != *eptr && number != *eptr) return 0; never evaluated: c != *eptr never evaluated: number != *eptr never executed: return 0; | 0 |
2606 | eptr++; | - |
2607 | } | 0 |
2608 | | - |
2609 | } | 0 |
2610 | else | - |
2611 | { | - |
2612 | pp = eptr; | - |
2613 | for (i = min; i < max; i++) | 0 |
2614 | { | - |
2615 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2616 | { | - |
2617 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2618 | break; | 0 |
2619 | } | - |
2620 | if (c != *eptr && number != *eptr) break; never evaluated: c != *eptr never evaluated: number != *eptr | 0 |
2621 | eptr++; | - |
2622 | } | 0 |
2623 | | - |
2624 | if (possessive) continue; never evaluated: possessive never executed: continue; | 0 |
2625 | | - |
2626 | while (eptr >= pp) never evaluated: eptr >= pp | 0 |
2627 | { | - |
2628 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2629 | eptr--; | - |
2630 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2631 | } | 0 |
2632 | return 0; never executed: return 0; | 0 |
2633 | } | - |
2634 | | - |
2635 | } | - |
2636 | | - |
2637 | | - |
2638 | | - |
2639 | else | - |
2640 | { | - |
2641 | for (i = 1; i <= min; i++) evaluated: i <= min yes Evaluation Count:7 | yes Evaluation Count:39 |
| 7-39 |
2642 | { | - |
2643 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:2 | yes Evaluation Count:5 |
| 2-5 |
2644 | { | - |
2645 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:2 |
never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0-2 |
2646 | return 0; executed: return 0; Execution Count:2 | 2 |
2647 | } | - |
2648 | if (c != *eptr++) return 0; partially evaluated: c != *eptr++ no Evaluation Count:0 | yes Evaluation Count:5 |
never executed: return 0; | 0-5 |
2649 | } executed: } Execution Count:5 | 5 |
2650 | | - |
2651 | if (min == max) continue; partially evaluated: min == max no Evaluation Count:0 | yes Evaluation Count:39 |
never executed: continue; | 0-39 |
2652 | | - |
2653 | if (minimize) partially evaluated: minimize no Evaluation Count:0 | yes Evaluation Count:39 |
| 0-39 |
2654 | { | - |
2655 | for (i = min;; i++) | - |
2656 | { | - |
2657 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2658 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2659 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
2660 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2661 | { | - |
2662 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2663 | return 0; never executed: return 0; | 0 |
2664 | } | - |
2665 | if (c != *eptr++) return 0; never evaluated: c != *eptr++ never executed: return 0; | 0 |
2666 | } | 0 |
2667 | | - |
2668 | } | 0 |
2669 | else | - |
2670 | { | - |
2671 | pp = eptr; | - |
2672 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:66 | no Evaluation Count:0 |
| 0-66 |
2673 | { | - |
2674 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:9 | yes Evaluation Count:57 |
| 9-57 |
2675 | { | - |
2676 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:9 |
never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0-9 |
2677 | break; executed: break; Execution Count:9 | 9 |
2678 | } | - |
2679 | if (c != *eptr) break; evaluated: c != *eptr yes Evaluation Count:30 | yes Evaluation Count:27 |
executed: break; Execution Count:30 | 27-30 |
2680 | eptr++; | - |
2681 | } executed: } Execution Count:27 | 27 |
2682 | if (possessive) continue; partially evaluated: possessive no Evaluation Count:0 | yes Evaluation Count:39 |
never executed: continue; | 0-39 |
2683 | | - |
2684 | while (eptr >= pp) evaluated: eptr >= pp yes Evaluation Count:39 | yes Evaluation Count:16 |
| 16-39 |
2685 | { | - |
2686 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2687 | eptr--; | - |
2688 | if (rrc != 0) return rrc; evaluated: rrc != 0 yes Evaluation Count:23 | yes Evaluation Count:16 |
executed: return rrc; Execution Count:23 | 16-23 |
2689 | } executed: } Execution Count:16 | 16 |
2690 | return 0; executed: return 0; Execution Count:16 | 16 |
2691 | } | - |
2692 | } | - |
2693 | | - |
2694 | | - |
2695 | | - |
2696 | | - |
2697 | | - |
2698 | case OP_NOT: code before this statement never executed: case OP_NOT: | 0 |
2699 | case OP_NOTI: | - |
2700 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2701 | { | - |
2702 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2703 | return 0; never executed: return 0; | 0 |
2704 | } | - |
2705 | ecode++; | - |
2706 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
2707 | if (op == OP_NOTI) never evaluated: op == OP_NOTI | 0 |
2708 | { | - |
2709 | register unsigned int ch, och; | - |
2710 | ch = *ecode++; | - |
2711 | | - |
2712 | | - |
2713 | | - |
2714 | | - |
2715 | | - |
2716 | | - |
2717 | if (utf && ch > 127) never evaluated: ch > 127 | 0 |
2718 | och = (ch + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(ch) / 128] * 128 + (ch) % 128])->other_case); never executed: och = (ch + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(ch) / 128] * 128 + (ch) % 128])->other_case); | 0 |
2719 | | - |
2720 | | - |
2721 | | - |
2722 | | - |
2723 | else | - |
2724 | | - |
2725 | och = (((ch) <= 255u)? ((md->fcc)[ch]):(ch)); never evaluated: ((ch) <= 255u) never executed: och = (((ch) <= 255u)? ((md->fcc)[ch]):(ch)); | 0 |
2726 | | - |
2727 | if (ch == c || och == c) return 0; never evaluated: och == c never executed: return 0; | 0 |
2728 | } | 0 |
2729 | else | - |
2730 | { | - |
2731 | if (*ecode++ == c) return 0; never evaluated: *ecode++ == c never executed: return 0; | 0 |
2732 | } | 0 |
2733 | break; | 0 |
2734 | case OP_NOTEXACT: | - |
2735 | case OP_NOTEXACTI: | - |
2736 | min = max = ecode[1]; | - |
2737 | ecode += 1 + 1; | - |
2738 | goto REPEATNOTCHAR; never executed: goto REPEATNOTCHAR; | 0 |
2739 | | - |
2740 | case OP_NOTUPTO: | - |
2741 | case OP_NOTUPTOI: | - |
2742 | case OP_NOTMINUPTO: | - |
2743 | case OP_NOTMINUPTOI: | - |
2744 | min = 0; | - |
2745 | max = ecode[1]; | - |
2746 | minimize = *ecode == OP_NOTMINUPTO || *ecode == OP_NOTMINUPTOI; never evaluated: *ecode == OP_NOTMINUPTO never evaluated: *ecode == OP_NOTMINUPTOI | 0 |
2747 | ecode += 1 + 1; | - |
2748 | goto REPEATNOTCHAR; never executed: goto REPEATNOTCHAR; | 0 |
2749 | | - |
2750 | case OP_NOTPOSSTAR: | - |
2751 | case OP_NOTPOSSTARI: | - |
2752 | possessive = 1; | - |
2753 | min = 0; | - |
2754 | max = 2147483647; | - |
2755 | ecode++; | - |
2756 | goto REPEATNOTCHAR; never executed: goto REPEATNOTCHAR; | 0 |
2757 | | - |
2758 | case OP_NOTPOSPLUS: | - |
2759 | case OP_NOTPOSPLUSI: | - |
2760 | possessive = 1; | - |
2761 | min = 1; | - |
2762 | max = 2147483647; | - |
2763 | ecode++; | - |
2764 | goto REPEATNOTCHAR; never executed: goto REPEATNOTCHAR; | 0 |
2765 | | - |
2766 | case OP_NOTPOSQUERY: | - |
2767 | case OP_NOTPOSQUERYI: | - |
2768 | possessive = 1; | - |
2769 | min = 0; | - |
2770 | max = 1; | - |
2771 | ecode++; | - |
2772 | goto REPEATNOTCHAR; never executed: goto REPEATNOTCHAR; | 0 |
2773 | | - |
2774 | case OP_NOTPOSUPTO: | - |
2775 | case OP_NOTPOSUPTOI: | - |
2776 | possessive = 1; | - |
2777 | min = 0; | - |
2778 | max = ecode[1]; | - |
2779 | ecode += 1 + 1; | - |
2780 | goto REPEATNOTCHAR; never executed: goto REPEATNOTCHAR; | 0 |
2781 | | - |
2782 | case OP_NOTSTAR: | - |
2783 | case OP_NOTSTARI: | - |
2784 | case OP_NOTMINSTAR: | - |
2785 | case OP_NOTMINSTARI: | - |
2786 | case OP_NOTPLUS: | - |
2787 | case OP_NOTPLUSI: | - |
2788 | case OP_NOTMINPLUS: | - |
2789 | case OP_NOTMINPLUSI: | - |
2790 | case OP_NOTQUERY: | - |
2791 | case OP_NOTQUERYI: | - |
2792 | case OP_NOTMINQUERY: | - |
2793 | case OP_NOTMINQUERYI: | - |
2794 | c = *ecode++ - ((op >= OP_NOTSTARI)? OP_NOTSTARI: OP_NOTSTAR); partially evaluated: (op >= OP_NOTSTARI) no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
2795 | minimize = (c & 1) != 0; | - |
2796 | min = rep_min[c]; | - |
2797 | max = rep_max[c]; | - |
2798 | if (max == 0) max = 2147483647; partially evaluated: max == 0 yes Evaluation Count:1 | no Evaluation Count:0 |
executed: max = 2147483647; Execution Count:1 | 0-1 |
2799 | | - |
2800 | | - |
2801 | | - |
2802 | REPEATNOTCHAR: code before this statement executed: REPEATNOTCHAR: Execution Count:1 | 1 |
2803 | c = *ecode++; | - |
2804 | ; | - |
2805 | | - |
2806 | | - |
2807 | if (op >= OP_NOTSTARI) partially evaluated: op >= OP_NOTSTARI no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
2808 | { | - |
2809 | | - |
2810 | | - |
2811 | | - |
2812 | | - |
2813 | | - |
2814 | | - |
2815 | if (utf && c > 127) | 0 |
2816 | number = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case); never executed: number = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case); | 0 |
2817 | | - |
2818 | | - |
2819 | | - |
2820 | | - |
2821 | else | - |
2822 | | - |
2823 | number = (((c) <= 255u)? ((md->fcc)[c]):(c)); never evaluated: ((c) <= 255u) never executed: number = (((c) <= 255u)? ((md->fcc)[c]):(c)); | 0 |
2824 | | - |
2825 | | - |
2826 | | - |
2827 | if (utf) | 0 |
2828 | { | - |
2829 | register unsigned int d; | - |
2830 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
2831 | { | - |
2832 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2833 | { | - |
2834 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2835 | return 0; never executed: return 0; | 0 |
2836 | } | - |
2837 | d = *eptr++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (d & 0xfc00) == 0xd800 | 0 |
2838 | if (c == d || (unsigned int) number == d) return 0; never evaluated: (unsigned int) number == d never executed: return 0; | 0 |
2839 | } | 0 |
2840 | } | 0 |
2841 | else | - |
2842 | | - |
2843 | | - |
2844 | { | - |
2845 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
2846 | { | - |
2847 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2848 | { | - |
2849 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2850 | return 0; never executed: return 0; | 0 |
2851 | } | - |
2852 | if (c == *eptr || number == *eptr) return 0; never evaluated: c == *eptr never evaluated: number == *eptr never executed: return 0; | 0 |
2853 | eptr++; | - |
2854 | } | 0 |
2855 | } | 0 |
2856 | | - |
2857 | if (min == max) continue; never evaluated: min == max never executed: continue; | 0 |
2858 | | - |
2859 | if (minimize) never evaluated: minimize | 0 |
2860 | { | - |
2861 | | - |
2862 | if (utf) | 0 |
2863 | { | - |
2864 | register unsigned int d; | - |
2865 | for (i = min;; i++) | - |
2866 | { | - |
2867 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2868 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2869 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
2870 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2871 | { | - |
2872 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2873 | return 0; never executed: return 0; | 0 |
2874 | } | - |
2875 | d = *eptr++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (d & 0xfc00) == 0xd800 | 0 |
2876 | if (c == d || (unsigned int)number == d) return 0; never evaluated: (unsigned int)number == d never executed: return 0; | 0 |
2877 | } | 0 |
2878 | } | 0 |
2879 | else | - |
2880 | | - |
2881 | | - |
2882 | { | - |
2883 | for (i = min;; i++) | - |
2884 | { | - |
2885 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2886 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2887 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
2888 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2889 | { | - |
2890 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2891 | return 0; never executed: return 0; | 0 |
2892 | } | - |
2893 | if (c == *eptr || number == *eptr) return 0; never evaluated: c == *eptr never evaluated: number == *eptr never executed: return 0; | 0 |
2894 | eptr++; | - |
2895 | } | 0 |
2896 | } | 0 |
2897 | | - |
2898 | } | - |
2899 | | - |
2900 | | - |
2901 | | - |
2902 | else | - |
2903 | { | - |
2904 | pp = eptr; | - |
2905 | | - |
2906 | | - |
2907 | if (utf) | 0 |
2908 | { | - |
2909 | register unsigned int d; | - |
2910 | for (i = min; i < max; i++) | 0 |
2911 | { | - |
2912 | int len = 1; | - |
2913 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2914 | { | - |
2915 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2916 | break; | 0 |
2917 | } | - |
2918 | d = *eptr; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (d & 0xfc00) == 0xd800 | 0 |
2919 | if (c == d || (unsigned int)number == d) break; never evaluated: (unsigned int)number == d | 0 |
2920 | eptr += len; | - |
2921 | } | 0 |
2922 | if (possessive) continue; never evaluated: possessive never executed: continue; | 0 |
2923 | for(;;) | - |
2924 | { | - |
2925 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2926 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2927 | if (eptr-- == pp) break; never evaluated: eptr-- == pp | 0 |
2928 | if ((*eptr & 0xfc00) == 0xdc00) eptr--; never evaluated: (*eptr & 0xfc00) == 0xdc00 | 0 |
2929 | } | 0 |
2930 | } | 0 |
2931 | else | - |
2932 | | - |
2933 | | - |
2934 | { | - |
2935 | for (i = min; i < max; i++) | 0 |
2936 | { | - |
2937 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2938 | { | - |
2939 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2940 | break; | 0 |
2941 | } | - |
2942 | if (c == *eptr || number == *eptr) break; never evaluated: c == *eptr never evaluated: number == *eptr | 0 |
2943 | eptr++; | - |
2944 | } | 0 |
2945 | if (possessive) continue; never evaluated: possessive never executed: continue; | 0 |
2946 | while (eptr >= pp) never evaluated: eptr >= pp | 0 |
2947 | { | - |
2948 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
2949 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
2950 | eptr--; | - |
2951 | } | 0 |
2952 | } | 0 |
2953 | | - |
2954 | return 0; never executed: return 0; | 0 |
2955 | } | - |
2956 | | - |
2957 | } | - |
2958 | | - |
2959 | | - |
2960 | | - |
2961 | else | - |
2962 | { | - |
2963 | | - |
2964 | if (utf) partially evaluated: utf yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-1 |
2965 | { | - |
2966 | register unsigned int d; | - |
2967 | for (i = 1; i <= min; i++) partially evaluated: i <= min no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
2968 | { | - |
2969 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2970 | { | - |
2971 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2972 | return 0; never executed: return 0; | 0 |
2973 | } | - |
2974 | d = *eptr++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (d & 0xfc00) == 0xd800 | 0 |
2975 | if (c == d) return 0; never executed: return 0; | 0 |
2976 | } | 0 |
2977 | } executed: } Execution Count:1 | 1 |
2978 | else | - |
2979 | | - |
2980 | | - |
2981 | { | - |
2982 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
2983 | { | - |
2984 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
2985 | { | - |
2986 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
2987 | return 0; never executed: return 0; | 0 |
2988 | } | - |
2989 | if (c == *eptr++) return 0; never evaluated: c == *eptr++ never executed: return 0; | 0 |
2990 | } | 0 |
2991 | } | 0 |
2992 | | - |
2993 | if (min == max) continue; partially evaluated: min == max no Evaluation Count:0 | yes Evaluation Count:1 |
never executed: continue; | 0-1 |
2994 | | - |
2995 | if (minimize) partially evaluated: minimize no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
2996 | { | - |
2997 | | - |
2998 | if (utf) | 0 |
2999 | { | - |
3000 | register unsigned int d; | - |
3001 | for (i = min;; i++) | - |
3002 | { | - |
3003 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
3004 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
3005 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
3006 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3007 | { | - |
3008 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3009 | return 0; never executed: return 0; | 0 |
3010 | } | - |
3011 | d = *eptr++; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (d & 0xfc00) == 0xd800 | 0 |
3012 | if (c == d) return 0; never executed: return 0; | 0 |
3013 | } | 0 |
3014 | } | 0 |
3015 | else | - |
3016 | | - |
3017 | | - |
3018 | { | - |
3019 | for (i = min;; i++) | - |
3020 | { | - |
3021 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
3022 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
3023 | if (i >= max) return 0; never evaluated: i >= max never executed: return 0; | 0 |
3024 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3025 | { | - |
3026 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3027 | return 0; never executed: return 0; | 0 |
3028 | } | - |
3029 | if (c == *eptr++) return 0; never evaluated: c == *eptr++ never executed: return 0; | 0 |
3030 | } | 0 |
3031 | } | 0 |
3032 | | - |
3033 | } | - |
3034 | | - |
3035 | | - |
3036 | | - |
3037 | else | - |
3038 | { | - |
3039 | pp = eptr; | - |
3040 | | - |
3041 | | - |
3042 | if (utf) partially evaluated: utf yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-1 |
3043 | { | - |
3044 | register unsigned int d; | - |
3045 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:8 | no Evaluation Count:0 |
| 0-8 |
3046 | { | - |
3047 | int len = 1; | - |
3048 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:8 |
| 0-8 |
3049 | { | - |
3050 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3051 | break; | 0 |
3052 | } | - |
3053 | d = *eptr; if ((d & 0xfc00) == 0xd800) { d = (((d & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; partially evaluated: (d & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:8 |
| 0-8 |
3054 | if (c == d) break; evaluated: c == d yes Evaluation Count:1 | yes Evaluation Count:7 |
executed: break; Execution Count:1 | 1-7 |
3055 | eptr += len; | - |
3056 | } executed: } Execution Count:7 | 7 |
3057 | if (possessive) continue; partially evaluated: possessive no Evaluation Count:0 | yes Evaluation Count:1 |
never executed: continue; | 0-1 |
3058 | for(;;) | - |
3059 | { | - |
3060 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
3061 | if (rrc != 0) return rrc; partially evaluated: rrc != 0 yes Evaluation Count:1 | no Evaluation Count:0 |
executed: return rrc; Execution Count:1 | 0-1 |
3062 | if (eptr-- == pp) break; never evaluated: eptr-- == pp | 0 |
3063 | if ((*eptr & 0xfc00) == 0xdc00) eptr--; never evaluated: (*eptr & 0xfc00) == 0xdc00 | 0 |
3064 | } | 0 |
3065 | } | 0 |
3066 | else | - |
3067 | | - |
3068 | | - |
3069 | { | - |
3070 | for (i = min; i < max; i++) | 0 |
3071 | { | - |
3072 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3073 | { | - |
3074 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3075 | break; | 0 |
3076 | } | - |
3077 | if (c == *eptr) break; never evaluated: c == *eptr | 0 |
3078 | eptr++; | - |
3079 | } | 0 |
3080 | if (possessive) continue; never evaluated: possessive never executed: continue; | 0 |
3081 | while (eptr >= pp) never evaluated: eptr >= pp | 0 |
3082 | { | - |
3083 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
3084 | if (rrc != 0) return rrc; never evaluated: rrc != 0 never executed: return rrc; | 0 |
3085 | eptr--; | - |
3086 | } | 0 |
3087 | } | 0 |
3088 | | - |
3089 | return 0; never executed: return 0; | 0 |
3090 | } | - |
3091 | } | - |
3092 | | - |
3093 | | - |
3094 | | - |
3095 | | - |
3096 | | - |
3097 | | - |
3098 | case OP_TYPEEXACT: code before this statement never executed: case OP_TYPEEXACT: | 0 |
3099 | min = max = ecode[1]; | - |
3100 | minimize = 1; | - |
3101 | ecode += 1 + 1; | - |
3102 | goto REPEATTYPE; executed: goto REPEATTYPE; Execution Count:8 | 8 |
3103 | | - |
3104 | case OP_TYPEUPTO: | - |
3105 | case OP_TYPEMINUPTO: | - |
3106 | min = 0; | - |
3107 | max = ecode[1]; | - |
3108 | minimize = *ecode == OP_TYPEMINUPTO; | - |
3109 | ecode += 1 + 1; | - |
3110 | goto REPEATTYPE; executed: goto REPEATTYPE; Execution Count:4 | 4 |
3111 | | - |
3112 | case OP_TYPEPOSSTAR: | - |
3113 | possessive = 1; | - |
3114 | min = 0; | - |
3115 | max = 2147483647; | - |
3116 | ecode++; | - |
3117 | goto REPEATTYPE; never executed: goto REPEATTYPE; | 0 |
3118 | | - |
3119 | case OP_TYPEPOSPLUS: | - |
3120 | possessive = 1; | - |
3121 | min = 1; | - |
3122 | max = 2147483647; | - |
3123 | ecode++; | - |
3124 | goto REPEATTYPE; executed: goto REPEATTYPE; Execution Count:3 | 3 |
3125 | | - |
3126 | case OP_TYPEPOSQUERY: | - |
3127 | possessive = 1; | - |
3128 | min = 0; | - |
3129 | max = 1; | - |
3130 | ecode++; | - |
3131 | goto REPEATTYPE; never executed: goto REPEATTYPE; | 0 |
3132 | | - |
3133 | case OP_TYPEPOSUPTO: | - |
3134 | possessive = 1; | - |
3135 | min = 0; | - |
3136 | max = ecode[1]; | - |
3137 | ecode += 1 + 1; | - |
3138 | goto REPEATTYPE; never executed: goto REPEATTYPE; | 0 |
3139 | | - |
3140 | case OP_TYPESTAR: | - |
3141 | case OP_TYPEMINSTAR: | - |
3142 | case OP_TYPEPLUS: | - |
3143 | case OP_TYPEMINPLUS: | - |
3144 | case OP_TYPEQUERY: | - |
3145 | case OP_TYPEMINQUERY: | - |
3146 | c = *ecode++ - OP_TYPESTAR; | - |
3147 | minimize = (c & 1) != 0; | - |
3148 | min = rep_min[c]; | - |
3149 | max = rep_max[c]; | - |
3150 | if (max == 0) max = 2147483647; partially evaluated: max == 0 yes Evaluation Count:358 | no Evaluation Count:0 |
executed: max = 2147483647; Execution Count:358 | 0-358 |
3151 | | - |
3152 | | - |
3153 | | - |
3154 | | - |
3155 | | - |
3156 | REPEATTYPE: code before this statement executed: REPEATTYPE: Execution Count:358 | 358 |
3157 | ctype = *ecode++; | - |
3158 | | - |
3159 | | - |
3160 | if (ctype == OP_PROP || ctype == OP_NOTPROP) evaluated: ctype == OP_PROP yes Evaluation Count:2 | yes Evaluation Count:371 |
partially evaluated: ctype == OP_NOTPROP no Evaluation Count:0 | yes Evaluation Count:371 |
| 0-371 |
3161 | { | - |
3162 | prop_fail_result = ctype == OP_NOTPROP; | - |
3163 | prop_type = *ecode++; | - |
3164 | prop_value = *ecode++; | - |
3165 | } executed: } Execution Count:2 | 2 |
3166 | else prop_type = -1; executed: prop_type = -1; Execution Count:371 | 371 |
3167 | if (min > 0) evaluated: min > 0 yes Evaluation Count:238 | yes Evaluation Count:135 |
| 135-238 |
3168 | { | - |
3169 | | - |
3170 | if (prop_type >= 0) evaluated: prop_type >= 0 yes Evaluation Count:2 | yes Evaluation Count:236 |
| 2-236 |
3171 | { | - |
3172 | switch(prop_type) | - |
3173 | { | - |
3174 | case 0: | - |
3175 | if (prop_fail_result) return 0; never evaluated: prop_fail_result never executed: return 0; | 0 |
3176 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3177 | { | - |
3178 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3179 | { | - |
3180 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3181 | return 0; never executed: return 0; | 0 |
3182 | } | - |
3183 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3184 | } | 0 |
3185 | break; | 0 |
3186 | | - |
3187 | case 1: | - |
3188 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3189 | { | - |
3190 | int chartype; | - |
3191 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3192 | { | - |
3193 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3194 | return 0; never executed: return 0; | 0 |
3195 | } | - |
3196 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3197 | chartype = (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype; | - |
3198 | if ((chartype == ucp_Lu || never evaluated: chartype == ucp_Lu | 0 |
3199 | chartype == ucp_Ll || never evaluated: chartype == ucp_Ll | 0 |
3200 | chartype == ucp_Lt) == prop_fail_result) never evaluated: (chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) == prop_fail_result never evaluated: chartype == ucp_Lt | 0 |
3201 | return 0; never executed: return 0; | 0 |
3202 | } | 0 |
3203 | break; | 0 |
3204 | | - |
3205 | case 2: | - |
3206 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3207 | { | - |
3208 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3209 | { | - |
3210 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3211 | return 0; never executed: return 0; | 0 |
3212 | } | - |
3213 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3214 | if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result) never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result | 0 |
3215 | return 0; never executed: return 0; | 0 |
3216 | } | 0 |
3217 | break; | 0 |
3218 | | - |
3219 | case 3: | - |
3220 | for (i = 1; i <= min; i++) evaluated: i <= min yes Evaluation Count:1 | yes Evaluation Count:1 |
| 1 |
3221 | { | - |
3222 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
3223 | { | - |
3224 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3225 | return 0; never executed: return 0; | 0 |
3226 | } | - |
3227 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; partially evaluated: utf yes Evaluation Count:1 | no Evaluation Count:0 |
partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
3228 | if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result) partially evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
3229 | return 0; never executed: return 0; | 0 |
3230 | } executed: } Execution Count:1 | 1 |
3231 | break; executed: break; Execution Count:1 | 1 |
3232 | | - |
3233 | case 4: | - |
3234 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3235 | { | - |
3236 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3237 | { | - |
3238 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3239 | return 0; never executed: return 0; | 0 |
3240 | } | - |
3241 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3242 | if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result) never evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result | 0 |
3243 | return 0; never executed: return 0; | 0 |
3244 | } | 0 |
3245 | break; | 0 |
3246 | | - |
3247 | case 5: | - |
3248 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3249 | { | - |
3250 | int category; | - |
3251 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3252 | { | - |
3253 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3254 | return 0; never executed: return 0; | 0 |
3255 | } | - |
3256 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3257 | category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
3258 | if ((category == ucp_L || category == ucp_N) == prop_fail_result) never evaluated: (category == ucp_L || category == ucp_N) == prop_fail_result never evaluated: category == ucp_L never evaluated: category == ucp_N | 0 |
3259 | return 0; never executed: return 0; | 0 |
3260 | } | 0 |
3261 | break; | 0 |
3262 | | - |
3263 | case 6: | - |
3264 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3265 | { | - |
3266 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3267 | { | - |
3268 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3269 | return 0; never executed: return 0; | 0 |
3270 | } | - |
3271 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3272 | if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z never evaluated: c == '\011' never evaluated: c == '\012' | 0 |
3273 | c == '\014' || c == '\015') never evaluated: c == '\014' never evaluated: c == '\015' | 0 |
3274 | == prop_fail_result) never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\014' || c == '\015') == prop_fail_result | 0 |
3275 | return 0; never executed: return 0; | 0 |
3276 | } | 0 |
3277 | break; | 0 |
3278 | | - |
3279 | case 7: | - |
3280 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3281 | { | - |
3282 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3283 | { | - |
3284 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3285 | return 0; never executed: return 0; | 0 |
3286 | } | - |
3287 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3288 | if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z never evaluated: c == '\011' never evaluated: c == '\012' | 0 |
3289 | c == '\013' || c == '\014' || c == '\015') never evaluated: c == '\013' never evaluated: c == '\014' never evaluated: c == '\015' | 0 |
3290 | == prop_fail_result) never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\013' || c == '\014' || c == '\015') == prop_fail_result | 0 |
3291 | return 0; never executed: return 0; | 0 |
3292 | } | 0 |
3293 | break; | 0 |
3294 | | - |
3295 | case 8: | - |
3296 | for (i = 1; i <= min; i++) evaluated: i <= min yes Evaluation Count:1 | yes Evaluation Count:1 |
| 1 |
3297 | { | - |
3298 | int category; | - |
3299 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
3300 | { | - |
3301 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3302 | return 0; never executed: return 0; | 0 |
3303 | } | - |
3304 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; partially evaluated: utf yes Evaluation Count:1 | no Evaluation Count:0 |
partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
3305 | category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
3306 | if ((category == ucp_L || category == ucp_N || c == '\137') partially evaluated: category == ucp_L yes Evaluation Count:1 | no Evaluation Count:0 |
never evaluated: category == ucp_N never evaluated: c == '\137' | 0-1 |
3307 | == prop_fail_result) partially evaluated: (category == ucp_L || category == ucp_N || c == '\137') == prop_fail_result no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
3308 | return 0; never executed: return 0; | 0 |
3309 | } executed: } Execution Count:1 | 1 |
3310 | break; executed: break; Execution Count:1 | 1 |
3311 | | - |
3312 | | - |
3313 | | - |
3314 | default: | - |
3315 | return (-14); never executed: return (-14); | 0 |
3316 | } | - |
3317 | } executed: } Execution Count:2 | 2 |
3318 | | - |
3319 | | - |
3320 | | - |
3321 | | - |
3322 | else if (ctype == OP_EXTUNI) partially evaluated: ctype == OP_EXTUNI no Evaluation Count:0 | yes Evaluation Count:236 |
| 0-236 |
3323 | { | - |
3324 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3325 | { | - |
3326 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3327 | { | - |
3328 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3329 | return 0; never executed: return 0; | 0 |
3330 | } | - |
3331 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3332 | if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M) return 0; never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M never executed: return 0; | 0 |
3333 | while (eptr < md->end_subject) never evaluated: eptr < md->end_subject | 0 |
3334 | { | - |
3335 | int len = 1; | - |
3336 | if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; } never evaluated: (c & 0xfc00) == 0xd800 never executed: c = *eptr; | 0 |
3337 | if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break; never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M | 0 |
3338 | eptr += len; | - |
3339 | } | 0 |
3340 | } | 0 |
3341 | } | 0 |
3342 | | - |
3343 | else | - |
3344 | | - |
3345 | | - |
3346 | | - |
3347 | | - |
3348 | | - |
3349 | if (utf) switch(ctype) partially evaluated: utf yes Evaluation Count:236 | no Evaluation Count:0 |
| 0-236 |
3350 | { | - |
3351 | case OP_ANY: | - |
3352 | for (i = 1; i <= min; i++) evaluated: i <= min yes Evaluation Count:2 | yes Evaluation Count:2 |
| 2 |
3353 | { | - |
3354 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
3355 | { | - |
3356 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3357 | return 0; never executed: return 0; | 0 |
3358 | } | - |
3359 | if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) return 0; partially evaluated: (md->nltype != 0) no Evaluation Count:0 | yes Evaluation Count:2 |
never executed: return 0; | 0-2 |
3360 | eptr++; | - |
3361 | if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++; partially evaluated: (eptr < md->end_subject) yes Evaluation Count:2 | no Evaluation Count:0 |
partially evaluated: ((*eptr) & 0xfc00) == 0xdc00 no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
3362 | } executed: } Execution Count:2 | 2 |
3363 | break; executed: break; Execution Count:2 | 2 |
3364 | | - |
3365 | case OP_ALLANY: | - |
3366 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3367 | { | - |
3368 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3369 | { | - |
3370 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3371 | return 0; never executed: return 0; | 0 |
3372 | } | - |
3373 | eptr++; | - |
3374 | if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++; never evaluated: (eptr < md->end_subject) never evaluated: ((*eptr) & 0xfc00) == 0xdc00 | 0 |
3375 | } | 0 |
3376 | break; | 0 |
3377 | | - |
3378 | case OP_ANYBYTE: | - |
3379 | if (eptr > md->end_subject - min) return 0; never evaluated: eptr > md->end_subject - min never executed: return 0; | 0 |
3380 | eptr += min; | - |
3381 | break; | 0 |
3382 | | - |
3383 | case OP_ANYNL: | - |
3384 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3385 | { | - |
3386 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3387 | { | - |
3388 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3389 | return 0; never executed: return 0; | 0 |
3390 | } | - |
3391 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3392 | switch(c) | - |
3393 | { | - |
3394 | default: return 0; never executed: return 0; | 0 |
3395 | | - |
3396 | case 0x000d: | - |
3397 | if (eptr < md->end_subject && *eptr == 0x0a) eptr++; never evaluated: eptr < md->end_subject never evaluated: *eptr == 0x0a | 0 |
3398 | break; | 0 |
3399 | | - |
3400 | case 0x000a: | - |
3401 | break; | 0 |
3402 | | - |
3403 | case 0x000b: | - |
3404 | case 0x000c: | - |
3405 | case 0x0085: | - |
3406 | case 0x2028: | - |
3407 | case 0x2029: | - |
3408 | if (md->bsr_anycrlf) return 0; never evaluated: md->bsr_anycrlf never executed: return 0; | 0 |
3409 | break; | 0 |
3410 | } | - |
3411 | } | 0 |
3412 | break; | 0 |
3413 | | - |
3414 | case OP_NOT_HSPACE: | - |
3415 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3416 | { | - |
3417 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3418 | { | - |
3419 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3420 | return 0; never executed: return 0; | 0 |
3421 | } | - |
3422 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3423 | switch(c) | - |
3424 | { | - |
3425 | default: break; | 0 |
3426 | case 0x09: | - |
3427 | case 0x20: | - |
3428 | case 0xa0: | - |
3429 | case 0x1680: | - |
3430 | case 0x180e: | - |
3431 | case 0x2000: | - |
3432 | case 0x2001: | - |
3433 | case 0x2002: | - |
3434 | case 0x2003: | - |
3435 | case 0x2004: | - |
3436 | case 0x2005: | - |
3437 | case 0x2006: | - |
3438 | case 0x2007: | - |
3439 | case 0x2008: | - |
3440 | case 0x2009: | - |
3441 | case 0x200A: | - |
3442 | case 0x202f: | - |
3443 | case 0x205f: | - |
3444 | case 0x3000: | - |
3445 | return 0; never executed: return 0; | 0 |
3446 | } | - |
3447 | } | 0 |
3448 | break; | 0 |
3449 | | - |
3450 | case OP_HSPACE: | - |
3451 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3452 | { | - |
3453 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3454 | { | - |
3455 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3456 | return 0; never executed: return 0; | 0 |
3457 | } | - |
3458 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3459 | switch(c) | - |
3460 | { | - |
3461 | default: return 0; never executed: return 0; | 0 |
3462 | case 0x09: | - |
3463 | case 0x20: | - |
3464 | case 0xa0: | - |
3465 | case 0x1680: | - |
3466 | case 0x180e: | - |
3467 | case 0x2000: | - |
3468 | case 0x2001: | - |
3469 | case 0x2002: | - |
3470 | case 0x2003: | - |
3471 | case 0x2004: | - |
3472 | case 0x2005: | - |
3473 | case 0x2006: | - |
3474 | case 0x2007: | - |
3475 | case 0x2008: | - |
3476 | case 0x2009: | - |
3477 | case 0x200A: | - |
3478 | case 0x202f: | - |
3479 | case 0x205f: | - |
3480 | case 0x3000: | - |
3481 | break; | 0 |
3482 | } | - |
3483 | } | 0 |
3484 | break; | 0 |
3485 | | - |
3486 | case OP_NOT_VSPACE: | - |
3487 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3488 | { | - |
3489 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3490 | { | - |
3491 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3492 | return 0; never executed: return 0; | 0 |
3493 | } | - |
3494 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3495 | switch(c) | - |
3496 | { | - |
3497 | default: break; | 0 |
3498 | case 0x0a: | - |
3499 | case 0x0b: | - |
3500 | case 0x0c: | - |
3501 | case 0x0d: | - |
3502 | case 0x85: | - |
3503 | case 0x2028: | - |
3504 | case 0x2029: | - |
3505 | return 0; never executed: return 0; | 0 |
3506 | } | - |
3507 | } | 0 |
3508 | break; | 0 |
3509 | | - |
3510 | case OP_VSPACE: | - |
3511 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3512 | { | - |
3513 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3514 | { | - |
3515 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3516 | return 0; never executed: return 0; | 0 |
3517 | } | - |
3518 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3519 | switch(c) | - |
3520 | { | - |
3521 | default: return 0; never executed: return 0; | 0 |
3522 | case 0x0a: | - |
3523 | case 0x0b: | - |
3524 | case 0x0c: | - |
3525 | case 0x0d: | - |
3526 | case 0x85: | - |
3527 | case 0x2028: | - |
3528 | case 0x2029: | - |
3529 | break; | 0 |
3530 | } | - |
3531 | } | 0 |
3532 | break; | 0 |
3533 | | - |
3534 | case OP_NOT_DIGIT: | - |
3535 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3536 | { | - |
3537 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3538 | { | - |
3539 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3540 | return 0; never executed: return 0; | 0 |
3541 | } | - |
3542 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3543 | if (c < 128 && (md->ctypes[c] & 0x04) != 0) never evaluated: (md->ctypes[c] & 0x04) != 0 | 0 |
3544 | return 0; never executed: return 0; | 0 |
3545 | } | 0 |
3546 | break; | 0 |
3547 | | - |
3548 | case OP_DIGIT: | - |
3549 | for (i = 1; i <= min; i++) evaluated: i <= min yes Evaluation Count:43 | yes Evaluation Count:9 |
| 9-43 |
3550 | { | - |
3551 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:5 | yes Evaluation Count:38 |
| 5-38 |
3552 | { | - |
3553 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; evaluated: md->partial > 1 yes Evaluation Count:1 | yes Evaluation Count:1 |
evaluated: md->partial != 0 yes Evaluation Count:2 | yes Evaluation Count:3 |
partially evaluated: eptr > md->start_used_ptr yes Evaluation Count:2 | no Evaluation Count:0 |
executed: return (-12); Execution Count:1 executed: } Execution Count:1 | 0-3 |
3554 | return 0; executed: return 0; Execution Count:4 | 4 |
3555 | } | - |
3556 | if (*eptr >= 128 || (md->ctypes[*eptr] & 0x04) == 0) partially evaluated: *eptr >= 128 no Evaluation Count:0 | yes Evaluation Count:38 |
evaluated: (md->ctypes[*eptr] & 0x04) == 0 yes Evaluation Count:19 | yes Evaluation Count:19 |
| 0-38 |
3557 | return 0; executed: return 0; Execution Count:19 | 19 |
3558 | eptr++; | - |
3559 | | - |
3560 | } executed: } Execution Count:19 | 19 |
3561 | break; executed: break; Execution Count:9 | 9 |
3562 | | - |
3563 | case OP_NOT_WHITESPACE: | - |
3564 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3565 | { | - |
3566 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3567 | { | - |
3568 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3569 | return 0; never executed: return 0; | 0 |
3570 | } | - |
3571 | if (*eptr < 128 && (md->ctypes[*eptr] & 0x01) != 0) never evaluated: *eptr < 128 never evaluated: (md->ctypes[*eptr] & 0x01) != 0 | 0 |
3572 | return 0; never executed: return 0; | 0 |
3573 | eptr++; | - |
3574 | if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++; never evaluated: (eptr < md->end_subject) never evaluated: ((*eptr) & 0xfc00) == 0xdc00 | 0 |
3575 | } | 0 |
3576 | break; | 0 |
3577 | | - |
3578 | case OP_WHITESPACE: | - |
3579 | for (i = 1; i <= min; i++) evaluated: i <= min yes Evaluation Count:70 | yes Evaluation Count:8 |
| 8-70 |
3580 | { | - |
3581 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:2 | yes Evaluation Count:68 |
| 2-68 |
3582 | { | - |
3583 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:2 |
never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0-2 |
3584 | return 0; executed: return 0; Execution Count:2 | 2 |
3585 | } | - |
3586 | if (*eptr >= 128 || (md->ctypes[*eptr] & 0x01) == 0) partially evaluated: *eptr >= 128 no Evaluation Count:0 | yes Evaluation Count:68 |
evaluated: (md->ctypes[*eptr] & 0x01) == 0 yes Evaluation Count:60 | yes Evaluation Count:8 |
| 0-68 |
3587 | return 0; executed: return 0; Execution Count:60 | 60 |
3588 | eptr++; | - |
3589 | | - |
3590 | } executed: } Execution Count:8 | 8 |
3591 | break; executed: break; Execution Count:8 | 8 |
3592 | | - |
3593 | case OP_NOT_WORDCHAR: | - |
3594 | for (i = 1; i <= min; i++) evaluated: i <= min yes Evaluation Count:74 | yes Evaluation Count:12 |
| 12-74 |
3595 | { | - |
3596 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:2 | yes Evaluation Count:72 |
| 2-72 |
3597 | { | - |
3598 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:2 |
never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0-2 |
3599 | return 0; executed: return 0; Execution Count:2 | 2 |
3600 | } | - |
3601 | if (*eptr < 128 && (md->ctypes[*eptr] & 0x10) != 0) partially evaluated: *eptr < 128 yes Evaluation Count:72 | no Evaluation Count:0 |
evaluated: (md->ctypes[*eptr] & 0x10) != 0 yes Evaluation Count:60 | yes Evaluation Count:12 |
| 0-72 |
3602 | return 0; executed: return 0; Execution Count:60 | 60 |
3603 | eptr++; | - |
3604 | if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++; evaluated: (eptr < md->end_subject) yes Evaluation Count:10 | yes Evaluation Count:2 |
partially evaluated: ((*eptr) & 0xfc00) == 0xdc00 no Evaluation Count:0 | yes Evaluation Count:10 |
| 0-10 |
3605 | } executed: } Execution Count:12 | 12 |
3606 | break; executed: break; Execution Count:12 | 12 |
3607 | | - |
3608 | case OP_WORDCHAR: | - |
3609 | for (i = 1; i <= min; i++) evaluated: i <= min yes Evaluation Count:65 | yes Evaluation Count:42 |
| 42-65 |
3610 | { | - |
3611 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:5 | yes Evaluation Count:60 |
| 5-60 |
3612 | { | - |
3613 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:5 |
never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0-5 |
3614 | return 0; executed: return 0; Execution Count:5 | 5 |
3615 | } | - |
3616 | if (*eptr >= 128 || (md->ctypes[*eptr] & 0x10) == 0) partially evaluated: *eptr >= 128 no Evaluation Count:0 | yes Evaluation Count:60 |
evaluated: (md->ctypes[*eptr] & 0x10) == 0 yes Evaluation Count:10 | yes Evaluation Count:50 |
| 0-60 |
3617 | return 0; executed: return 0; Execution Count:10 | 10 |
3618 | eptr++; | - |
3619 | | - |
3620 | } executed: } Execution Count:50 | 50 |
3621 | break; executed: break; Execution Count:42 | 42 |
3622 | | - |
3623 | default: | - |
3624 | return (-14); never executed: return (-14); | 0 |
3625 | } | 0 |
3626 | | - |
3627 | else | - |
3628 | | - |
3629 | | - |
3630 | | - |
3631 | | - |
3632 | | - |
3633 | switch(ctype) | - |
3634 | { | - |
3635 | case OP_ANY: | - |
3636 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3637 | { | - |
3638 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3639 | { | - |
3640 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3641 | return 0; never executed: return 0; | 0 |
3642 | } | - |
3643 | if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) return 0; never evaluated: (md->nltype != 0) never executed: return 0; | 0 |
3644 | eptr++; | - |
3645 | } | 0 |
3646 | break; | 0 |
3647 | | - |
3648 | case OP_ALLANY: | - |
3649 | if (eptr > md->end_subject - min) never evaluated: eptr > md->end_subject - min | 0 |
3650 | { | - |
3651 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3652 | return 0; never executed: return 0; | 0 |
3653 | } | - |
3654 | eptr += min; | - |
3655 | break; | 0 |
3656 | | - |
3657 | case OP_ANYBYTE: | - |
3658 | if (eptr > md->end_subject - min) never evaluated: eptr > md->end_subject - min | 0 |
3659 | { | - |
3660 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3661 | return 0; never executed: return 0; | 0 |
3662 | } | - |
3663 | eptr += min; | - |
3664 | break; | 0 |
3665 | | - |
3666 | case OP_ANYNL: | - |
3667 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3668 | { | - |
3669 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3670 | { | - |
3671 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3672 | return 0; never executed: return 0; | 0 |
3673 | } | - |
3674 | switch(*eptr++) | - |
3675 | { | - |
3676 | default: return 0; never executed: return 0; | 0 |
3677 | | - |
3678 | case 0x000d: | - |
3679 | if (eptr < md->end_subject && *eptr == 0x0a) eptr++; never evaluated: eptr < md->end_subject never evaluated: *eptr == 0x0a | 0 |
3680 | break; | 0 |
3681 | | - |
3682 | case 0x000a: | - |
3683 | break; | 0 |
3684 | | - |
3685 | case 0x000b: | - |
3686 | case 0x000c: | - |
3687 | case 0x0085: | - |
3688 | | - |
3689 | case 0x2028: | - |
3690 | case 0x2029: | - |
3691 | | - |
3692 | if (md->bsr_anycrlf) return 0; never evaluated: md->bsr_anycrlf never executed: return 0; | 0 |
3693 | break; | 0 |
3694 | } | - |
3695 | } | 0 |
3696 | break; | 0 |
3697 | | - |
3698 | case OP_NOT_HSPACE: | - |
3699 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3700 | { | - |
3701 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3702 | { | - |
3703 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3704 | return 0; never executed: return 0; | 0 |
3705 | } | - |
3706 | switch(*eptr++) | - |
3707 | { | - |
3708 | default: break; | 0 |
3709 | case 0x09: | - |
3710 | case 0x20: | - |
3711 | case 0xa0: | - |
3712 | | - |
3713 | case 0x1680: | - |
3714 | case 0x180e: | - |
3715 | case 0x2000: | - |
3716 | case 0x2001: | - |
3717 | case 0x2002: | - |
3718 | case 0x2003: | - |
3719 | case 0x2004: | - |
3720 | case 0x2005: | - |
3721 | case 0x2006: | - |
3722 | case 0x2007: | - |
3723 | case 0x2008: | - |
3724 | case 0x2009: | - |
3725 | case 0x200A: | - |
3726 | case 0x202f: | - |
3727 | case 0x205f: | - |
3728 | case 0x3000: | - |
3729 | | - |
3730 | return 0; never executed: return 0; | 0 |
3731 | } | - |
3732 | } | 0 |
3733 | break; | 0 |
3734 | | - |
3735 | case OP_HSPACE: | - |
3736 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3737 | { | - |
3738 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3739 | { | - |
3740 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3741 | return 0; never executed: return 0; | 0 |
3742 | } | - |
3743 | switch(*eptr++) | - |
3744 | { | - |
3745 | default: return 0; never executed: return 0; | 0 |
3746 | case 0x09: | - |
3747 | case 0x20: | - |
3748 | case 0xa0: | - |
3749 | | - |
3750 | case 0x1680: | - |
3751 | case 0x180e: | - |
3752 | case 0x2000: | - |
3753 | case 0x2001: | - |
3754 | case 0x2002: | - |
3755 | case 0x2003: | - |
3756 | case 0x2004: | - |
3757 | case 0x2005: | - |
3758 | case 0x2006: | - |
3759 | case 0x2007: | - |
3760 | case 0x2008: | - |
3761 | case 0x2009: | - |
3762 | case 0x200A: | - |
3763 | case 0x202f: | - |
3764 | case 0x205f: | - |
3765 | case 0x3000: | - |
3766 | | - |
3767 | break; | 0 |
3768 | } | - |
3769 | } | 0 |
3770 | break; | 0 |
3771 | | - |
3772 | case OP_NOT_VSPACE: | - |
3773 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3774 | { | - |
3775 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3776 | { | - |
3777 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3778 | return 0; never executed: return 0; | 0 |
3779 | } | - |
3780 | switch(*eptr++) | - |
3781 | { | - |
3782 | default: break; | 0 |
3783 | case 0x0a: | - |
3784 | case 0x0b: | - |
3785 | case 0x0c: | - |
3786 | case 0x0d: | - |
3787 | case 0x85: | - |
3788 | | - |
3789 | case 0x2028: | - |
3790 | case 0x2029: | - |
3791 | | - |
3792 | return 0; never executed: return 0; | 0 |
3793 | } | - |
3794 | } | 0 |
3795 | break; | 0 |
3796 | | - |
3797 | case OP_VSPACE: | - |
3798 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3799 | { | - |
3800 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3801 | { | - |
3802 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3803 | return 0; never executed: return 0; | 0 |
3804 | } | - |
3805 | switch(*eptr++) | - |
3806 | { | - |
3807 | default: return 0; never executed: return 0; | 0 |
3808 | case 0x0a: | - |
3809 | case 0x0b: | - |
3810 | case 0x0c: | - |
3811 | case 0x0d: | - |
3812 | case 0x85: | - |
3813 | | - |
3814 | case 0x2028: | - |
3815 | case 0x2029: | - |
3816 | | - |
3817 | break; | 0 |
3818 | } | - |
3819 | } | 0 |
3820 | break; | 0 |
3821 | | - |
3822 | case OP_NOT_DIGIT: | - |
3823 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3824 | { | - |
3825 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3826 | { | - |
3827 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3828 | return 0; never executed: return 0; | 0 |
3829 | } | - |
3830 | if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x04) != 0) never evaluated: ((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x04) != 0 | 0 |
3831 | return 0; never executed: return 0; | 0 |
3832 | eptr++; | - |
3833 | } | 0 |
3834 | break; | 0 |
3835 | | - |
3836 | case OP_DIGIT: | - |
3837 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3838 | { | - |
3839 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3840 | { | - |
3841 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr never executed: return (-12); | 0 |
3842 | return 0; never executed: return 0; | 0 |
3843 | } | - |
3844 | if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x04) == 0) never evaluated: !((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x04) == 0 | 0 |
3845 | return 0; never executed: return 0; | 0 |
3846 | eptr++; | - |
3847 | } | 0 |
3848 | break; | 0 |
3849 | | - |
3850 | case OP_NOT_WHITESPACE: | - |
3851 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3852 | { | - |
3853 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3854 | { | - |
3855 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
3856 | return 0; never executed: return 0; | 0 |
3857 | } | - |
3858 | if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x01) != 0) never evaluated: ((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x01) != 0 | 0 |
3859 | return 0; never executed: return 0; | 0 |
3860 | eptr++; | - |
3861 | } | 0 |
3862 | break; | 0 |
3863 | | - |
3864 | case OP_WHITESPACE: | - |
3865 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3866 | { | - |
3867 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3868 | { | - |
3869 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
3870 | return 0; never executed: return 0; | 0 |
3871 | } | - |
3872 | if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x01) == 0) never evaluated: !((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x01) == 0 | 0 |
3873 | return 0; never executed: return 0; | 0 |
3874 | eptr++; | - |
3875 | } | 0 |
3876 | break; | 0 |
3877 | | - |
3878 | case OP_NOT_WORDCHAR: | - |
3879 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3880 | { | - |
3881 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3882 | { | - |
3883 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
3884 | return 0; never executed: return 0; | 0 |
3885 | } | - |
3886 | if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x10) != 0) never evaluated: ((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x10) != 0 | 0 |
3887 | return 0; never executed: return 0; | 0 |
3888 | eptr++; | - |
3889 | } | 0 |
3890 | break; | 0 |
3891 | | - |
3892 | case OP_WORDCHAR: | - |
3893 | for (i = 1; i <= min; i++) never evaluated: i <= min | 0 |
3894 | { | - |
3895 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3896 | { | - |
3897 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
3898 | return 0; never executed: return 0; | 0 |
3899 | } | - |
3900 | if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x10) == 0) never evaluated: !((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x10) == 0 | 0 |
3901 | return 0; never executed: return 0; | 0 |
3902 | eptr++; | - |
3903 | } | 0 |
3904 | break; | 0 |
3905 | | - |
3906 | default: | - |
3907 | return (-14); never executed: return (-14); | 0 |
3908 | } | 0 |
3909 | } | - |
3910 | | - |
3911 | | - |
3912 | | - |
3913 | if (min == max) continue; executed: continue; Execution Count:6 evaluated: min == max yes Evaluation Count:6 | yes Evaluation Count:204 |
| 6-204 |
3914 | | - |
3915 | | - |
3916 | | - |
3917 | | - |
3918 | | - |
3919 | if (minimize) evaluated: minimize yes Evaluation Count:7 | yes Evaluation Count:197 |
| 7-197 |
3920 | { | - |
3921 | | - |
3922 | if (prop_type >= 0) partially evaluated: prop_type >= 0 no Evaluation Count:0 | yes Evaluation Count:7 |
| 0-7 |
3923 | { | - |
3924 | switch(prop_type) | - |
3925 | { | - |
3926 | case 0: | - |
3927 | for (i = min;; i++) | - |
3928 | { | - |
3929 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
3930 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
3931 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
3932 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3933 | { | - |
3934 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
3935 | return 0; never executed: return 0; | 0 |
3936 | } | - |
3937 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3938 | if (prop_fail_result) return 0; never executed: return 0; never evaluated: prop_fail_result | 0 |
3939 | } | 0 |
3940 | | - |
3941 | | - |
3942 | case 1: code before this statement never executed: case 1: | 0 |
3943 | for (i = min;; i++) | - |
3944 | { | - |
3945 | int chartype; | - |
3946 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
3947 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
3948 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
3949 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3950 | { | - |
3951 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
3952 | return 0; never executed: return 0; | 0 |
3953 | } | - |
3954 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3955 | chartype = (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype; | - |
3956 | if ((chartype == ucp_Lu || never evaluated: chartype == ucp_Lu | 0 |
3957 | chartype == ucp_Ll || never evaluated: chartype == ucp_Ll | 0 |
3958 | chartype == ucp_Lt) == prop_fail_result) never evaluated: (chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) == prop_fail_result never evaluated: chartype == ucp_Lt | 0 |
3959 | return 0; never executed: return 0; | 0 |
3960 | } | 0 |
3961 | | - |
3962 | | - |
3963 | case 2: code before this statement never executed: case 2: | 0 |
3964 | for (i = min;; i++) | - |
3965 | { | - |
3966 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
3967 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
3968 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
3969 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3970 | { | - |
3971 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
3972 | return 0; never executed: return 0; | 0 |
3973 | } | - |
3974 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3975 | if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result) never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result | 0 |
3976 | return 0; never executed: return 0; | 0 |
3977 | } | 0 |
3978 | | - |
3979 | | - |
3980 | case 3: code before this statement never executed: case 3: | 0 |
3981 | for (i = min;; i++) | - |
3982 | { | - |
3983 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
3984 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
3985 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
3986 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
3987 | { | - |
3988 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
3989 | return 0; never executed: return 0; | 0 |
3990 | } | - |
3991 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
3992 | if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result) never evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result | 0 |
3993 | return 0; never executed: return 0; | 0 |
3994 | } | 0 |
3995 | | - |
3996 | | - |
3997 | case 4: code before this statement never executed: case 4: | 0 |
3998 | for (i = min;; i++) | - |
3999 | { | - |
4000 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4001 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
4002 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
4003 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4004 | { | - |
4005 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4006 | return 0; never executed: return 0; | 0 |
4007 | } | - |
4008 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4009 | if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result) never evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result | 0 |
4010 | return 0; never executed: return 0; | 0 |
4011 | } | 0 |
4012 | | - |
4013 | | - |
4014 | case 5: code before this statement never executed: case 5: | 0 |
4015 | for (i = min;; i++) | - |
4016 | { | - |
4017 | int category; | - |
4018 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4019 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
4020 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
4021 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4022 | { | - |
4023 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4024 | return 0; never executed: return 0; | 0 |
4025 | } | - |
4026 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4027 | category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
4028 | if ((category == ucp_L || category == ucp_N) == prop_fail_result) never evaluated: (category == ucp_L || category == ucp_N) == prop_fail_result never evaluated: category == ucp_L never evaluated: category == ucp_N | 0 |
4029 | return 0; never executed: return 0; | 0 |
4030 | } | 0 |
4031 | | - |
4032 | | - |
4033 | case 6: code before this statement never executed: case 6: | 0 |
4034 | for (i = min;; i++) | - |
4035 | { | - |
4036 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4037 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
4038 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
4039 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4040 | { | - |
4041 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4042 | return 0; never executed: return 0; | 0 |
4043 | } | - |
4044 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4045 | if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z never evaluated: c == '\011' never evaluated: c == '\012' | 0 |
4046 | c == '\014' || c == '\015') never evaluated: c == '\014' never evaluated: c == '\015' | 0 |
4047 | == prop_fail_result) never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\014' || c == '\015') == prop_fail_result | 0 |
4048 | return 0; never executed: return 0; | 0 |
4049 | } | 0 |
4050 | | - |
4051 | | - |
4052 | case 7: code before this statement never executed: case 7: | 0 |
4053 | for (i = min;; i++) | - |
4054 | { | - |
4055 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4056 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
4057 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
4058 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4059 | { | - |
4060 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4061 | return 0; never executed: return 0; | 0 |
4062 | } | - |
4063 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4064 | if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z never evaluated: c == '\011' never evaluated: c == '\012' | 0 |
4065 | c == '\013' || c == '\014' || c == '\015') never evaluated: c == '\013' never evaluated: c == '\014' never evaluated: c == '\015' | 0 |
4066 | == prop_fail_result) never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\013' || c == '\014' || c == '\015') == prop_fail_result | 0 |
4067 | return 0; never executed: return 0; | 0 |
4068 | } | 0 |
4069 | | - |
4070 | | - |
4071 | case 8: code before this statement never executed: case 8: | 0 |
4072 | for (i = min;; i++) | - |
4073 | { | - |
4074 | int category; | - |
4075 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4076 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
4077 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
4078 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4079 | { | - |
4080 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4081 | return 0; never executed: return 0; | 0 |
4082 | } | - |
4083 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4084 | category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
4085 | if ((category == ucp_L || never evaluated: category == ucp_L | 0 |
4086 | category == ucp_N || never evaluated: category == ucp_N | 0 |
4087 | c == '\137') never evaluated: c == '\137' | 0 |
4088 | == prop_fail_result) never evaluated: (category == ucp_L || category == ucp_N || c == '\137') == prop_fail_result | 0 |
4089 | return 0; never executed: return 0; | 0 |
4090 | } | 0 |
4091 | | - |
4092 | | - |
4093 | | - |
4094 | | - |
4095 | default: | - |
4096 | return (-14); never executed: return (-14); | 0 |
4097 | } | - |
4098 | } | 0 |
4099 | | - |
4100 | | - |
4101 | | - |
4102 | | - |
4103 | else if (ctype == OP_EXTUNI) partially evaluated: ctype == OP_EXTUNI no Evaluation Count:0 | yes Evaluation Count:7 |
| 0-7 |
4104 | { | - |
4105 | for (i = min;; i++) | - |
4106 | { | - |
4107 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4108 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
4109 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
4110 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4111 | { | - |
4112 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4113 | return 0; never executed: return 0; | 0 |
4114 | } | - |
4115 | c = *eptr++; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4116 | if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M) return 0; never executed: return 0; never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M | 0 |
4117 | while (eptr < md->end_subject) never evaluated: eptr < md->end_subject | 0 |
4118 | { | - |
4119 | int len = 1; | - |
4120 | if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; } never executed: c = *eptr; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4121 | if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break; never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M | 0 |
4122 | eptr += len; | - |
4123 | } | 0 |
4124 | } | 0 |
4125 | } | 0 |
4126 | else | - |
4127 | | - |
4128 | | - |
4129 | | - |
4130 | if (utf) partially evaluated: utf yes Evaluation Count:7 | no Evaluation Count:0 |
| 0-7 |
4131 | { | - |
4132 | for (i = min;; i++) | - |
4133 | { | - |
4134 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4135 | if (rrc != 0) return rrc; executed: return rrc; Execution Count:7 evaluated: rrc != 0 yes Evaluation Count:7 | yes Evaluation Count:2 |
| 2-7 |
4136 | if (i >= max) return 0; never executed: return 0; partially evaluated: i >= max no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
4137 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
4138 | { | - |
4139 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4140 | return 0; never executed: return 0; | 0 |
4141 | } | - |
4142 | if (ctype == OP_ANY && ((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) partially evaluated: ctype == OP_ANY yes Evaluation Count:2 | no Evaluation Count:0 |
partially evaluated: (md->nltype != 0) no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
4143 | return 0; never executed: return 0; | 0 |
4144 | c = *eptr++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*eptr++ & 0x3ff)) + 0x10000; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
4145 | switch(ctype) | - |
4146 | { | - |
4147 | case OP_ANY: | - |
4148 | case OP_ALLANY: | - |
4149 | case OP_ANYBYTE: | - |
4150 | break; executed: break; Execution Count:2 | 2 |
4151 | | - |
4152 | case OP_ANYNL: | - |
4153 | switch(c) | - |
4154 | { | - |
4155 | default: return 0; never executed: return 0; | 0 |
4156 | case 0x000d: | - |
4157 | if (eptr < md->end_subject && *eptr == 0x0a) eptr++; never evaluated: eptr < md->end_subject never evaluated: *eptr == 0x0a | 0 |
4158 | break; | 0 |
4159 | case 0x000a: | - |
4160 | break; | 0 |
4161 | | - |
4162 | case 0x000b: | - |
4163 | case 0x000c: | - |
4164 | case 0x0085: | - |
4165 | case 0x2028: | - |
4166 | case 0x2029: | - |
4167 | if (md->bsr_anycrlf) return 0; never executed: return 0; never evaluated: md->bsr_anycrlf | 0 |
4168 | break; | 0 |
4169 | } | - |
4170 | break; | 0 |
4171 | | - |
4172 | case OP_NOT_HSPACE: | - |
4173 | switch(c) | - |
4174 | { | - |
4175 | default: break; | 0 |
4176 | case 0x09: | - |
4177 | case 0x20: | - |
4178 | case 0xa0: | - |
4179 | case 0x1680: | - |
4180 | case 0x180e: | - |
4181 | case 0x2000: | - |
4182 | case 0x2001: | - |
4183 | case 0x2002: | - |
4184 | case 0x2003: | - |
4185 | case 0x2004: | - |
4186 | case 0x2005: | - |
4187 | case 0x2006: | - |
4188 | case 0x2007: | - |
4189 | case 0x2008: | - |
4190 | case 0x2009: | - |
4191 | case 0x200A: | - |
4192 | case 0x202f: | - |
4193 | case 0x205f: | - |
4194 | case 0x3000: | - |
4195 | return 0; never executed: return 0; | 0 |
4196 | } | - |
4197 | break; | 0 |
4198 | | - |
4199 | case OP_HSPACE: | - |
4200 | switch(c) | - |
4201 | { | - |
4202 | default: return 0; never executed: return 0; | 0 |
4203 | case 0x09: | - |
4204 | case 0x20: | - |
4205 | case 0xa0: | - |
4206 | case 0x1680: | - |
4207 | case 0x180e: | - |
4208 | case 0x2000: | - |
4209 | case 0x2001: | - |
4210 | case 0x2002: | - |
4211 | case 0x2003: | - |
4212 | case 0x2004: | - |
4213 | case 0x2005: | - |
4214 | case 0x2006: | - |
4215 | case 0x2007: | - |
4216 | case 0x2008: | - |
4217 | case 0x2009: | - |
4218 | case 0x200A: | - |
4219 | case 0x202f: | - |
4220 | case 0x205f: | - |
4221 | case 0x3000: | - |
4222 | break; | 0 |
4223 | } | - |
4224 | break; | 0 |
4225 | | - |
4226 | case OP_NOT_VSPACE: | - |
4227 | switch(c) | - |
4228 | { | - |
4229 | default: break; | 0 |
4230 | case 0x0a: | - |
4231 | case 0x0b: | - |
4232 | case 0x0c: | - |
4233 | case 0x0d: | - |
4234 | case 0x85: | - |
4235 | case 0x2028: | - |
4236 | case 0x2029: | - |
4237 | return 0; never executed: return 0; | 0 |
4238 | } | - |
4239 | break; | 0 |
4240 | | - |
4241 | case OP_VSPACE: | - |
4242 | switch(c) | - |
4243 | { | - |
4244 | default: return 0; never executed: return 0; | 0 |
4245 | case 0x0a: | - |
4246 | case 0x0b: | - |
4247 | case 0x0c: | - |
4248 | case 0x0d: | - |
4249 | case 0x85: | - |
4250 | case 0x2028: | - |
4251 | case 0x2029: | - |
4252 | break; | 0 |
4253 | } | - |
4254 | break; | 0 |
4255 | | - |
4256 | case OP_NOT_DIGIT: | - |
4257 | if (c < 256 && (md->ctypes[c] & 0x04) != 0) never evaluated: (md->ctypes[c] & 0x04) != 0 | 0 |
4258 | return 0; never executed: return 0; | 0 |
4259 | break; | 0 |
4260 | | - |
4261 | case OP_DIGIT: | - |
4262 | if (c >= 256 || (md->ctypes[c] & 0x04) == 0) never evaluated: c >= 256 never evaluated: (md->ctypes[c] & 0x04) == 0 | 0 |
4263 | return 0; never executed: return 0; | 0 |
4264 | break; | 0 |
4265 | | - |
4266 | case OP_NOT_WHITESPACE: | - |
4267 | if (c < 256 && (md->ctypes[c] & 0x01) != 0) never evaluated: (md->ctypes[c] & 0x01) != 0 | 0 |
4268 | return 0; never executed: return 0; | 0 |
4269 | break; | 0 |
4270 | | - |
4271 | case OP_WHITESPACE: | - |
4272 | if (c >= 256 || (md->ctypes[c] & 0x01) == 0) never evaluated: c >= 256 never evaluated: (md->ctypes[c] & 0x01) == 0 | 0 |
4273 | return 0; never executed: return 0; | 0 |
4274 | break; | 0 |
4275 | | - |
4276 | case OP_NOT_WORDCHAR: | - |
4277 | if (c < 256 && (md->ctypes[c] & 0x10) != 0) never evaluated: (md->ctypes[c] & 0x10) != 0 | 0 |
4278 | return 0; never executed: return 0; | 0 |
4279 | break; | 0 |
4280 | | - |
4281 | case OP_WORDCHAR: | - |
4282 | if (c >= 256 || (md->ctypes[c] & 0x10) == 0) never evaluated: c >= 256 never evaluated: (md->ctypes[c] & 0x10) == 0 | 0 |
4283 | return 0; never executed: return 0; | 0 |
4284 | break; | 0 |
4285 | | - |
4286 | default: | - |
4287 | return (-14); never executed: return (-14); | 0 |
4288 | } | - |
4289 | } executed: } Execution Count:2 | 2 |
4290 | } | 0 |
4291 | else | - |
4292 | | - |
4293 | | - |
4294 | { | - |
4295 | for (i = min;; i++) | - |
4296 | { | - |
4297 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4298 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
4299 | if (i >= max) return 0; never executed: return 0; never evaluated: i >= max | 0 |
4300 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4301 | { | - |
4302 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4303 | return 0; never executed: return 0; | 0 |
4304 | } | - |
4305 | if (ctype == OP_ANY && ((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) never evaluated: ctype == OP_ANY never evaluated: (md->nltype != 0) | 0 |
4306 | return 0; never executed: return 0; | 0 |
4307 | c = *eptr++; | - |
4308 | switch(ctype) | - |
4309 | { | - |
4310 | case OP_ANY: | - |
4311 | case OP_ALLANY: | - |
4312 | case OP_ANYBYTE: | - |
4313 | break; | 0 |
4314 | | - |
4315 | case OP_ANYNL: | - |
4316 | switch(c) | - |
4317 | { | - |
4318 | default: return 0; never executed: return 0; | 0 |
4319 | case 0x000d: | - |
4320 | if (eptr < md->end_subject && *eptr == 0x0a) eptr++; never evaluated: eptr < md->end_subject never evaluated: *eptr == 0x0a | 0 |
4321 | break; | 0 |
4322 | | - |
4323 | case 0x000a: | - |
4324 | break; | 0 |
4325 | | - |
4326 | case 0x000b: | - |
4327 | case 0x000c: | - |
4328 | case 0x0085: | - |
4329 | | - |
4330 | case 0x2028: | - |
4331 | case 0x2029: | - |
4332 | | - |
4333 | if (md->bsr_anycrlf) return 0; never executed: return 0; never evaluated: md->bsr_anycrlf | 0 |
4334 | break; | 0 |
4335 | } | - |
4336 | break; | 0 |
4337 | | - |
4338 | case OP_NOT_HSPACE: | - |
4339 | switch(c) | - |
4340 | { | - |
4341 | default: break; | 0 |
4342 | case 0x09: | - |
4343 | case 0x20: | - |
4344 | case 0xa0: | - |
4345 | | - |
4346 | case 0x1680: | - |
4347 | case 0x180e: | - |
4348 | case 0x2000: | - |
4349 | case 0x2001: | - |
4350 | case 0x2002: | - |
4351 | case 0x2003: | - |
4352 | case 0x2004: | - |
4353 | case 0x2005: | - |
4354 | case 0x2006: | - |
4355 | case 0x2007: | - |
4356 | case 0x2008: | - |
4357 | case 0x2009: | - |
4358 | case 0x200A: | - |
4359 | case 0x202f: | - |
4360 | case 0x205f: | - |
4361 | case 0x3000: | - |
4362 | | - |
4363 | return 0; never executed: return 0; | 0 |
4364 | } | - |
4365 | break; | 0 |
4366 | | - |
4367 | case OP_HSPACE: | - |
4368 | switch(c) | - |
4369 | { | - |
4370 | default: return 0; never executed: return 0; | 0 |
4371 | case 0x09: | - |
4372 | case 0x20: | - |
4373 | case 0xa0: | - |
4374 | | - |
4375 | case 0x1680: | - |
4376 | case 0x180e: | - |
4377 | case 0x2000: | - |
4378 | case 0x2001: | - |
4379 | case 0x2002: | - |
4380 | case 0x2003: | - |
4381 | case 0x2004: | - |
4382 | case 0x2005: | - |
4383 | case 0x2006: | - |
4384 | case 0x2007: | - |
4385 | case 0x2008: | - |
4386 | case 0x2009: | - |
4387 | case 0x200A: | - |
4388 | case 0x202f: | - |
4389 | case 0x205f: | - |
4390 | case 0x3000: | - |
4391 | | - |
4392 | break; | 0 |
4393 | } | - |
4394 | break; | 0 |
4395 | | - |
4396 | case OP_NOT_VSPACE: | - |
4397 | switch(c) | - |
4398 | { | - |
4399 | default: break; | 0 |
4400 | case 0x0a: | - |
4401 | case 0x0b: | - |
4402 | case 0x0c: | - |
4403 | case 0x0d: | - |
4404 | case 0x85: | - |
4405 | | - |
4406 | case 0x2028: | - |
4407 | case 0x2029: | - |
4408 | | - |
4409 | return 0; never executed: return 0; | 0 |
4410 | } | - |
4411 | break; | 0 |
4412 | | - |
4413 | case OP_VSPACE: | - |
4414 | switch(c) | - |
4415 | { | - |
4416 | default: return 0; never executed: return 0; | 0 |
4417 | case 0x0a: | - |
4418 | case 0x0b: | - |
4419 | case 0x0c: | - |
4420 | case 0x0d: | - |
4421 | case 0x85: | - |
4422 | | - |
4423 | case 0x2028: | - |
4424 | case 0x2029: | - |
4425 | | - |
4426 | break; | 0 |
4427 | } | - |
4428 | break; | 0 |
4429 | | - |
4430 | case OP_NOT_DIGIT: | - |
4431 | if (((c) <= 255u) && (md->ctypes[c] & 0x04) != 0) return 0; never executed: return 0; never evaluated: ((c) <= 255u) never evaluated: (md->ctypes[c] & 0x04) != 0 | 0 |
4432 | break; | 0 |
4433 | | - |
4434 | case OP_DIGIT: | - |
4435 | if (!((c) <= 255u) || (md->ctypes[c] & 0x04) == 0) return 0; never executed: return 0; never evaluated: !((c) <= 255u) never evaluated: (md->ctypes[c] & 0x04) == 0 | 0 |
4436 | break; | 0 |
4437 | | - |
4438 | case OP_NOT_WHITESPACE: | - |
4439 | if (((c) <= 255u) && (md->ctypes[c] & 0x01) != 0) return 0; never executed: return 0; never evaluated: ((c) <= 255u) never evaluated: (md->ctypes[c] & 0x01) != 0 | 0 |
4440 | break; | 0 |
4441 | | - |
4442 | case OP_WHITESPACE: | - |
4443 | if (!((c) <= 255u) || (md->ctypes[c] & 0x01) == 0) return 0; never executed: return 0; never evaluated: !((c) <= 255u) never evaluated: (md->ctypes[c] & 0x01) == 0 | 0 |
4444 | break; | 0 |
4445 | | - |
4446 | case OP_NOT_WORDCHAR: | - |
4447 | if (((c) <= 255u) && (md->ctypes[c] & 0x10) != 0) return 0; never executed: return 0; never evaluated: ((c) <= 255u) never evaluated: (md->ctypes[c] & 0x10) != 0 | 0 |
4448 | break; | 0 |
4449 | | - |
4450 | case OP_WORDCHAR: | - |
4451 | if (!((c) <= 255u) || (md->ctypes[c] & 0x10) == 0) return 0; never executed: return 0; never evaluated: !((c) <= 255u) never evaluated: (md->ctypes[c] & 0x10) == 0 | 0 |
4452 | break; | 0 |
4453 | | - |
4454 | default: | - |
4455 | return (-14); never executed: return (-14); | 0 |
4456 | } | - |
4457 | } | 0 |
4458 | } | 0 |
4459 | | - |
4460 | } | - |
4461 | | - |
4462 | | - |
4463 | | - |
4464 | | - |
4465 | | - |
4466 | else | - |
4467 | { | - |
4468 | pp = eptr; | - |
4469 | | - |
4470 | | - |
4471 | if (prop_type >= 0) evaluated: prop_type >= 0 yes Evaluation Count:2 | yes Evaluation Count:195 |
| 2-195 |
4472 | { | - |
4473 | switch(prop_type) | - |
4474 | { | - |
4475 | case 0: | - |
4476 | for (i = min; i < max; i++) | 0 |
4477 | { | - |
4478 | int len = 1; | - |
4479 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4480 | { | - |
4481 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4482 | break; | 0 |
4483 | } | - |
4484 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4485 | if (prop_fail_result) break; never evaluated: prop_fail_result | 0 |
4486 | eptr+= len; | - |
4487 | } | 0 |
4488 | break; | 0 |
4489 | | - |
4490 | case 1: | - |
4491 | for (i = min; i < max; i++) | 0 |
4492 | { | - |
4493 | int chartype; | - |
4494 | int len = 1; | - |
4495 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4496 | { | - |
4497 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4498 | break; | 0 |
4499 | } | - |
4500 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4501 | chartype = (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype; | - |
4502 | if ((chartype == ucp_Lu || never evaluated: chartype == ucp_Lu | 0 |
4503 | chartype == ucp_Ll || never evaluated: chartype == ucp_Ll | 0 |
4504 | chartype == ucp_Lt) == prop_fail_result) never evaluated: (chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) == prop_fail_result never evaluated: chartype == ucp_Lt | 0 |
4505 | break; | 0 |
4506 | eptr+= len; | - |
4507 | } | 0 |
4508 | break; | 0 |
4509 | | - |
4510 | case 2: | - |
4511 | for (i = min; i < max; i++) | 0 |
4512 | { | - |
4513 | int len = 1; | - |
4514 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4515 | { | - |
4516 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4517 | break; | 0 |
4518 | } | - |
4519 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4520 | if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result) break; never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == prop_value) == prop_fail_result | 0 |
4521 | eptr+= len; | - |
4522 | } | 0 |
4523 | break; | 0 |
4524 | | - |
4525 | case 3: | - |
4526 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:5 | no Evaluation Count:0 |
| 0-5 |
4527 | { | - |
4528 | int len = 1; | - |
4529 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:1 | yes Evaluation Count:4 |
| 1-4 |
4530 | { | - |
4531 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:1 |
never evaluated: eptr > md->start_used_ptr | 0-1 |
4532 | break; executed: break; Execution Count:1 | 1 |
4533 | } | - |
4534 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; executed: } Execution Count:1 partially evaluated: utf yes Evaluation Count:4 | no Evaluation Count:0 |
evaluated: (c & 0xfc00) == 0xd800 yes Evaluation Count:1 | yes Evaluation Count:3 |
| 0-4 |
4535 | if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result) break; partially evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype == prop_value) == prop_fail_result no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
4536 | eptr+= len; | - |
4537 | } executed: } Execution Count:4 | 4 |
4538 | break; executed: break; Execution Count:1 | 1 |
4539 | | - |
4540 | case 4: | - |
4541 | for (i = min; i < max; i++) | 0 |
4542 | { | - |
4543 | int len = 1; | - |
4544 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4545 | { | - |
4546 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4547 | break; | 0 |
4548 | } | - |
4549 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4550 | if (((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result) break; never evaluated: ((_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->script == prop_value) == prop_fail_result | 0 |
4551 | eptr+= len; | - |
4552 | } | 0 |
4553 | break; | 0 |
4554 | | - |
4555 | case 5: | - |
4556 | for (i = min; i < max; i++) | 0 |
4557 | { | - |
4558 | int category; | - |
4559 | int len = 1; | - |
4560 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4561 | { | - |
4562 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4563 | break; | 0 |
4564 | } | - |
4565 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4566 | category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
4567 | if ((category == ucp_L || category == ucp_N) == prop_fail_result) never evaluated: (category == ucp_L || category == ucp_N) == prop_fail_result never evaluated: category == ucp_L never evaluated: category == ucp_N | 0 |
4568 | break; | 0 |
4569 | eptr+= len; | - |
4570 | } | 0 |
4571 | break; | 0 |
4572 | | - |
4573 | case 6: | - |
4574 | for (i = min; i < max; i++) | 0 |
4575 | { | - |
4576 | int len = 1; | - |
4577 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4578 | { | - |
4579 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4580 | break; | 0 |
4581 | } | - |
4582 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4583 | if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z never evaluated: c == '\011' never evaluated: c == '\012' | 0 |
4584 | c == '\014' || c == '\015') never evaluated: c == '\014' never evaluated: c == '\015' | 0 |
4585 | == prop_fail_result) never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\014' || c == '\015') == prop_fail_result | 0 |
4586 | break; | 0 |
4587 | eptr+= len; | - |
4588 | } | 0 |
4589 | break; | 0 |
4590 | | - |
4591 | case 7: | - |
4592 | for (i = min; i < max; i++) | 0 |
4593 | { | - |
4594 | int len = 1; | - |
4595 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4596 | { | - |
4597 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4598 | break; | 0 |
4599 | } | - |
4600 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4601 | if ((_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z never evaluated: c == '\011' never evaluated: c == '\012' | 0 |
4602 | c == '\013' || c == '\014' || c == '\015') never evaluated: c == '\013' never evaluated: c == '\014' never evaluated: c == '\015' | 0 |
4603 | == prop_fail_result) never evaluated: (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_Z || c == '\011' || c == '\012' || c == '\013' || c == '\014' || c == '\015') == prop_fail_result | 0 |
4604 | break; | 0 |
4605 | eptr+= len; | - |
4606 | } | 0 |
4607 | break; | 0 |
4608 | | - |
4609 | case 8: | - |
4610 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:5 | no Evaluation Count:0 |
| 0-5 |
4611 | { | - |
4612 | int category; | - |
4613 | int len = 1; | - |
4614 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:5 |
| 0-5 |
4615 | { | - |
4616 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4617 | break; | 0 |
4618 | } | - |
4619 | c = *eptr; if (utf && (c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; partially evaluated: utf yes Evaluation Count:5 | no Evaluation Count:0 |
partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:5 |
| 0-5 |
4620 | category = _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype]; | - |
4621 | if ((category == ucp_L || category == ucp_N || evaluated: category == ucp_L yes Evaluation Count:4 | yes Evaluation Count:1 |
partially evaluated: category == ucp_N no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-4 |
4622 | c == '\137') == prop_fail_result) evaluated: (category == ucp_L || category == ucp_N || c == '\137') == prop_fail_result yes Evaluation Count:1 | yes Evaluation Count:4 |
partially evaluated: c == '\137' no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-4 |
4623 | break; executed: break; Execution Count:1 | 1 |
4624 | eptr+= len; | - |
4625 | } executed: } Execution Count:4 | 4 |
4626 | break; executed: break; Execution Count:1 | 1 |
4627 | | - |
4628 | default: | - |
4629 | return (-14); never executed: return (-14); | 0 |
4630 | } | - |
4631 | | - |
4632 | | - |
4633 | | - |
4634 | if (possessive) continue; never executed: continue; partially evaluated: possessive no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
4635 | for(;;) | - |
4636 | { | - |
4637 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4638 | if (rrc != 0) return rrc; executed: return rrc; Execution Count:2 partially evaluated: rrc != 0 yes Evaluation Count:2 | no Evaluation Count:0 |
| 0-2 |
4639 | if (eptr-- == pp) break; never evaluated: eptr-- == pp | 0 |
4640 | if (utf) if ((*eptr & 0xfc00) == 0xdc00) eptr--; never evaluated: (*eptr & 0xfc00) == 0xdc00 | 0 |
4641 | } | 0 |
4642 | } | 0 |
4643 | | - |
4644 | | - |
4645 | | - |
4646 | | - |
4647 | else if (ctype == OP_EXTUNI) partially evaluated: ctype == OP_EXTUNI no Evaluation Count:0 | yes Evaluation Count:195 |
| 0-195 |
4648 | { | - |
4649 | for (i = min; i < max; i++) | 0 |
4650 | { | - |
4651 | int len = 1; | - |
4652 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4653 | { | - |
4654 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4655 | break; | 0 |
4656 | } | - |
4657 | if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; } never executed: c = *eptr; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4658 | if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M) break; never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] == ucp_M | 0 |
4659 | eptr += len; | - |
4660 | while (eptr < md->end_subject) never evaluated: eptr < md->end_subject | 0 |
4661 | { | - |
4662 | len = 1; | - |
4663 | if (!utf) c = *eptr; else { c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; } never executed: c = *eptr; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4664 | if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break; never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M | 0 |
4665 | eptr += len; | - |
4666 | } | 0 |
4667 | } | 0 |
4668 | | - |
4669 | | - |
4670 | | - |
4671 | if (possessive) continue; never executed: continue; never evaluated: possessive | 0 |
4672 | | - |
4673 | for(;;) | - |
4674 | { | - |
4675 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4676 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
4677 | if (eptr-- == pp) break; never evaluated: eptr-- == pp | 0 |
4678 | for (;;) | - |
4679 | { | - |
4680 | if (!utf) c = *eptr; else never executed: c = *eptr; | 0 |
4681 | { | - |
4682 | if ((*eptr & 0xfc00) == 0xdc00) eptr--; never evaluated: (*eptr & 0xfc00) == 0xdc00 | 0 |
4683 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4684 | } | 0 |
4685 | if (_pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M) break; never evaluated: _pcre16_ucp_gentype[(_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->chartype] != ucp_M | 0 |
4686 | eptr--; | - |
4687 | } | 0 |
4688 | } | 0 |
4689 | } | 0 |
4690 | | - |
4691 | else | - |
4692 | | - |
4693 | | - |
4694 | | - |
4695 | if (utf) partially evaluated: utf yes Evaluation Count:195 | no Evaluation Count:0 |
| 0-195 |
4696 | { | - |
4697 | switch(ctype) | - |
4698 | { | - |
4699 | case OP_ANY: | - |
4700 | if (max < 2147483647) partially evaluated: max < 2147483647 no Evaluation Count:0 | yes Evaluation Count:115 |
| 0-115 |
4701 | { | - |
4702 | for (i = min; i < max; i++) | 0 |
4703 | { | - |
4704 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4705 | { | - |
4706 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4707 | break; | 0 |
4708 | } | - |
4709 | if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) break; never evaluated: (md->nltype != 0) | 0 |
4710 | eptr++; | - |
4711 | if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++; never evaluated: (eptr < md->end_subject) never evaluated: ((*eptr) & 0xfc00) == 0xdc00 | 0 |
4712 | } | 0 |
4713 | } | 0 |
4714 | | - |
4715 | | - |
4716 | | - |
4717 | else | - |
4718 | { | - |
4719 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:337 | no Evaluation Count:0 |
| 0-337 |
4720 | { | - |
4721 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:57 | yes Evaluation Count:280 |
| 57-280 |
4722 | { | - |
4723 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:57 |
never evaluated: eptr > md->start_used_ptr | 0-57 |
4724 | break; executed: break; Execution Count:57 | 57 |
4725 | } | - |
4726 | if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) break; executed: break; Execution Count:58 evaluated: (md->nltype != 0) yes Evaluation Count:29 | yes Evaluation Count:251 |
| 29-251 |
4727 | eptr++; | - |
4728 | if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++; evaluated: (eptr < md->end_subject) yes Evaluation Count:182 | yes Evaluation Count:40 |
partially evaluated: ((*eptr) & 0xfc00) == 0xdc00 no Evaluation Count:0 | yes Evaluation Count:182 |
| 0-182 |
4729 | } executed: } Execution Count:222 | 222 |
4730 | } executed: } Execution Count:115 | 115 |
4731 | break; executed: break; Execution Count:115 | 115 |
4732 | | - |
4733 | case OP_ALLANY: | - |
4734 | if (max < 2147483647) partially evaluated: max < 2147483647 no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
4735 | { | - |
4736 | for (i = min; i < max; i++) | 0 |
4737 | { | - |
4738 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4739 | { | - |
4740 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4741 | break; | 0 |
4742 | } | - |
4743 | eptr++; | - |
4744 | if ((eptr < md->end_subject) && ((*eptr) & 0xfc00) == 0xdc00) eptr++; never evaluated: (eptr < md->end_subject) never evaluated: ((*eptr) & 0xfc00) == 0xdc00 | 0 |
4745 | } | 0 |
4746 | } | 0 |
4747 | else | - |
4748 | { | - |
4749 | eptr = md->end_subject; | - |
4750 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:1 |
never evaluated: eptr > md->start_used_ptr | 0-1 |
4751 | } executed: } Execution Count:1 | 1 |
4752 | break; executed: break; Execution Count:1 | 1 |
4753 | | - |
4754 | | - |
4755 | | - |
4756 | case OP_ANYBYTE: | - |
4757 | c = max - min; | - |
4758 | if (c > (unsigned int)(md->end_subject - eptr)) never evaluated: c > (unsigned int)(md->end_subject - eptr) | 0 |
4759 | { | - |
4760 | eptr = md->end_subject; | - |
4761 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4762 | } | 0 |
4763 | else eptr += c; never executed: eptr += c; | 0 |
4764 | break; | 0 |
4765 | | - |
4766 | case OP_ANYNL: | - |
4767 | for (i = min; i < max; i++) | 0 |
4768 | { | - |
4769 | int len = 1; | - |
4770 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4771 | { | - |
4772 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4773 | break; | 0 |
4774 | } | - |
4775 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4776 | if (c == 0x000d) never evaluated: c == 0x000d | 0 |
4777 | { | - |
4778 | if (++eptr >= md->end_subject) break; never evaluated: ++eptr >= md->end_subject | 0 |
4779 | if (*eptr == 0x000a) eptr++; never evaluated: *eptr == 0x000a | 0 |
4780 | } | 0 |
4781 | else | - |
4782 | { | - |
4783 | if (c != 0x000a && never evaluated: c != 0x000a | 0 |
4784 | (md->bsr_anycrlf || never evaluated: md->bsr_anycrlf | 0 |
4785 | (c != 0x000b && c != 0x000c && never evaluated: c != 0x000b never evaluated: c != 0x000c | 0 |
4786 | c != 0x0085 && c != 0x2028 && c != 0x2029))) never evaluated: c != 0x0085 never evaluated: c != 0x2028 never evaluated: c != 0x2029 | 0 |
4787 | break; | 0 |
4788 | eptr += len; | - |
4789 | } | 0 |
4790 | } | - |
4791 | break; | 0 |
4792 | | - |
4793 | case OP_NOT_HSPACE: | - |
4794 | case OP_HSPACE: | - |
4795 | for (i = min; i < max; i++) | 0 |
4796 | { | - |
4797 | BOOL gotspace; | - |
4798 | int len = 1; | - |
4799 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4800 | { | - |
4801 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4802 | break; | 0 |
4803 | } | - |
4804 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4805 | switch(c) | - |
4806 | { | - |
4807 | default: gotspace = 0; break; | 0 |
4808 | case 0x09: | - |
4809 | case 0x20: | - |
4810 | case 0xa0: | - |
4811 | case 0x1680: | - |
4812 | case 0x180e: | - |
4813 | case 0x2000: | - |
4814 | case 0x2001: | - |
4815 | case 0x2002: | - |
4816 | case 0x2003: | - |
4817 | case 0x2004: | - |
4818 | case 0x2005: | - |
4819 | case 0x2006: | - |
4820 | case 0x2007: | - |
4821 | case 0x2008: | - |
4822 | case 0x2009: | - |
4823 | case 0x200A: | - |
4824 | case 0x202f: | - |
4825 | case 0x205f: | - |
4826 | case 0x3000: | - |
4827 | gotspace = 1; | - |
4828 | break; | 0 |
4829 | } | - |
4830 | if (gotspace == (ctype == OP_NOT_HSPACE)) break; never evaluated: gotspace == (ctype == OP_NOT_HSPACE) | 0 |
4831 | eptr += len; | - |
4832 | } | 0 |
4833 | break; | 0 |
4834 | | - |
4835 | case OP_NOT_VSPACE: | - |
4836 | case OP_VSPACE: | - |
4837 | for (i = min; i < max; i++) | 0 |
4838 | { | - |
4839 | BOOL gotspace; | - |
4840 | int len = 1; | - |
4841 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4842 | { | - |
4843 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4844 | break; | 0 |
4845 | } | - |
4846 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4847 | switch(c) | - |
4848 | { | - |
4849 | default: gotspace = 0; break; | 0 |
4850 | case 0x0a: | - |
4851 | case 0x0b: | - |
4852 | case 0x0c: | - |
4853 | case 0x0d: | - |
4854 | case 0x85: | - |
4855 | case 0x2028: | - |
4856 | case 0x2029: | - |
4857 | gotspace = 1; | - |
4858 | break; | 0 |
4859 | } | - |
4860 | if (gotspace == (ctype == OP_NOT_VSPACE)) break; never evaluated: gotspace == (ctype == OP_NOT_VSPACE) | 0 |
4861 | eptr += len; | - |
4862 | } | 0 |
4863 | break; | 0 |
4864 | | - |
4865 | case OP_NOT_DIGIT: | - |
4866 | for (i = min; i < max; i++) | 0 |
4867 | { | - |
4868 | int len = 1; | - |
4869 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4870 | { | - |
4871 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4872 | break; | 0 |
4873 | } | - |
4874 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4875 | if (c < 256 && (md->ctypes[c] & 0x04) != 0) break; never evaluated: (md->ctypes[c] & 0x04) != 0 | 0 |
4876 | eptr+= len; | - |
4877 | } | 0 |
4878 | break; | 0 |
4879 | | - |
4880 | case OP_DIGIT: | - |
4881 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:26 | no Evaluation Count:0 |
| 0-26 |
4882 | { | - |
4883 | int len = 1; | - |
4884 | if (eptr >= md->end_subject) partially evaluated: eptr >= md->end_subject no Evaluation Count:0 | yes Evaluation Count:26 |
| 0-26 |
4885 | { | - |
4886 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4887 | break; | 0 |
4888 | } | - |
4889 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:26 |
| 0-26 |
4890 | if (c >= 256 ||(md->ctypes[c] & 0x04) == 0) break; executed: break; Execution Count:12 partially evaluated: c >= 256 no Evaluation Count:0 | yes Evaluation Count:26 |
evaluated: (md->ctypes[c] & 0x04) == 0 yes Evaluation Count:12 | yes Evaluation Count:14 |
| 0-26 |
4891 | eptr+= len; | - |
4892 | } executed: } Execution Count:14 | 14 |
4893 | break; executed: break; Execution Count:12 | 12 |
4894 | | - |
4895 | case OP_NOT_WHITESPACE: | - |
4896 | for (i = min; i < max; i++) | 0 |
4897 | { | - |
4898 | int len = 1; | - |
4899 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4900 | { | - |
4901 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4902 | break; | 0 |
4903 | } | - |
4904 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; never evaluated: (c & 0xfc00) == 0xd800 | 0 |
4905 | if (c < 256 && (md->ctypes[c] & 0x01) != 0) break; never evaluated: (md->ctypes[c] & 0x01) != 0 | 0 |
4906 | eptr+= len; | - |
4907 | } | 0 |
4908 | break; | 0 |
4909 | | - |
4910 | case OP_WHITESPACE: | - |
4911 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:25 | no Evaluation Count:0 |
| 0-25 |
4912 | { | - |
4913 | int len = 1; | - |
4914 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:1 | yes Evaluation Count:24 |
| 1-24 |
4915 | { | - |
4916 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:1 |
never evaluated: eptr > md->start_used_ptr | 0-1 |
4917 | break; executed: break; Execution Count:1 | 1 |
4918 | } | - |
4919 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:24 |
| 0-24 |
4920 | if (c >= 256 ||(md->ctypes[c] & 0x01) == 0) break; executed: break; Execution Count:17 partially evaluated: c >= 256 no Evaluation Count:0 | yes Evaluation Count:24 |
evaluated: (md->ctypes[c] & 0x01) == 0 yes Evaluation Count:17 | yes Evaluation Count:7 |
| 0-24 |
4921 | eptr+= len; | - |
4922 | } executed: } Execution Count:7 | 7 |
4923 | break; executed: break; Execution Count:18 | 18 |
4924 | | - |
4925 | case OP_NOT_WORDCHAR: | - |
4926 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:14 | no Evaluation Count:0 |
| 0-14 |
4927 | { | - |
4928 | int len = 1; | - |
4929 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:2 | yes Evaluation Count:12 |
| 2-12 |
4930 | { | - |
4931 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 partially evaluated: md->partial != 0 no Evaluation Count:0 | yes Evaluation Count:2 |
never evaluated: eptr > md->start_used_ptr | 0-2 |
4932 | break; executed: break; Execution Count:2 | 2 |
4933 | } | - |
4934 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:12 |
| 0-12 |
4935 | if (c < 256 && (md->ctypes[c] & 0x10) != 0) break; executed: break; Execution Count:10 partially evaluated: c < 256 yes Evaluation Count:12 | no Evaluation Count:0 |
evaluated: (md->ctypes[c] & 0x10) != 0 yes Evaluation Count:10 | yes Evaluation Count:2 |
| 0-12 |
4936 | eptr+= len; | - |
4937 | } executed: } Execution Count:2 | 2 |
4938 | break; executed: break; Execution Count:12 | 12 |
4939 | | - |
4940 | case OP_WORDCHAR: | - |
4941 | for (i = min; i < max; i++) partially evaluated: i < max yes Evaluation Count:137 | no Evaluation Count:0 |
| 0-137 |
4942 | { | - |
4943 | int len = 1; | - |
4944 | if (eptr >= md->end_subject) evaluated: eptr >= md->end_subject yes Evaluation Count:19 | yes Evaluation Count:118 |
| 19-118 |
4945 | { | - |
4946 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; executed: return (-12); Execution Count:2 executed: } Execution Count:2 evaluated: md->partial > 1 yes Evaluation Count:2 | yes Evaluation Count:2 |
evaluated: md->partial != 0 yes Evaluation Count:4 | yes Evaluation Count:15 |
partially evaluated: eptr > md->start_used_ptr yes Evaluation Count:4 | no Evaluation Count:0 |
| 0-15 |
4947 | break; executed: break; Execution Count:17 | 17 |
4948 | } | - |
4949 | c = *eptr; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (eptr[1] & 0x3ff)) + 0x10000; len++; };; partially evaluated: (c & 0xfc00) == 0xd800 no Evaluation Count:0 | yes Evaluation Count:118 |
| 0-118 |
4950 | if (c >= 256 || (md->ctypes[c] & 0x10) == 0) break; executed: break; Execution Count:18 partially evaluated: c >= 256 no Evaluation Count:0 | yes Evaluation Count:118 |
evaluated: (md->ctypes[c] & 0x10) == 0 yes Evaluation Count:18 | yes Evaluation Count:100 |
| 0-118 |
4951 | eptr+= len; | - |
4952 | } executed: } Execution Count:100 | 100 |
4953 | break; executed: break; Execution Count:35 | 35 |
4954 | | - |
4955 | default: | - |
4956 | return (-14); never executed: return (-14); | 0 |
4957 | } | - |
4958 | | - |
4959 | | - |
4960 | | - |
4961 | | - |
4962 | | - |
4963 | | - |
4964 | | - |
4965 | if (possessive) continue; executed: continue; Execution Count:3 evaluated: possessive yes Evaluation Count:3 | yes Evaluation Count:190 |
| 3-190 |
4966 | for(;;) | - |
4967 | { | - |
4968 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
4969 | if (rrc != 0) return rrc; executed: return rrc; Execution Count:139 evaluated: rrc != 0 yes Evaluation Count:139 | yes Evaluation Count:129 |
| 129-139 |
4970 | if (eptr-- == pp) break; executed: break; Execution Count:51 evaluated: eptr-- == pp yes Evaluation Count:51 | yes Evaluation Count:78 |
| 51-78 |
4971 | if ((*eptr & 0xfc00) == 0xdc00) eptr--; partially evaluated: (*eptr & 0xfc00) == 0xdc00 no Evaluation Count:0 | yes Evaluation Count:78 |
| 0-78 |
4972 | if (ctype == OP_ANYNL && eptr > pp && *eptr == '\n' && partially evaluated: ctype == OP_ANYNL no Evaluation Count:0 | yes Evaluation Count:78 |
never evaluated: eptr > pp never evaluated: *eptr == '\n' | 0-78 |
4973 | eptr[-1] == '\r') eptr--; never evaluated: eptr[-1] == '\r' | 0 |
4974 | } executed: } Execution Count:78 | 78 |
4975 | } executed: } Execution Count:51 | 51 |
4976 | else | - |
4977 | | - |
4978 | | - |
4979 | { | - |
4980 | switch(ctype) | - |
4981 | { | - |
4982 | case OP_ANY: | - |
4983 | for (i = min; i < max; i++) | 0 |
4984 | { | - |
4985 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
4986 | { | - |
4987 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
4988 | break; | 0 |
4989 | } | - |
4990 | if (((md->nltype != 0)? ((eptr) < md->end_subject && _pcre16_is_newline((eptr), md->nltype, md->end_subject, &(md->nllen), utf)) : ((eptr) <= md->end_subject - md->nllen && (eptr)[0] == md->nl[0] && (md->nllen == 1 || (eptr)[1] == md->nl[1]) ) )) break; never evaluated: (md->nltype != 0) | 0 |
4991 | eptr++; | - |
4992 | } | 0 |
4993 | break; | 0 |
4994 | | - |
4995 | case OP_ALLANY: | - |
4996 | case OP_ANYBYTE: | - |
4997 | c = max - min; | - |
4998 | if (c > (unsigned int)(md->end_subject - eptr)) never evaluated: c > (unsigned int)(md->end_subject - eptr) | 0 |
4999 | { | - |
5000 | eptr = md->end_subject; | - |
5001 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5002 | } | 0 |
5003 | else eptr += c; never executed: eptr += c; | 0 |
5004 | break; | 0 |
5005 | | - |
5006 | case OP_ANYNL: | - |
5007 | for (i = min; i < max; i++) | 0 |
5008 | { | - |
5009 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5010 | { | - |
5011 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5012 | break; | 0 |
5013 | } | - |
5014 | c = *eptr; | - |
5015 | if (c == 0x000d) never evaluated: c == 0x000d | 0 |
5016 | { | - |
5017 | if (++eptr >= md->end_subject) break; never evaluated: ++eptr >= md->end_subject | 0 |
5018 | if (*eptr == 0x000a) eptr++; never evaluated: *eptr == 0x000a | 0 |
5019 | } | 0 |
5020 | else | - |
5021 | { | - |
5022 | if (c != 0x000a && (md->bsr_anycrlf || never evaluated: c != 0x000a never evaluated: md->bsr_anycrlf | 0 |
5023 | (c != 0x000b && c != 0x000c && c != 0x0085 never evaluated: c != 0x000b never evaluated: c != 0x000c never evaluated: c != 0x0085 | 0 |
5024 | | - |
5025 | && c != 0x2028 && c != 0x2029 never evaluated: c != 0x2028 never evaluated: c != 0x2029 | 0 |
5026 | | - |
5027 | ))) break; | 0 |
5028 | eptr++; | - |
5029 | } | 0 |
5030 | } | - |
5031 | break; | 0 |
5032 | | - |
5033 | case OP_NOT_HSPACE: | - |
5034 | for (i = min; i < max; i++) | 0 |
5035 | { | - |
5036 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5037 | { | - |
5038 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5039 | break; | 0 |
5040 | } | - |
5041 | c = *eptr; | - |
5042 | if (c == 0x09 || c == 0x20 || c == 0xa0 never evaluated: c == 0x09 never evaluated: c == 0x20 never evaluated: c == 0xa0 | 0 |
5043 | | - |
5044 | || c == 0x1680 || c == 0x180e || (c >= 0x2000 && c <= 0x200A) never evaluated: c == 0x1680 never evaluated: c == 0x180e never evaluated: c >= 0x2000 never evaluated: c <= 0x200A | 0 |
5045 | || c == 0x202f || c == 0x205f || c == 0x3000 never evaluated: c == 0x202f never evaluated: c == 0x205f never evaluated: c == 0x3000 | 0 |
5046 | | - |
5047 | ) break; | 0 |
5048 | eptr++; | - |
5049 | } | 0 |
5050 | break; | 0 |
5051 | | - |
5052 | case OP_HSPACE: | - |
5053 | for (i = min; i < max; i++) | 0 |
5054 | { | - |
5055 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5056 | { | - |
5057 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5058 | break; | 0 |
5059 | } | - |
5060 | c = *eptr; | - |
5061 | if (c != 0x09 && c != 0x20 && c != 0xa0 never evaluated: c != 0x09 never evaluated: c != 0x20 never evaluated: c != 0xa0 | 0 |
5062 | | - |
5063 | && c != 0x1680 && c != 0x180e && (c < 0x2000 || c > 0x200A) never evaluated: c != 0x1680 never evaluated: c != 0x180e never evaluated: c < 0x2000 never evaluated: c > 0x200A | 0 |
5064 | && c != 0x202f && c != 0x205f && c != 0x3000 never evaluated: c != 0x202f never evaluated: c != 0x205f never evaluated: c != 0x3000 | 0 |
5065 | | - |
5066 | ) break; | 0 |
5067 | eptr++; | - |
5068 | } | 0 |
5069 | break; | 0 |
5070 | | - |
5071 | case OP_NOT_VSPACE: | - |
5072 | for (i = min; i < max; i++) | 0 |
5073 | { | - |
5074 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5075 | { | - |
5076 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5077 | break; | 0 |
5078 | } | - |
5079 | c = *eptr; | - |
5080 | if (c == 0x0a || c == 0x0b || c == 0x0c || c == 0x0d || c == 0x85 never evaluated: c == 0x0a never evaluated: c == 0x0b never evaluated: c == 0x0c never evaluated: c == 0x0d never evaluated: c == 0x85 | 0 |
5081 | | - |
5082 | || c == 0x2028 || c == 0x2029 never evaluated: c == 0x2028 never evaluated: c == 0x2029 | 0 |
5083 | | - |
5084 | ) break; | 0 |
5085 | eptr++; | - |
5086 | } | 0 |
5087 | break; | 0 |
5088 | | - |
5089 | case OP_VSPACE: | - |
5090 | for (i = min; i < max; i++) | 0 |
5091 | { | - |
5092 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5093 | { | - |
5094 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5095 | break; | 0 |
5096 | } | - |
5097 | c = *eptr; | - |
5098 | if (c != 0x0a && c != 0x0b && c != 0x0c && c != 0x0d && c != 0x85 never evaluated: c != 0x0a never evaluated: c != 0x0b never evaluated: c != 0x0c never evaluated: c != 0x0d never evaluated: c != 0x85 | 0 |
5099 | | - |
5100 | && c != 0x2028 && c != 0x2029 never evaluated: c != 0x2028 never evaluated: c != 0x2029 | 0 |
5101 | | - |
5102 | ) break; | 0 |
5103 | eptr++; | - |
5104 | } | 0 |
5105 | break; | 0 |
5106 | | - |
5107 | case OP_NOT_DIGIT: | - |
5108 | for (i = min; i < max; i++) | 0 |
5109 | { | - |
5110 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5111 | { | - |
5112 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5113 | break; | 0 |
5114 | } | - |
5115 | if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x04) != 0) break; never evaluated: ((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x04) != 0 | 0 |
5116 | eptr++; | - |
5117 | } | 0 |
5118 | break; | 0 |
5119 | | - |
5120 | case OP_DIGIT: | - |
5121 | for (i = min; i < max; i++) | 0 |
5122 | { | - |
5123 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5124 | { | - |
5125 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5126 | break; | 0 |
5127 | } | - |
5128 | if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x04) == 0) break; never evaluated: !((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x04) == 0 | 0 |
5129 | eptr++; | - |
5130 | } | 0 |
5131 | break; | 0 |
5132 | | - |
5133 | case OP_NOT_WHITESPACE: | - |
5134 | for (i = min; i < max; i++) | 0 |
5135 | { | - |
5136 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5137 | { | - |
5138 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5139 | break; | 0 |
5140 | } | - |
5141 | if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x01) != 0) break; never evaluated: ((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x01) != 0 | 0 |
5142 | eptr++; | - |
5143 | } | 0 |
5144 | break; | 0 |
5145 | | - |
5146 | case OP_WHITESPACE: | - |
5147 | for (i = min; i < max; i++) | 0 |
5148 | { | - |
5149 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5150 | { | - |
5151 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5152 | break; | 0 |
5153 | } | - |
5154 | if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x01) == 0) break; never evaluated: !((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x01) == 0 | 0 |
5155 | eptr++; | - |
5156 | } | 0 |
5157 | break; | 0 |
5158 | | - |
5159 | case OP_NOT_WORDCHAR: | - |
5160 | for (i = min; i < max; i++) | 0 |
5161 | { | - |
5162 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5163 | { | - |
5164 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5165 | break; | 0 |
5166 | } | - |
5167 | if (((*eptr) <= 255u) && (md->ctypes[*eptr] & 0x10) != 0) break; never evaluated: ((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x10) != 0 | 0 |
5168 | eptr++; | - |
5169 | } | 0 |
5170 | break; | 0 |
5171 | | - |
5172 | case OP_WORDCHAR: | - |
5173 | for (i = min; i < max; i++) | 0 |
5174 | { | - |
5175 | if (eptr >= md->end_subject) never evaluated: eptr >= md->end_subject | 0 |
5176 | { | - |
5177 | if (md->partial != 0 && eptr > md->start_used_ptr) { md->hitend = 1; if (md->partial > 1) return (-12); }; never executed: return (-12); never evaluated: md->partial > 1 never evaluated: md->partial != 0 never evaluated: eptr > md->start_used_ptr | 0 |
5178 | break; | 0 |
5179 | } | - |
5180 | if (!((*eptr) <= 255u) || (md->ctypes[*eptr] & 0x10) == 0) break; never evaluated: !((*eptr) <= 255u) never evaluated: (md->ctypes[*eptr] & 0x10) == 0 | 0 |
5181 | eptr++; | - |
5182 | } | 0 |
5183 | break; | 0 |
5184 | | - |
5185 | default: | - |
5186 | return (-14); never executed: return (-14); | 0 |
5187 | } | - |
5188 | | - |
5189 | | - |
5190 | | - |
5191 | | - |
5192 | | - |
5193 | | - |
5194 | | - |
5195 | if (possessive) continue; never executed: continue; never evaluated: possessive | 0 |
5196 | while (eptr >= pp) never evaluated: eptr >= pp | 0 |
5197 | { | - |
5198 | rrc = match(eptr,ecode,mstart,offset_top,md,eptrb,rdepth+1); | - |
5199 | if (rrc != 0) return rrc; never executed: return rrc; never evaluated: rrc != 0 | 0 |
5200 | eptr--; | - |
5201 | if (ctype == OP_ANYNL && eptr > pp && *eptr == '\n' && never evaluated: ctype == OP_ANYNL never evaluated: eptr > pp never evaluated: *eptr == '\n' | 0 |
5202 | eptr[-1] == '\r') eptr--; never evaluated: eptr[-1] == '\r' | 0 |
5203 | } | 0 |
5204 | } | 0 |
5205 | | - |
5206 | | - |
5207 | | - |
5208 | return 0; executed: return 0; Execution Count:51 | 51 |
5209 | } | - |
5210 | | - |
5211 | | - |
5212 | | - |
5213 | | - |
5214 | | - |
5215 | default: code before this statement never executed: default: | 0 |
5216 | ; | - |
5217 | return (-5); never executed: return (-5); | 0 |
5218 | } | - |
5219 | | - |
5220 | | - |
5221 | | - |
5222 | | - |
5223 | | - |
5224 | } executed: } Execution Count:3536 | 3536 |
5225 | } | 0 |
5226 | extern int | - |
5227 | pcre16_exec(const pcre16 *argument_re, const pcre16_extra *extra_data, | - |
5228 | const unsigned short * subject, int length, int start_offset, int options, int *offsets, | - |
5229 | int offsetcount) | - |
5230 | | - |
5231 | { | - |
5232 | int rc, ocount, arg_offset_max; | - |
5233 | int newline; | - |
5234 | BOOL using_temporary_offsets = 0; | - |
5235 | BOOL anchored; | - |
5236 | BOOL startline; | - |
5237 | BOOL firstline; | - |
5238 | BOOL utf; | - |
5239 | BOOL has_first_char = 0; | - |
5240 | BOOL has_req_char = 0; | - |
5241 | pcre_uchar first_char = 0; | - |
5242 | pcre_uchar first_char2 = 0; | - |
5243 | pcre_uchar req_char = 0; | - |
5244 | pcre_uchar req_char2 = 0; | - |
5245 | match_data match_block; | - |
5246 | match_data *md = &match_block; | - |
5247 | const pcre_uint8 *tables; | - |
5248 | const pcre_uint8 *start_bits = ((void *)0); | - |
5249 | const pcre_uchar * start_match = (const pcre_uchar *)subject + start_offset; | - |
5250 | const pcre_uchar * end_subject; | - |
5251 | const pcre_uchar * start_partial = ((void *)0); | - |
5252 | const pcre_uchar * req_char_ptr = start_match - 1; | - |
5253 | | - |
5254 | const pcre_study_data *study; | - |
5255 | const real_pcre16 *re = (const real_pcre16 *)argument_re; | - |
5256 | | - |
5257 | | - |
5258 | | - |
5259 | | - |
5260 | if (re == ((void *)0) && extra_data == ((void *)0) && subject == ((void *)0) && length == -999 && partially evaluated: re == ((void *)0) no Evaluation Count:0 | yes Evaluation Count:990 |
never evaluated: extra_data == ((void *)0) never evaluated: subject == ((void *)0) never evaluated: length == -999 | 0-990 |
5261 | start_offset == -999) never evaluated: start_offset == -999 | 0 |
5262 | | - |
5263 | | - |
5264 | | - |
5265 | return match(((void *)0), ((void *)0), ((void *)0), 0, ((void *)0), ((void *)0), 0); never executed: return match(((void *)0), ((void *)0), ((void *)0), 0, ((void *)0), ((void *)0), 0); | 0 |
5266 | | - |
5267 | | - |
5268 | | - |
5269 | | - |
5270 | if ((options & ~(0x00000010|0x00000080|0x00000100|0x00000400|0x10000000| 0x00002000|0x08000000|0x00008000|(0x00100000|0x00200000|0x00400000| 0x00500000)| 0x00800000|0x01000000|0x04000000)) != 0) return (-3); never executed: return (-3); partially evaluated: (options & ~(0x00000010|0x00000080|0x00000100|0x00000400|0x10000000| 0x00002000|0x08000000|0x00008000|(0x00100000|0x00200000|0x00400000| 0x00500000)| 0x00800000|0x01000000|0x04000000)) != 0 no Evaluation Count:0 | yes Evaluation Count:990 |
| 0-990 |
5271 | if (re == ((void *)0) || subject == ((void *)0) || (offsets == ((void *)0) && offsetcount > 0)) partially evaluated: re == ((void *)0) no Evaluation Count:0 | yes Evaluation Count:990 |
partially evaluated: subject == ((void *)0) no Evaluation Count:0 | yes Evaluation Count:990 |
partially evaluated: offsets == ((void *)0) no Evaluation Count:0 | yes Evaluation Count:990 |
never evaluated: offsetcount > 0 | 0-990 |
5272 | return (-2); never executed: return (-2); | 0 |
5273 | if (offsetcount < 0) return (-15); never executed: return (-15); partially evaluated: offsetcount < 0 no Evaluation Count:0 | yes Evaluation Count:990 |
| 0-990 |
5274 | if (start_offset < 0 || start_offset > length) return (-24); executed: return (-24); Execution Count:24 partially evaluated: start_offset < 0 no Evaluation Count:0 | yes Evaluation Count:990 |
evaluated: start_offset > length yes Evaluation Count:24 | yes Evaluation Count:966 |
| 0-990 |
5275 | | - |
5276 | | - |
5277 | | - |
5278 | | - |
5279 | | - |
5280 | | - |
5281 | if (re->magic_number != 0x50435245UL) partially evaluated: re->magic_number != 0x50435245UL no Evaluation Count:0 | yes Evaluation Count:966 |
| 0-966 |
5282 | return re->magic_number == 0x45524350UL? | 0 |
5283 | (-29):(-4); never executed: return re->magic_number == 0x45524350UL? (-29):(-4); | 0 |
5284 | if ((re->flags & 0x0002) == 0) return (-28); never executed: return (-28); partially evaluated: (re->flags & 0x0002) == 0 no Evaluation Count:0 | yes Evaluation Count:966 |
| 0-966 |
5285 | | - |
5286 | | - |
5287 | | - |
5288 | | - |
5289 | | - |
5290 | | - |
5291 | | - |
5292 | utf = md->utf = (re->options & 0x00000800) != 0; | - |
5293 | md->partial = ((options & 0x08000000) != 0)? 2 : evaluated: ((options & 0x08000000) != 0) yes Evaluation Count:13 | yes Evaluation Count:953 |
| 13-953 |
5294 | ((options & 0x00008000) != 0)? 1 : 0; | - |
5295 | | - |
5296 | | - |
5297 | | - |
5298 | | - |
5299 | | - |
5300 | if (utf && (options & 0x00002000) == 0) partially evaluated: utf yes Evaluation Count:966 | no Evaluation Count:0 |
evaluated: (options & 0x00002000) == 0 yes Evaluation Count:333 | yes Evaluation Count:633 |
| 0-966 |
5301 | { | - |
5302 | int erroroffset; | - |
5303 | int errorcode = _pcre16_valid_utf((const pcre_uchar *)subject, length, &erroroffset); | - |
5304 | if (errorcode != 0) partially evaluated: errorcode != 0 no Evaluation Count:0 | yes Evaluation Count:333 |
| 0-333 |
5305 | { | - |
5306 | if (offsetcount >= 2) never evaluated: offsetcount >= 2 | 0 |
5307 | { | - |
5308 | offsets[0] = erroroffset; | - |
5309 | offsets[1] = errorcode; | - |
5310 | } | 0 |
5311 | | - |
5312 | return (errorcode <= 1 && md->partial > 1)? | 0 |
5313 | (-25) : (-10); never executed: return (errorcode <= 1 && md->partial > 1)? (-25) : (-10); | 0 |
5314 | | - |
5315 | | - |
5316 | | - |
5317 | | - |
5318 | } | - |
5319 | | - |
5320 | | - |
5321 | if (start_offset > 0 && start_offset < length && evaluated: start_offset > 0 yes Evaluation Count:36 | yes Evaluation Count:297 |
evaluated: start_offset < length yes Evaluation Count:34 | yes Evaluation Count:2 |
| 2-297 |
5322 | (((((const pcre_uchar *)subject)[start_offset]) & 0xfc00) == 0xdc00)) partially evaluated: (((((const pcre_uchar *)subject)[start_offset]) & 0xfc00) == 0xdc00) no Evaluation Count:0 | yes Evaluation Count:34 |
| 0-34 |
5323 | return (-11); never executed: return (-11); | 0 |
5324 | } executed: } Execution Count:333 | 333 |
5325 | if (extra_data != ((void *)0) evaluated: extra_data != ((void *)0) yes Evaluation Count:204 | yes Evaluation Count:762 |
| 204-762 |
5326 | && (extra_data->flags & 0x0040) != 0 partially evaluated: (extra_data->flags & 0x0040) != 0 yes Evaluation Count:204 | no Evaluation Count:0 |
| 0-204 |
5327 | && extra_data->executable_jit != ((void *)0) partially evaluated: extra_data->executable_jit != ((void *)0) yes Evaluation Count:204 | no Evaluation Count:0 |
| 0-204 |
5328 | && (extra_data->flags & 0x0008) == 0 partially evaluated: (extra_data->flags & 0x0008) == 0 yes Evaluation Count:204 | no Evaluation Count:0 |
| 0-204 |
5329 | && (options & ~(0x00002000 | 0x00000080 | 0x00000100 | | 32-172 |
5330 | 0x00000400 | 0x10000000)) == 0) evaluated: (options & ~(0x00002000 | 0x00000080 | 0x00000100 | 0x00000400 | 0x10000000)) == 0 yes Evaluation Count:172 | yes Evaluation Count:32 |
| 32-172 |
5331 | return _pcre16_jit_exec(re, extra_data->executable_jit, | 172 |
5332 | (const pcre_uchar *)subject, length, start_offset, options, | 172 |
5333 | ((extra_data->flags & 0x0002) == 0) | 172 |
5334 | ? 10000000 : extra_data->match_limit, offsets, offsetcount); executed: return _pcre16_jit_exec(re, extra_data->executable_jit, (const pcre_uchar *)subject, length, start_offset, options, ((extra_data->flags & 0x0002) == 0) ? 10000000 : extra_data->match_limit, offsets, offsetcount); Execution Count:172 | 172 |
5335 | | - |
5336 | | - |
5337 | | - |
5338 | | - |
5339 | | - |
5340 | md->name_table = (pcre_uchar *)re + re->name_table_offset; | - |
5341 | md->name_count = re->name_count; | - |
5342 | md->name_entry_size = re->name_entry_size; | - |
5343 | | - |
5344 | | - |
5345 | | - |
5346 | | - |
5347 | study = ((void *)0); | - |
5348 | md->match_limit = 10000000; | - |
5349 | md->match_limit_recursion = 10000000; | - |
5350 | md->callout_data = ((void *)0); | - |
5351 | | - |
5352 | | - |
5353 | | - |
5354 | tables = re->tables; | - |
5355 | | - |
5356 | if (extra_data != ((void *)0)) evaluated: extra_data != ((void *)0) yes Evaluation Count:32 | yes Evaluation Count:762 |
| 32-762 |
5357 | { | - |
5358 | register unsigned int flags = extra_data->flags; | - |
5359 | if ((flags & 0x0001) != 0) partially evaluated: (flags & 0x0001) != 0 yes Evaluation Count:32 | no Evaluation Count:0 |
| 0-32 |
5360 | study = (const pcre_study_data *)extra_data->study_data; executed: study = (const pcre_study_data *)extra_data->study_data; Execution Count:32 | 32 |
5361 | if ((flags & 0x0002) != 0) partially evaluated: (flags & 0x0002) != 0 no Evaluation Count:0 | yes Evaluation Count:32 |
| 0-32 |
5362 | md->match_limit = extra_data->match_limit; never executed: md->match_limit = extra_data->match_limit; | 0 |
5363 | if ((flags & 0x0010) != 0) partially evaluated: (flags & 0x0010) != 0 no Evaluation Count:0 | yes Evaluation Count:32 |
| 0-32 |
5364 | md->match_limit_recursion = extra_data->match_limit_recursion; never executed: md->match_limit_recursion = extra_data->match_limit_recursion; | 0 |
5365 | if ((flags & 0x0004) != 0) partially evaluated: (flags & 0x0004) != 0 no Evaluation Count:0 | yes Evaluation Count:32 |
| 0-32 |
5366 | md->callout_data = extra_data->callout_data; never executed: md->callout_data = extra_data->callout_data; | 0 |
5367 | if ((flags & 0x0008) != 0) tables = extra_data->tables; never executed: tables = extra_data->tables; partially evaluated: (flags & 0x0008) != 0 no Evaluation Count:0 | yes Evaluation Count:32 |
| 0-32 |
5368 | } executed: } Execution Count:32 | 32 |
5369 | | - |
5370 | | - |
5371 | | - |
5372 | | - |
5373 | | - |
5374 | if (tables == ((void *)0)) tables = _pcre16_default_tables; executed: tables = _pcre16_default_tables; Execution Count:794 partially evaluated: tables == ((void *)0) yes Evaluation Count:794 | no Evaluation Count:0 |
| 0-794 |
5375 | | - |
5376 | | - |
5377 | | - |
5378 | anchored = ((re->options | options) & 0x00000010) != 0; | - |
5379 | startline = (re->flags & 0x0100) != 0; | - |
5380 | firstline = (re->options & 0x00040000) != 0; | - |
5381 | | - |
5382 | | - |
5383 | | - |
5384 | md->start_code = (const pcre_uchar *)re + re->name_table_offset + | - |
5385 | re->name_count * re->name_entry_size; | - |
5386 | | - |
5387 | md->start_subject = (const pcre_uchar *)subject; | - |
5388 | md->start_offset = start_offset; | - |
5389 | md->end_subject = md->start_subject + length; | - |
5390 | end_subject = md->end_subject; | - |
5391 | | - |
5392 | md->endonly = (re->options & 0x00000020) != 0; | - |
5393 | md->use_ucp = (re->options & 0x20000000) != 0; | - |
5394 | md->jscript_compat = (re->options & 0x02000000) != 0; | - |
5395 | md->ignore_skip_arg = 0; | - |
5396 | | - |
5397 | | - |
5398 | | - |
5399 | | - |
5400 | md->notbol = (options & 0x00000080) != 0; | - |
5401 | md->noteol = (options & 0x00000100) != 0; | - |
5402 | md->notempty = (options & 0x00000400) != 0; | - |
5403 | md->notempty_atstart = (options & 0x10000000) != 0; | - |
5404 | | - |
5405 | md->hitend = 0; | - |
5406 | md->mark = md->nomatch_mark = ((void *)0); | - |
5407 | | - |
5408 | md->recursive = ((void *)0); | - |
5409 | md->hasthen = (re->flags & 0x1000) != 0; | - |
5410 | | - |
5411 | md->lcc = tables + 0; | - |
5412 | md->fcc = tables + 256; | - |
5413 | md->ctypes = tables + (512 + 320); | - |
5414 | | - |
5415 | | - |
5416 | | - |
5417 | switch (options & (0x00800000|0x01000000)) | - |
5418 | { | - |
5419 | case 0: | - |
5420 | if ((re->options & (0x00800000|0x01000000)) != 0) partially evaluated: (re->options & (0x00800000|0x01000000)) != 0 no Evaluation Count:0 | yes Evaluation Count:794 |
| 0-794 |
5421 | md->bsr_anycrlf = (re->options & 0x00800000) != 0; never executed: md->bsr_anycrlf = (re->options & 0x00800000) != 0; | 0 |
5422 | else | - |
5423 | | - |
5424 | | - |
5425 | | - |
5426 | md->bsr_anycrlf = 0; executed: md->bsr_anycrlf = 0; Execution Count:794 | 794 |
5427 | | - |
5428 | break; executed: break; Execution Count:794 | 794 |
5429 | | - |
5430 | case 0x00800000: | - |
5431 | md->bsr_anycrlf = 1; | - |
5432 | break; | 0 |
5433 | | - |
5434 | case 0x01000000: | - |
5435 | md->bsr_anycrlf = 0; | - |
5436 | break; | 0 |
5437 | | - |
5438 | default: return (-23); never executed: return (-23); | 0 |
5439 | } | - |
5440 | | - |
5441 | | - |
5442 | | - |
5443 | | - |
5444 | switch ((((options & (0x00100000|0x00200000|0x00400000| 0x00500000)) == 0)? re->options : | - |
5445 | (pcre_uint32)options) & (0x00100000|0x00200000|0x00400000| 0x00500000)) | - |
5446 | { | - |
5447 | case 0: newline = 10; break; executed: break; Execution Count:748 | 748 |
5448 | case 0x00100000: newline = '\015'; break; | 0 |
5449 | case 0x00200000: newline = '\012'; break; | 0 |
5450 | case 0x00100000 + | - |
5451 | 0x00200000: newline = ('\015' << 8) | '\012'; break; executed: break; Execution Count:30 | 30 |
5452 | case 0x00400000: newline = -1; break; | 0 |
5453 | case 0x00500000: newline = -2; break; executed: break; Execution Count:16 | 16 |
5454 | default: return (-23); never executed: return (-23); | 0 |
5455 | } | - |
5456 | | - |
5457 | if (newline == -2) evaluated: newline == -2 yes Evaluation Count:16 | yes Evaluation Count:778 |
| 16-778 |
5458 | { | - |
5459 | md->nltype = 2; | - |
5460 | } executed: } Execution Count:16 | 16 |
5461 | else if (newline < 0) partially evaluated: newline < 0 no Evaluation Count:0 | yes Evaluation Count:778 |
| 0-778 |
5462 | { | - |
5463 | md->nltype = 1; | - |
5464 | } | 0 |
5465 | else | - |
5466 | { | - |
5467 | md->nltype = 0; | - |
5468 | if (newline > 255) evaluated: newline > 255 yes Evaluation Count:30 | yes Evaluation Count:748 |
| 30-748 |
5469 | { | - |
5470 | md->nllen = 2; | - |
5471 | md->nl[0] = (newline >> 8) & 255; | - |
5472 | md->nl[1] = newline & 255; | - |
5473 | } executed: } Execution Count:30 | 30 |
5474 | else | - |
5475 | { | - |
5476 | md->nllen = 1; | - |
5477 | md->nl[0] = newline; | - |
5478 | } executed: } Execution Count:748 | 748 |
5479 | } | - |
5480 | | - |
5481 | | - |
5482 | | - |
5483 | | - |
5484 | | - |
5485 | if (md->partial && (re->flags & 0x0200) != 0) evaluated: md->partial yes Evaluation Count:23 | yes Evaluation Count:771 |
partially evaluated: (re->flags & 0x0200) != 0 no Evaluation Count:0 | yes Evaluation Count:23 |
| 0-771 |
5486 | return (-13); never executed: return (-13); | 0 |
5487 | | - |
5488 | | - |
5489 | | - |
5490 | | - |
5491 | | - |
5492 | | - |
5493 | ocount = offsetcount - (offsetcount % 3); | - |
5494 | arg_offset_max = (2*ocount)/3; | - |
5495 | | - |
5496 | if (re->top_backref > 0 && re->top_backref >= ocount/3) partially evaluated: re->top_backref > 0 no Evaluation Count:0 | yes Evaluation Count:794 |
never evaluated: re->top_backref >= ocount/3 | 0-794 |
5497 | { | - |
5498 | ocount = re->top_backref * 3 + 3; | - |
5499 | md->offset_vector = (int *)(pcre16_malloc)(ocount * sizeof(int)); | - |
5500 | if (md->offset_vector == ((void *)0)) return (-6); never executed: return (-6); never evaluated: md->offset_vector == ((void *)0) | 0 |
5501 | using_temporary_offsets = 1; | - |
5502 | ; | - |
5503 | } | 0 |
5504 | else md->offset_vector = offsets; executed: md->offset_vector = offsets; Execution Count:794 | 794 |
5505 | | - |
5506 | md->offset_end = ocount; | - |
5507 | md->offset_max = (2*ocount)/3; | - |
5508 | md->offset_overflow = 0; | - |
5509 | md->capture_last = -1; | - |
5510 | | - |
5511 | | - |
5512 | | - |
5513 | | - |
5514 | | - |
5515 | | - |
5516 | | - |
5517 | if (md->offset_vector != ((void *)0)) partially evaluated: md->offset_vector != ((void *)0) yes Evaluation Count:794 | no Evaluation Count:0 |
| 0-794 |
5518 | { | - |
5519 | register int *iptr = md->offset_vector + ocount; | - |
5520 | register int *iend = iptr - re->top_bracket; | - |
5521 | if (iend < md->offset_vector + 2) iend = md->offset_vector + 2; never executed: iend = md->offset_vector + 2; partially evaluated: iend < md->offset_vector + 2 no Evaluation Count:0 | yes Evaluation Count:794 |
| 0-794 |
5522 | while (--iptr >= iend) *iptr = -1; executed: *iptr = -1; Execution Count:223 evaluated: --iptr >= iend yes Evaluation Count:223 | yes Evaluation Count:794 |
| 223-794 |
5523 | md->offset_vector[0] = md->offset_vector[1] = -1; | - |
5524 | } executed: } Execution Count:794 | 794 |
5525 | | - |
5526 | | - |
5527 | | - |
5528 | | - |
5529 | | - |
5530 | | - |
5531 | | - |
5532 | if (!anchored) evaluated: !anchored yes Evaluation Count:613 | yes Evaluation Count:181 |
| 181-613 |
5533 | { | - |
5534 | if ((re->flags & 0x0010) != 0) evaluated: (re->flags & 0x0010) != 0 yes Evaluation Count:379 | yes Evaluation Count:234 |
| 234-379 |
5535 | { | - |
5536 | has_first_char = 1; | - |
5537 | first_char = first_char2 = (pcre_uchar)(re->first_char); | - |
5538 | if ((re->flags & 0x0020) != 0) evaluated: (re->flags & 0x0020) != 0 yes Evaluation Count:52 | yes Evaluation Count:327 |
| 52-327 |
5539 | { | - |
5540 | first_char2 = (((first_char) <= 255u)? ((md->fcc)[first_char]):(first_char)); evaluated: ((first_char) <= 255u) yes Evaluation Count:51 | yes Evaluation Count:1 |
| 1-51 |
5541 | | - |
5542 | if (utf && first_char > 127) partially evaluated: utf yes Evaluation Count:52 | no Evaluation Count:0 |
evaluated: first_char > 127 yes Evaluation Count:1 | yes Evaluation Count:51 |
| 0-52 |
5543 | first_char2 = (first_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(first_char) / 128] * 128 + (first_char) % 128])->other_case); executed: first_char2 = (first_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(first_char) / 128] * 128 + (first_char) % 128])->other_case); Execution Count:1 | 1 |
5544 | | - |
5545 | } executed: } Execution Count:52 | 52 |
5546 | } executed: } Execution Count:379 | 379 |
5547 | else | - |
5548 | if (!startline && study != ((void *)0) && evaluated: !startline yes Evaluation Count:187 | yes Evaluation Count:47 |
partially evaluated: study != ((void *)0) no Evaluation Count:0 | yes Evaluation Count:187 |
| 0-187 |
5549 | (study->flags & 0x0001) != 0) never evaluated: (study->flags & 0x0001) != 0 | 0 |
5550 | start_bits = study->start_bits; never executed: start_bits = study->start_bits; | 0 |
5551 | } | - |
5552 | | - |
5553 | | - |
5554 | | - |
5555 | | - |
5556 | if ((re->flags & 0x0040) != 0) evaluated: (re->flags & 0x0040) != 0 yes Evaluation Count:159 | yes Evaluation Count:635 |
| 159-635 |
5557 | { | - |
5558 | has_req_char = 1; | - |
5559 | req_char = req_char2 = (pcre_uchar)(re->req_char); | - |
5560 | if ((re->flags & 0x0080) != 0) evaluated: (re->flags & 0x0080) != 0 yes Evaluation Count:33 | yes Evaluation Count:126 |
| 33-126 |
5561 | { | - |
5562 | req_char2 = (((req_char) <= 255u)? ((md->fcc)[req_char]):(req_char)); evaluated: ((req_char) <= 255u) yes Evaluation Count:32 | yes Evaluation Count:1 |
| 1-32 |
5563 | | - |
5564 | if (utf && req_char > 127) partially evaluated: utf yes Evaluation Count:33 | no Evaluation Count:0 |
evaluated: req_char > 127 yes Evaluation Count:2 | yes Evaluation Count:31 |
| 0-33 |
5565 | req_char2 = (req_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(req_char) / 128] * 128 + (req_char) % 128])->other_case); executed: req_char2 = (req_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(req_char) / 128] * 128 + (req_char) % 128])->other_case); Execution Count:2 | 2 |
5566 | | - |
5567 | } executed: } Execution Count:33 | 33 |
5568 | } executed: } Execution Count:159 | 159 |
5569 | | - |
5570 | | - |
5571 | | - |
5572 | | - |
5573 | | - |
5574 | | - |
5575 | | - |
5576 | for(;;) | - |
5577 | { | - |
5578 | const pcre_uchar * save_end_subject = end_subject; | - |
5579 | const pcre_uchar * new_start_match; | - |
5580 | | - |
5581 | | - |
5582 | | - |
5583 | | - |
5584 | | - |
5585 | | - |
5586 | | - |
5587 | if (firstline) partially evaluated: firstline no Evaluation Count:0 | yes Evaluation Count:1084 |
| 0-1084 |
5588 | { | - |
5589 | const pcre_uchar * t = start_match; | - |
5590 | | - |
5591 | if (utf) | 0 |
5592 | { | - |
5593 | while (t < md->end_subject && !((md->nltype != 0)? ((t) < md->end_subject && _pcre16_is_newline((t), md->nltype, md->end_subject, &(md->nllen), utf)) : ((t) <= md->end_subject - md->nllen && (t)[0] == md->nl[0] && (md->nllen == 1 || (t)[1] == md->nl[1]) ) )) never evaluated: t < md->end_subject never evaluated: (md->nltype != 0) | 0 |
5594 | { | - |
5595 | t++; | - |
5596 | if ((t < end_subject) && ((*t) & 0xfc00) == 0xdc00) t++; never evaluated: (t < end_subject) never evaluated: ((*t) & 0xfc00) == 0xdc00 | 0 |
5597 | } | 0 |
5598 | } | 0 |
5599 | else | - |
5600 | | - |
5601 | while (t < md->end_subject && !((md->nltype != 0)? ((t) < md->end_subject && _pcre16_is_newline((t), md->nltype, md->end_subject, &(md->nllen), utf)) : ((t) <= md->end_subject - md->nllen && (t)[0] == md->nl[0] && (md->nllen == 1 || (t)[1] == md->nl[1]) ) )) t++; never evaluated: t < md->end_subject never evaluated: (md->nltype != 0) | 0 |
5602 | end_subject = t; | - |
5603 | } | 0 |
5604 | | - |
5605 | | - |
5606 | | - |
5607 | | - |
5608 | | - |
5609 | | - |
5610 | | - |
5611 | if (((options | re->options) & 0x04000000) == 0) partially evaluated: ((options | re->options) & 0x04000000) == 0 yes Evaluation Count:1084 | no Evaluation Count:0 |
| 0-1084 |
5612 | { | - |
5613 | | - |
5614 | | - |
5615 | if (has_first_char) evaluated: has_first_char yes Evaluation Count:397 | yes Evaluation Count:687 |
| 397-687 |
5616 | { | - |
5617 | if (first_char != first_char2) evaluated: first_char != first_char2 yes Evaluation Count:52 | yes Evaluation Count:345 |
| 52-345 |
5618 | while (start_match < end_subject && evaluated: start_match < end_subject yes Evaluation Count:96 | yes Evaluation Count:13 |
| 13-96 |
5619 | *start_match != first_char && *start_match != first_char2) evaluated: *start_match != first_char yes Evaluation Count:81 | yes Evaluation Count:15 |
evaluated: *start_match != first_char2 yes Evaluation Count:57 | yes Evaluation Count:24 |
| 15-81 |
5620 | start_match++; executed: start_match++; Execution Count:57 | 57 |
5621 | else | - |
5622 | while (start_match < end_subject && *start_match != first_char) evaluated: start_match < end_subject yes Evaluation Count:2419 | yes Evaluation Count:104 |
evaluated: *start_match != first_char yes Evaluation Count:2178 | yes Evaluation Count:241 |
| 104-2419 |
5623 | start_match++; executed: start_match++; Execution Count:2178 | 2178 |
5624 | } | - |
5625 | | - |
5626 | | - |
5627 | | - |
5628 | else if (startline) evaluated: startline yes Evaluation Count:85 | yes Evaluation Count:602 |
| 85-602 |
5629 | { | - |
5630 | if (start_match > md->start_subject + start_offset) evaluated: start_match > md->start_subject + start_offset yes Evaluation Count:2 | yes Evaluation Count:83 |
| 2-83 |
5631 | { | - |
5632 | | - |
5633 | if (utf) partially evaluated: utf yes Evaluation Count:2 | no Evaluation Count:0 |
| 0-2 |
5634 | { | - |
5635 | while (start_match < end_subject && !((md->nltype != 0)? ((start_match) > md->start_subject && _pcre16_was_newline((start_match), md->nltype, md->start_subject, &(md->nllen), utf)) : ((start_match) >= md->start_subject + md->nllen && (start_match)[-md->nllen] == md->nl[0] && (md->nllen == 1 || (start_match)[-md->nllen+1] == md->nl[1]) ) )) partially evaluated: start_match < end_subject yes Evaluation Count:17 | no Evaluation Count:0 |
partially evaluated: (md->nltype != 0) no Evaluation Count:0 | yes Evaluation Count:17 |
| 0-17 |
5636 | { | - |
5637 | start_match++; | - |
5638 | if ((start_match < end_subject) && ((*start_match) & 0xfc00) == 0xdc00) start_match++; never executed: start_match++; partially evaluated: (start_match < end_subject) yes Evaluation Count:15 | no Evaluation Count:0 |
partially evaluated: ((*start_match) & 0xfc00) == 0xdc00 no Evaluation Count:0 | yes Evaluation Count:15 |
| 0-15 |
5639 | | - |
5640 | } executed: } Execution Count:15 | 15 |
5641 | } executed: } Execution Count:2 | 2 |
5642 | else | - |
5643 | | - |
5644 | while (start_match < end_subject && !((md->nltype != 0)? ((start_match) > md->start_subject && _pcre16_was_newline((start_match), md->nltype, md->start_subject, &(md->nllen), utf)) : ((start_match) >= md->start_subject + md->nllen && (start_match)[-md->nllen] == md->nl[0] && (md->nllen == 1 || (start_match)[-md->nllen+1] == md->nl[1]) ) )) never evaluated: start_match < end_subject never evaluated: (md->nltype != 0) | 0 |
5645 | start_match++; never executed: start_match++; | 0 |
5646 | | - |
5647 | | - |
5648 | | - |
5649 | | - |
5650 | | - |
5651 | if (start_match[-1] == '\015' && partially evaluated: start_match[-1] == '\015' no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
5652 | (md->nltype == 1 || md->nltype == 2) && never evaluated: md->nltype == 1 never evaluated: md->nltype == 2 | 0 |
5653 | start_match < end_subject && never evaluated: start_match < end_subject | 0 |
5654 | *start_match == '\012') never evaluated: *start_match == '\012' | 0 |
5655 | start_match++; never executed: start_match++; | 0 |
5656 | } executed: } Execution Count:2 | 2 |
5657 | } executed: } Execution Count:85 | 85 |
5658 | | - |
5659 | | - |
5660 | | - |
5661 | else if (start_bits != ((void *)0)) partially evaluated: start_bits != ((void *)0) no Evaluation Count:0 | yes Evaluation Count:602 |
| 0-602 |
5662 | { | - |
5663 | while (start_match < end_subject) never evaluated: start_match < end_subject | 0 |
5664 | { | - |
5665 | register unsigned int c = *start_match; | - |
5666 | | - |
5667 | if (c > 255) c = 255; | 0 |
5668 | | - |
5669 | if ((start_bits[c/8] & (1 << (c&7))) == 0) never evaluated: (start_bits[c/8] & (1 << (c&7))) == 0 | 0 |
5670 | { | - |
5671 | start_match++; | - |
5672 | | - |
5673 | | - |
5674 | | - |
5675 | | - |
5676 | | - |
5677 | | - |
5678 | | - |
5679 | } | 0 |
5680 | else break; | 0 |
5681 | } | - |
5682 | } | 0 |
5683 | } | - |
5684 | | - |
5685 | | - |
5686 | | - |
5687 | end_subject = save_end_subject; | - |
5688 | | - |
5689 | | - |
5690 | | - |
5691 | | - |
5692 | if (((options | re->options) & 0x04000000) == 0 && !md->partial) partially evaluated: ((options | re->options) & 0x04000000) == 0 yes Evaluation Count:1084 | no Evaluation Count:0 |
evaluated: !md->partial yes Evaluation Count:1020 | yes Evaluation Count:64 |
| 0-1084 |
5693 | { | - |
5694 | | - |
5695 | | - |
5696 | | - |
5697 | | - |
5698 | | - |
5699 | if (study != ((void *)0) && (study->flags & 0x0002) != 0 && evaluated: study != ((void *)0) yes Evaluation Count:32 | yes Evaluation Count:988 |
partially evaluated: (study->flags & 0x0002) != 0 no Evaluation Count:0 | yes Evaluation Count:32 |
| 0-988 |
5700 | (pcre_uint32)(end_subject - start_match) < study->minlength) never evaluated: (pcre_uint32)(end_subject - start_match) < study->minlength | 0 |
5701 | { | - |
5702 | rc = 0; | - |
5703 | break; | 0 |
5704 | } | - |
5705 | if (has_req_char && end_subject - start_match < 1000) evaluated: has_req_char yes Evaluation Count:154 | yes Evaluation Count:866 |
partially evaluated: end_subject - start_match < 1000 yes Evaluation Count:154 | no Evaluation Count:0 |
| 0-866 |
5706 | { | - |
5707 | register const pcre_uchar * p = start_match + (has_first_char? 1:0); evaluated: has_first_char yes Evaluation Count:91 | yes Evaluation Count:63 |
| 63-91 |
5708 | | - |
5709 | | - |
5710 | | - |
5711 | | - |
5712 | if (p > req_char_ptr) evaluated: p > req_char_ptr yes Evaluation Count:152 | yes Evaluation Count:2 |
| 2-152 |
5713 | { | - |
5714 | if (req_char != req_char2) evaluated: req_char != req_char2 yes Evaluation Count:33 | yes Evaluation Count:119 |
| 33-119 |
5715 | { | - |
5716 | while (p < end_subject) evaluated: p < end_subject yes Evaluation Count:543 | yes Evaluation Count:8 |
| 8-543 |
5717 | { | - |
5718 | register int pp = *p++; | - |
5719 | if (pp == req_char || pp == req_char2) { p--; break; } executed: break; Execution Count:25 evaluated: pp == req_char yes Evaluation Count:9 | yes Evaluation Count:534 |
evaluated: pp == req_char2 yes Evaluation Count:16 | yes Evaluation Count:518 |
| 9-534 |
5720 | } executed: } Execution Count:518 | 518 |
5721 | } executed: } Execution Count:33 | 33 |
5722 | else | - |
5723 | { | - |
5724 | while (p < end_subject) evaluated: p < end_subject yes Evaluation Count:2300 | yes Evaluation Count:51 |
| 51-2300 |
5725 | { | - |
5726 | if (*p++ == req_char) { p--; break; } executed: break; Execution Count:68 evaluated: *p++ == req_char yes Evaluation Count:68 | yes Evaluation Count:2232 |
| 68-2232 |
5727 | } executed: } Execution Count:2232 | 2232 |
5728 | } executed: } Execution Count:119 | 119 |
5729 | | - |
5730 | | - |
5731 | | - |
5732 | | - |
5733 | if (p >= end_subject) evaluated: p >= end_subject yes Evaluation Count:59 | yes Evaluation Count:93 |
| 59-93 |
5734 | { | - |
5735 | rc = 0; | - |
5736 | break; executed: break; Execution Count:59 | 59 |
5737 | } | - |
5738 | | - |
5739 | | - |
5740 | | - |
5741 | | - |
5742 | | - |
5743 | req_char_ptr = p; | - |
5744 | } executed: } Execution Count:93 | 93 |
5745 | } executed: } Execution Count:95 | 95 |
5746 | } executed: } Execution Count:961 | 961 |
5747 | md->start_match_ptr = start_match; | - |
5748 | md->start_used_ptr = start_match; | - |
5749 | md->match_call_count = 0; | - |
5750 | md->match_function_type = 0; | - |
5751 | md->end_offset_top = 0; | - |
5752 | rc = match(start_match, md->start_code, start_match, 2, md, ((void *)0), 0); | - |
5753 | if (md->hitend && start_partial == ((void *)0)) start_partial = md->start_used_ptr; executed: start_partial = md->start_used_ptr; Execution Count:19 evaluated: md->hitend yes Evaluation Count:34 | yes Evaluation Count:991 |
evaluated: start_partial == ((void *)0) yes Evaluation Count:19 | yes Evaluation Count:15 |
| 15-991 |
5754 | | - |
5755 | switch(rc) | - |
5756 | { | - |
5757 | | - |
5758 | | - |
5759 | | - |
5760 | | - |
5761 | | - |
5762 | | - |
5763 | | - |
5764 | case (-993): | - |
5765 | new_start_match = start_match; | - |
5766 | md->ignore_skip_arg = 1; | - |
5767 | break; | 0 |
5768 | | - |
5769 | | - |
5770 | | - |
5771 | | - |
5772 | case (-994): | - |
5773 | if (md->start_match_ptr != start_match) never evaluated: md->start_match_ptr != start_match | 0 |
5774 | { | - |
5775 | new_start_match = md->start_match_ptr; | - |
5776 | break; | 0 |
5777 | } | - |
5778 | | - |
5779 | | - |
5780 | | - |
5781 | | - |
5782 | | - |
5783 | case 0: code before this statement never executed: case 0: | 0 |
5784 | case (-995): | - |
5785 | case (-992): | - |
5786 | md->ignore_skip_arg = 0; | - |
5787 | new_start_match = start_match + 1; | - |
5788 | | - |
5789 | if (utf) partially evaluated: utf yes Evaluation Count:530 | no Evaluation Count:0 |
| 0-530 |
5790 | if ((new_start_match < end_subject) && ((*new_start_match) & 0xfc00) == 0xdc00) new_start_match++; executed: new_start_match++; Execution Count:6 evaluated: (new_start_match < end_subject) yes Evaluation Count:358 | yes Evaluation Count:172 |
evaluated: ((*new_start_match) & 0xfc00) == 0xdc00 yes Evaluation Count:6 | yes Evaluation Count:352 |
| 6-358 |
5791 | | - |
5792 | | - |
5793 | break; executed: break; Execution Count:530 | 530 |
5794 | | - |
5795 | | - |
5796 | | - |
5797 | case (-998): | - |
5798 | rc = 0; | - |
5799 | goto ENDLOOP; never executed: goto ENDLOOP; | 0 |
5800 | | - |
5801 | | - |
5802 | | - |
5803 | default: | - |
5804 | goto ENDLOOP; executed: goto ENDLOOP; Execution Count:495 | 495 |
5805 | } | - |
5806 | | - |
5807 | | - |
5808 | | - |
5809 | | - |
5810 | rc = 0; | - |
5811 | | - |
5812 | | - |
5813 | | - |
5814 | | - |
5815 | | - |
5816 | if (firstline && ((md->nltype != 0)? ((start_match) < md->end_subject && _pcre16_is_newline((start_match), md->nltype, md->end_subject, &(md->nllen), utf)) : ((start_match) <= md->end_subject - md->nllen && (start_match)[0] == md->nl[0] && (md->nllen == 1 || (start_match)[1] == md->nl[1]) ) )) break; partially evaluated: firstline no Evaluation Count:0 | yes Evaluation Count:530 |
never evaluated: (md->nltype != 0) | 0-530 |
5817 | | - |
5818 | | - |
5819 | | - |
5820 | start_match = new_start_match; | - |
5821 | | - |
5822 | | - |
5823 | | - |
5824 | | - |
5825 | if (anchored || start_match > end_subject) break; executed: break; Execution Count:240 evaluated: anchored yes Evaluation Count:122 | yes Evaluation Count:408 |
evaluated: start_match > end_subject yes Evaluation Count:118 | yes Evaluation Count:290 |
| 118-408 |
5826 | if (start_match > (const pcre_uchar *)subject + start_offset && partially evaluated: start_match > (const pcre_uchar *)subject + start_offset yes Evaluation Count:290 | no Evaluation Count:0 |
| 0-290 |
5827 | start_match[-1] == '\015' && partially evaluated: start_match[-1] == '\015' no Evaluation Count:0 | yes Evaluation Count:290 |
| 0-290 |
5828 | start_match < end_subject && never evaluated: start_match < end_subject | 0 |
5829 | *start_match == '\012' && never evaluated: *start_match == '\012' | 0 |
5830 | (re->flags & 0x0800) == 0 && never evaluated: (re->flags & 0x0800) == 0 | 0 |
5831 | (md->nltype == 1 || never evaluated: md->nltype == 1 | 0 |
5832 | md->nltype == 2 || never evaluated: md->nltype == 2 | 0 |
5833 | md->nllen == 2)) never evaluated: md->nllen == 2 | 0 |
5834 | start_match++; never executed: start_match++; | 0 |
5835 | | - |
5836 | md->mark = ((void *)0); | - |
5837 | } executed: } Execution Count:290 | 290 |
5838 | ENDLOOP: code before this statement executed: ENDLOOP: Execution Count:299 | 299 |
5839 | | - |
5840 | if (rc == 1 || rc == (-999)) evaluated: rc == 1 yes Evaluation Count:480 | yes Evaluation Count:314 |
partially evaluated: rc == (-999) no Evaluation Count:0 | yes Evaluation Count:314 |
| 0-480 |
5841 | { | - |
5842 | if (using_temporary_offsets) partially evaluated: using_temporary_offsets no Evaluation Count:0 | yes Evaluation Count:480 |
| 0-480 |
5843 | { | - |
5844 | if (arg_offset_max >= 4) never evaluated: arg_offset_max >= 4 | 0 |
5845 | { | - |
5846 | memcpy(offsets + 2, md->offset_vector + 2, | - |
5847 | (arg_offset_max - 2) * sizeof(int)); | - |
5848 | ; | - |
5849 | } | 0 |
5850 | if (md->end_offset_top > arg_offset_max) md->offset_overflow = 1; never executed: md->offset_overflow = 1; never evaluated: md->end_offset_top > arg_offset_max | 0 |
5851 | ; | - |
5852 | (pcre16_free)(md->offset_vector); | - |
5853 | } | 0 |
5854 | | - |
5855 | | - |
5856 | | - |
5857 | | - |
5858 | rc = (md->offset_overflow && md->end_offset_top >= arg_offset_max)? partially evaluated: md->offset_overflow no Evaluation Count:0 | yes Evaluation Count:480 |
never evaluated: md->end_offset_top >= arg_offset_max | 0-480 |
5859 | 0 : md->end_offset_top/2; | - |
5860 | if (md->end_offset_top/2 <= re->top_bracket && offsets != ((void *)0)) partially evaluated: md->end_offset_top/2 <= re->top_bracket no Evaluation Count:0 | yes Evaluation Count:480 |
never evaluated: offsets != ((void *)0) | 0-480 |
5861 | { | - |
5862 | register int *iptr, *iend; | - |
5863 | int resetcount = 2 + re->top_bracket * 2; | - |
5864 | if (resetcount > offsetcount) resetcount = ocount; never executed: resetcount = ocount; never evaluated: resetcount > offsetcount | 0 |
5865 | iptr = offsets + md->end_offset_top; | - |
5866 | iend = offsets + resetcount; | - |
5867 | while (iptr < iend) *iptr++ = -1; never executed: *iptr++ = -1; never evaluated: iptr < iend | 0 |
5868 | } | 0 |
5869 | | - |
5870 | | - |
5871 | | - |
5872 | | - |
5873 | | - |
5874 | if (offsetcount < 2) rc = 0; else partially evaluated: offsetcount < 2 no Evaluation Count:0 | yes Evaluation Count:480 |
| 0-480 |
5875 | { | - |
5876 | offsets[0] = (int)(md->start_match_ptr - md->start_subject); | - |
5877 | offsets[1] = (int)(md->end_match_ptr - md->start_subject); | - |
5878 | } executed: } Execution Count:480 | 480 |
5879 | | - |
5880 | | - |
5881 | | - |
5882 | if (extra_data != ((void *)0) && (extra_data->flags & 0x0020) != 0) evaluated: extra_data != ((void *)0) yes Evaluation Count:1 | yes Evaluation Count:479 |
partially evaluated: (extra_data->flags & 0x0020) != 0 no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-479 |
5883 | *(extra_data->mark) = (pcre_uchar *)md->mark; never executed: *(extra_data->mark) = (pcre_uchar *)md->mark; | 0 |
5884 | ; | - |
5885 | return rc; executed: return rc; Execution Count:480 | 480 |
5886 | } | - |
5887 | | - |
5888 | | - |
5889 | | - |
5890 | | - |
5891 | if (using_temporary_offsets) partially evaluated: using_temporary_offsets no Evaluation Count:0 | yes Evaluation Count:314 |
| 0-314 |
5892 | { | - |
5893 | ; | - |
5894 | (pcre16_free)(md->offset_vector); | - |
5895 | } | 0 |
5896 | | - |
5897 | | - |
5898 | | - |
5899 | if (rc != 0 && rc != (-12)) evaluated: rc != 0 yes Evaluation Count:15 | yes Evaluation Count:299 |
evaluated: rc != (-12) yes Evaluation Count:4 | yes Evaluation Count:11 |
| 4-299 |
5900 | { | - |
5901 | ; | - |
5902 | return rc; executed: return rc; Execution Count:4 | 4 |
5903 | } | - |
5904 | | - |
5905 | | - |
5906 | | - |
5907 | if (start_partial != ((void *)0)) evaluated: start_partial != ((void *)0) yes Evaluation Count:17 | yes Evaluation Count:293 |
| 17-293 |
5908 | { | - |
5909 | ; | - |
5910 | md->mark = ((void *)0); | - |
5911 | if (offsetcount > 1) partially evaluated: offsetcount > 1 yes Evaluation Count:17 | no Evaluation Count:0 |
| 0-17 |
5912 | { | - |
5913 | offsets[0] = (int)(start_partial - (const pcre_uchar *)subject); | - |
5914 | offsets[1] = (int)(end_subject - (const pcre_uchar *)subject); | - |
5915 | } executed: } Execution Count:17 | 17 |
5916 | rc = (-12); | - |
5917 | } executed: } Execution Count:17 | 17 |
5918 | | - |
5919 | | - |
5920 | | - |
5921 | else | - |
5922 | { | - |
5923 | ; | - |
5924 | rc = (-1); | - |
5925 | } executed: } Execution Count:293 | 293 |
5926 | | - |
5927 | | - |
5928 | | - |
5929 | if (extra_data != ((void *)0) && (extra_data->flags & 0x0020) != 0) evaluated: extra_data != ((void *)0) yes Evaluation Count:31 | yes Evaluation Count:279 |
partially evaluated: (extra_data->flags & 0x0020) != 0 no Evaluation Count:0 | yes Evaluation Count:31 |
| 0-279 |
5930 | *(extra_data->mark) = (pcre_uchar *)md->nomatch_mark; never executed: *(extra_data->mark) = (pcre_uchar *)md->nomatch_mark; | 0 |
5931 | return rc; executed: return rc; Execution Count:310 | 310 |
5932 | } | - |
5933 | | - |
| | |