From 38ce66918c6f34065a95de8968369445943897b1 Mon Sep 17 00:00:00 2001 From: Bron Gondwana Date: Thu, 19 Mar 2009 00:00:38 -0400 Subject: [PATCH] Use UTF8 comparison functions if PCRE is enabled --- bc_eval.c | 6 +++++- sieve.y | 9 +++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/bc_eval.c b/bc_eval.c index af9c002..b5e4e00 100644 --- a/bc_eval.c +++ b/bc_eval.c @@ -126,7 +126,11 @@ static regex_t * bc_compile_regex(const char *s, int ctag, { int ret; regex_t *reg = (regex_t *) xmalloc(sizeof(regex_t)); - + +#ifdef HAVE_PCREPOSIX_H + /* support UTF8 comparisons */ + ctag |= REG_UTF8; +#endif if ( (ret=regcomp(reg, s, ctag)) != 0) { (void) regerror(ret, reg, errmsg, errsiz); diff --git a/sieve.y b/sieve.y index 3a813da..addac62 100644 --- a/sieve.y +++ b/sieve.y @@ -1200,12 +1200,17 @@ static int verify_regex(char *s, int cflags) char errbuf[100]; regex_t *reg = (regex_t *) xmalloc(sizeof(regex_t)); - if ((ret = regcomp(reg, s, cflags)) != 0) { +#ifdef HAVE_PCREPOSIX_H + /* support UTF8 comparisons */ + cflags |= REG_UTF8; +#endif + + if ((ret = regcomp(reg, s, cflags)) != 0) { (void) regerror(ret, reg, errbuf, sizeof(errbuf)); yyerror(errbuf); free(reg); return 0; - } + } free(reg); return 1; } -- 1.5.6.5