| 6 |
and semantics are as close as possible to those of the Perl 5 language. |
and semantics are as close as possible to those of the Perl 5 language. |
| 7 |
|
|
| 8 |
Written by Philip Hazel |
Written by Philip Hazel |
| 9 |
Copyright (c) 1997-2006 University of Cambridge |
Copyright (c) 1997-2008 University of Cambridge |
| 10 |
|
|
| 11 |
----------------------------------------------------------------------------- |
----------------------------------------------------------------------------- |
| 12 |
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
| 42 |
supporting functions. */ |
supporting functions. */ |
| 43 |
|
|
| 44 |
|
|
| 45 |
|
#ifdef HAVE_CONFIG_H |
| 46 |
|
#include "config.h" |
| 47 |
|
#endif |
| 48 |
|
|
| 49 |
#include "pcre_internal.h" |
#include "pcre_internal.h" |
| 50 |
|
|
| 51 |
|
|
| 217 |
tcode += 1 + LINK_SIZE; |
tcode += 1 + LINK_SIZE; |
| 218 |
break; |
break; |
| 219 |
|
|
| 220 |
|
/* SKIPZERO skips the bracket. */ |
| 221 |
|
|
| 222 |
|
case OP_SKIPZERO: |
| 223 |
|
do tcode += GET(tcode,1); while (*tcode == OP_ALT); |
| 224 |
|
tcode += 1 + LINK_SIZE; |
| 225 |
|
break; |
| 226 |
|
|
| 227 |
/* Single-char * or ? sets the bit and tries the next item */ |
/* Single-char * or ? sets the bit and tries the next item */ |
| 228 |
|
|
| 229 |
case OP_STAR: |
case OP_STAR: |
| 502 |
NULL on error or if no optimization possible |
NULL on error or if no optimization possible |
| 503 |
*/ |
*/ |
| 504 |
|
|
| 505 |
PCRE_DATA_SCOPE pcre_extra * |
PCRE_EXP_DEFN pcre_extra * |
| 506 |
pcre_study(const pcre *external_re, int options, const char **errorptr) |
pcre_study(const pcre *external_re, int options, const char **errorptr) |
| 507 |
{ |
{ |
| 508 |
uschar start_bits[32]; |
uschar start_bits[32]; |
| 534 |
a multiline pattern that matches only at "line starts", no further processing |
a multiline pattern that matches only at "line starts", no further processing |
| 535 |
at present. */ |
at present. */ |
| 536 |
|
|
| 537 |
if ((re->options & (PCRE_ANCHORED|PCRE_FIRSTSET|PCRE_STARTLINE)) != 0) |
if ((re->options & PCRE_ANCHORED) != 0 || |
| 538 |
|
(re->flags & (PCRE_FIRSTSET|PCRE_STARTLINE)) != 0) |
| 539 |
return NULL; |
return NULL; |
| 540 |
|
|
| 541 |
/* Set the character tables in the block that is passed around */ |
/* Set the character tables in the block that is passed around */ |