Check for PCRE version and disable PCRE_UCP for <= 8.10

This commit is contained in:
Michael Stapelberg
2011-09-30 20:31:32 +01:00
parent c0d198bbc9
commit 3629934b0a
2 changed files with 8 additions and 1 deletions

View File

@ -25,9 +25,12 @@ struct regex *regex_new(const char *pattern) {
struct regex *re = scalloc(sizeof(struct regex));
re->pattern = sstrdup(pattern);
int options = PCRE_UTF8;
#ifdef PCRE_HAS_UCP
/* We use PCRE_UCP so that \B, \b, \D, \d, \S, \s, \W, \w and some POSIX
* character classes play nicely with Unicode */
int options = PCRE_UCP | PCRE_UTF8;
options |= PCRE_UCP;
#endif
while (!(re->regex = pcre_compile2(pattern, options, &errorcode, &error, &offset, NULL))) {
/* If the error is that PCRE was not compiled with UTF-8 support we
* disable it and try again */