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-2007 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 |
#ifdef HAVE_CONFIG_H |
46 |
#include <config.h> |
#include "config.h" |
47 |
#endif |
#endif |
48 |
|
|
49 |
#include "pcre_internal.h" |
#include "pcre_internal.h" |
50 |
|
|
217 |
tcode += 1 + LINK_SIZE; |
tcode += 1 + LINK_SIZE; |
218 |
break; |
break; |
219 |
|
|
220 |
|
/* SKIPZERO skips the bracket. */ |
221 |
|
|
222 |
|
case OP_SKIPZERO: |
223 |
|
tcode++; |
224 |
|
do tcode += GET(tcode,1); while (*tcode == OP_ALT); |
225 |
|
tcode += 1 + LINK_SIZE; |
226 |
|
break; |
227 |
|
|
228 |
/* Single-char * or ? sets the bit and tries the next item */ |
/* Single-char * or ? sets the bit and tries the next item */ |
229 |
|
|
230 |
case OP_STAR: |
case OP_STAR: |
349 |
switch(tcode[1]) |
switch(tcode[1]) |
350 |
{ |
{ |
351 |
case OP_ANY: |
case OP_ANY: |
352 |
|
case OP_ALLANY: |
353 |
return SSB_FAIL; |
return SSB_FAIL; |
354 |
|
|
355 |
case OP_NOT_DIGIT: |
case OP_NOT_DIGIT: |
504 |
NULL on error or if no optimization possible |
NULL on error or if no optimization possible |
505 |
*/ |
*/ |
506 |
|
|
507 |
PCRE_EXP_DEFN pcre_extra * |
PCRE_EXP_DEFN pcre_extra * PCRE_CALL_CONVENTION |
508 |
pcre_study(const pcre *external_re, int options, const char **errorptr) |
pcre_study(const pcre *external_re, int options, const char **errorptr) |
509 |
{ |
{ |
510 |
uschar start_bits[32]; |
uschar start_bits[32]; |
536 |
a multiline pattern that matches only at "line starts", no further processing |
a multiline pattern that matches only at "line starts", no further processing |
537 |
at present. */ |
at present. */ |
538 |
|
|
539 |
if ((re->options & (PCRE_ANCHORED|PCRE_FIRSTSET|PCRE_STARTLINE)) != 0) |
if ((re->options & PCRE_ANCHORED) != 0 || |
540 |
|
(re->flags & (PCRE_FIRSTSET|PCRE_STARTLINE)) != 0) |
541 |
return NULL; |
return NULL; |
542 |
|
|
543 |
/* Set the character tables in the block that is passed around */ |
/* Set the character tables in the block that is passed around */ |