| 94 |
#include "pcre.h" |
#include "pcre.h" |
| 95 |
#include "pcre_internal.h" |
#include "pcre_internal.h" |
| 96 |
|
|
| 97 |
/* We need access to the data tables that PCRE uses. So as not to have to keep |
/* We need access to some of the data tables that PCRE uses. So as not to have |
| 98 |
two copies, we include the source file here, changing the names of the external |
to keep two copies, we include the source file here, changing the names of the |
| 99 |
symbols to prevent clashes. */ |
external symbols to prevent clashes. */ |
| 100 |
|
|
| 101 |
|
#define _pcre_ucp_gentype ucp_gentype |
| 102 |
#define _pcre_utf8_table1 utf8_table1 |
#define _pcre_utf8_table1 utf8_table1 |
| 103 |
#define _pcre_utf8_table1_size utf8_table1_size |
#define _pcre_utf8_table1_size utf8_table1_size |
| 104 |
#define _pcre_utf8_table2 utf8_table2 |
#define _pcre_utf8_table2 utf8_table2 |
| 1256 |
if (strncmp((char *)pp, "JS>", 3) == 0) |
if (strncmp((char *)pp, "JS>", 3) == 0) |
| 1257 |
{ |
{ |
| 1258 |
options |= PCRE_JAVASCRIPT_COMPAT; |
options |= PCRE_JAVASCRIPT_COMPAT; |
| 1259 |
pp += 3; |
pp += 3; |
| 1260 |
} |
} |
| 1261 |
else |
else |
| 1262 |
{ |
{ |
| 1263 |
int x = check_newline(pp, outfile); |
int x = check_newline(pp, outfile); |
| 1264 |
if (x == 0) goto SKIP_DATA; |
if (x == 0) goto SKIP_DATA; |
| 1265 |
options |= x; |
options |= x; |
| 1266 |
while (*pp++ != '>'); |
while (*pp++ != '>'); |
| 1267 |
} |
} |
| 1268 |
} |
} |
| 1269 |
break; |
break; |
| 1270 |
|
|
| 1806 |
{ |
{ |
| 1807 |
unsigned char buff8[8]; |
unsigned char buff8[8]; |
| 1808 |
int ii, utn; |
int ii, utn; |
| 1809 |
utn = ord2utf8(c, buff8); |
if (use_utf8) |
| 1810 |
for (ii = 0; ii < utn - 1; ii++) *q++ = buff8[ii]; |
{ |
| 1811 |
c = buff8[ii]; /* Last byte */ |
utn = ord2utf8(c, buff8); |
| 1812 |
|
for (ii = 0; ii < utn - 1; ii++) *q++ = buff8[ii]; |
| 1813 |
|
c = buff8[ii]; /* Last byte */ |
| 1814 |
|
} |
| 1815 |
|
else |
| 1816 |
|
{ |
| 1817 |
|
if (c > 255) |
| 1818 |
|
fprintf(outfile, "** Character \\x{%x} is greater than 255 and " |
| 1819 |
|
"UTF-8 mode is not enabled.\n" |
| 1820 |
|
"** Truncation will probably give the wrong result.\n", c); |
| 1821 |
|
} |
| 1822 |
p = pt + 1; |
p = pt + 1; |
| 1823 |
break; |
break; |
| 1824 |
} |
} |
| 2027 |
} |
} |
| 2028 |
*q = 0; |
*q = 0; |
| 2029 |
len = q - dbuffer; |
len = q - dbuffer; |
| 2030 |
|
|
| 2031 |
|
/* Move the data to the end of the buffer so that a read over the end of |
| 2032 |
|
the buffer will be seen by valgrind, even if it doesn't cause a crash. If |
| 2033 |
|
we are using the POSIX interface, we must include the terminating zero. */ |
| 2034 |
|
|
| 2035 |
|
#if !defined NOPOSIX |
| 2036 |
|
if (posix || do_posix) |
| 2037 |
|
{ |
| 2038 |
|
memmove(bptr + buffer_size - len - 1, bptr, len + 1); |
| 2039 |
|
bptr += buffer_size - len - 1; |
| 2040 |
|
} |
| 2041 |
|
else |
| 2042 |
|
#endif |
| 2043 |
|
{ |
| 2044 |
|
memmove(bptr + buffer_size - len, bptr, len); |
| 2045 |
|
bptr += buffer_size - len; |
| 2046 |
|
} |
| 2047 |
|
|
| 2048 |
if ((all_use_dfa || use_dfa) && find_match_limit) |
if ((all_use_dfa || use_dfa) && find_match_limit) |
| 2049 |
{ |
{ |