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-2005 University of Cambridge |
Copyright (c) 1997-2007 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 |
information about a compiled pattern. */ |
information about a compiled pattern. */ |
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 |
|
|
65 |
Returns: 0 if data returned, negative on error |
Returns: 0 if data returned, negative on error |
66 |
*/ |
*/ |
67 |
|
|
68 |
EXPORT int |
PCRE_EXP_DEFN int |
69 |
pcre_fullinfo(const pcre *argument_re, const pcre_extra *extra_data, int what, |
pcre_fullinfo(const pcre *argument_re, const pcre_extra *extra_data, int what, |
70 |
void *where) |
void *where) |
71 |
{ |
{ |
110 |
|
|
111 |
case PCRE_INFO_FIRSTBYTE: |
case PCRE_INFO_FIRSTBYTE: |
112 |
*((int *)where) = |
*((int *)where) = |
113 |
((re->options & PCRE_FIRSTSET) != 0)? re->first_byte : |
((re->flags & PCRE_FIRSTSET) != 0)? re->first_byte : |
114 |
((re->options & PCRE_STARTLINE) != 0)? -1 : -2; |
((re->flags & PCRE_STARTLINE) != 0)? -1 : -2; |
115 |
break; |
break; |
116 |
|
|
117 |
/* Make sure we pass back the pointer to the bit vector in the external |
/* Make sure we pass back the pointer to the bit vector in the external |
125 |
|
|
126 |
case PCRE_INFO_LASTLITERAL: |
case PCRE_INFO_LASTLITERAL: |
127 |
*((int *)where) = |
*((int *)where) = |
128 |
((re->options & PCRE_REQCHSET) != 0)? re->req_byte : -1; |
((re->flags & PCRE_REQCHSET) != 0)? re->req_byte : -1; |
129 |
break; |
break; |
130 |
|
|
131 |
case PCRE_INFO_NAMEENTRYSIZE: |
case PCRE_INFO_NAMEENTRYSIZE: |
144 |
*((const uschar **)where) = (const uschar *)(_pcre_default_tables); |
*((const uschar **)where) = (const uschar *)(_pcre_default_tables); |
145 |
break; |
break; |
146 |
|
|
147 |
|
case PCRE_INFO_OKPARTIAL: |
148 |
|
*((int *)where) = (re->flags & PCRE_NOPARTIAL) == 0; |
149 |
|
break; |
150 |
|
|
151 |
|
case PCRE_INFO_JCHANGED: |
152 |
|
*((int *)where) = (re->flags & PCRE_JCHANGED) != 0; |
153 |
|
break; |
154 |
|
|
155 |
|
case PCRE_INFO_HASCRORLF: |
156 |
|
*((int *)where) = (re->flags & PCRE_HASCRORLF) != 0; |
157 |
|
break; |
158 |
|
|
159 |
default: return PCRE_ERROR_BADOPTION; |
default: return PCRE_ERROR_BADOPTION; |
160 |
} |
} |
161 |
|
|