1526 |
case 0x000d: |
case 0x000d: |
1527 |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
1528 |
break; |
break; |
1529 |
|
|
1530 |
case 0x000a: |
case 0x000a: |
1531 |
|
break; |
1532 |
|
|
1533 |
case 0x000b: |
case 0x000b: |
1534 |
case 0x000c: |
case 0x000c: |
1535 |
case 0x0085: |
case 0x0085: |
1536 |
case 0x2028: |
case 0x2028: |
1537 |
case 0x2029: |
case 0x2029: |
1538 |
|
if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); |
1539 |
break; |
break; |
1540 |
} |
} |
1541 |
ecode++; |
ecode++; |
2958 |
case 0x000d: |
case 0x000d: |
2959 |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
2960 |
break; |
break; |
2961 |
|
|
2962 |
case 0x000a: |
case 0x000a: |
2963 |
|
break; |
2964 |
|
|
2965 |
case 0x000b: |
case 0x000b: |
2966 |
case 0x000c: |
case 0x000c: |
2967 |
case 0x0085: |
case 0x0085: |
2968 |
case 0x2028: |
case 0x2028: |
2969 |
case 0x2029: |
case 0x2029: |
2970 |
|
if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); |
2971 |
break; |
break; |
2972 |
} |
} |
2973 |
} |
} |
3180 |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
3181 |
break; |
break; |
3182 |
case 0x000a: |
case 0x000a: |
3183 |
|
break; |
3184 |
|
|
3185 |
case 0x000b: |
case 0x000b: |
3186 |
case 0x000c: |
case 0x000c: |
3187 |
case 0x0085: |
case 0x0085: |
3188 |
|
if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); |
3189 |
break; |
break; |
3190 |
} |
} |
3191 |
} |
} |
3437 |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
3438 |
break; |
break; |
3439 |
case 0x000a: |
case 0x000a: |
3440 |
|
break; |
3441 |
|
|
3442 |
case 0x000b: |
case 0x000b: |
3443 |
case 0x000c: |
case 0x000c: |
3444 |
case 0x0085: |
case 0x0085: |
3445 |
case 0x2028: |
case 0x2028: |
3446 |
case 0x2029: |
case 0x2029: |
3447 |
|
if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); |
3448 |
break; |
break; |
3449 |
} |
} |
3450 |
break; |
break; |
3596 |
case 0x000d: |
case 0x000d: |
3597 |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
if (eptr < md->end_subject && *eptr == 0x0a) eptr++; |
3598 |
break; |
break; |
3599 |
|
|
3600 |
case 0x000a: |
case 0x000a: |
3601 |
|
break; |
3602 |
|
|
3603 |
case 0x000b: |
case 0x000b: |
3604 |
case 0x000c: |
case 0x000c: |
3605 |
case 0x0085: |
case 0x0085: |
3606 |
|
if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); |
3607 |
break; |
break; |
3608 |
} |
} |
3609 |
break; |
break; |
3901 |
} |
} |
3902 |
else |
else |
3903 |
{ |
{ |
3904 |
if (c != 0x000a && c != 0x000b && c != 0x000c && |
if (c != 0x000a && |
3905 |
c != 0x0085 && c != 0x2028 && c != 0x2029) |
(md->bsr_anycrlf || |
3906 |
|
(c != 0x000b && c != 0x000c && |
3907 |
|
c != 0x0085 && c != 0x2028 && c != 0x2029))) |
3908 |
break; |
break; |
3909 |
eptr += len; |
eptr += len; |
3910 |
} |
} |
4094 |
} |
} |
4095 |
else |
else |
4096 |
{ |
{ |
4097 |
if (c != 0x000a && c != 0x000b && c != 0x000c && c != 0x0085) |
if (c != 0x000a && |
4098 |
|
(md->bsr_anycrlf || |
4099 |
|
(c != 0x000b && c != 0x000c && c != 0x0085))) |
4100 |
break; |
break; |
4101 |
eptr++; |
eptr++; |
4102 |
} |
} |
4457 |
md->lcc = tables + lcc_offset; |
md->lcc = tables + lcc_offset; |
4458 |
md->ctypes = tables + ctypes_offset; |
md->ctypes = tables + ctypes_offset; |
4459 |
|
|
4460 |
|
/* Handle different \R options. */ |
4461 |
|
|
4462 |
|
switch (options & (PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE)) |
4463 |
|
{ |
4464 |
|
case 0: |
4465 |
|
if ((re->options & (PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE)) != 0) |
4466 |
|
md->bsr_anycrlf = (re->options & PCRE_BSR_ANYCRLF) != 0; |
4467 |
|
else |
4468 |
|
#ifdef BSR_ANYCRLF |
4469 |
|
md->bsr_anycrlf = TRUE; |
4470 |
|
#else |
4471 |
|
md->bsr_anycrlf = FALSE; |
4472 |
|
#endif |
4473 |
|
break; |
4474 |
|
|
4475 |
|
case PCRE_BSR_ANYCRLF: |
4476 |
|
md->bsr_anycrlf = TRUE; |
4477 |
|
break; |
4478 |
|
|
4479 |
|
case PCRE_BSR_UNICODE: |
4480 |
|
md->bsr_anycrlf = FALSE; |
4481 |
|
break; |
4482 |
|
|
4483 |
|
default: return PCRE_ERROR_BADNEWLINE; |
4484 |
|
} |
4485 |
|
|
4486 |
/* Handle different types of newline. The three bits give eight cases. If |
/* Handle different types of newline. The three bits give eight cases. If |
4487 |
nothing is set at run time, whatever was used at compile time applies. */ |
nothing is set at run time, whatever was used at compile time applies. */ |
4488 |
|
|
4489 |
switch ((((options & PCRE_NEWLINE_BITS) == 0)? re->options : |
switch ((((options & PCRE_NEWLINE_BITS) == 0)? re->options : |
4490 |
(pcre_uint32)options) & PCRE_NEWLINE_BITS) |
(pcre_uint32)options) & PCRE_NEWLINE_BITS) |
4491 |
{ |
{ |
4492 |
case 0: newline = NEWLINE; break; /* Compile-time default */ |
case 0: newline = NEWLINE; break; /* Compile-time default */ |