summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2012-04-12 11:01:12 +0900
committerAkira TAGOH <akira@tagoh.org>2012-04-12 11:01:12 +0900
commitac6271dbac32086ce60845efc4d87e669f37796a (patch)
treef23da1172d996d8bde0a39dc2b66dcbd8826941b
parent9231d79ad180f992f9bbef4f3127576870a75075 (diff)
Bug 48573 - platform without regex do not have also REG_XXX defines
Fix a build issue on the platforms where regex isn't available
-rw-r--r--configure.in9
-rw-r--r--src/fcstr.c6
2 files changed, 13 insertions, 2 deletions
diff --git a/configure.in b/configure.in
index 39ae5a9..3f5c98b 100644
--- a/configure.in
+++ b/configure.in
@@ -136,6 +136,15 @@ AC_FUNC_MMAP
AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror regexec regfree])
#
+# regex
+#
+use_regex=0
+if test "x$ac_cv_func_regcomp" = "xyes" -a "x$ac_cv_func_regerror" = "xyes" -a "x$ac_cv_func_regexec" = "xyes" -a "x$ac_cv_func_regfree"; then
+ use_regex=1
+fi
+AC_DEFINE_UNQUOTED(USE_REGEX,$use_regex,[Use regex.])
+
+#
# Checks for iconv
#
AC_ARG_WITH(libiconv,
diff --git a/src/fcstr.c b/src/fcstr.c
index 9484d46..a6f0ba7 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -272,11 +272,11 @@ FcStrCmp (const FcChar8 *s1, const FcChar8 *s2)
return (int) c1 - (int) c2;
}
+#ifdef USE_REGEX
static FcBool
_FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex, int cflags, int eflags)
{
int ret = -1;
-#if defined (HAVE_REGCOMP) && defined (HAVE_REGERROR) && defined (HAVE_REGEXEC) && defined (HAVE_REGFREE)
regex_t reg;
if ((ret = regcomp (&reg, (const char *)regex, cflags)) != 0)
@@ -302,10 +302,12 @@ _FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex, int cflags, int eflags)
}
}
regfree (&reg);
-#endif
return ret == 0 ? FcTrue : FcFalse;
}
+#else
+# define _FcStrRegexCmp(_s_, _regex_) (FcFalse)
+#endif
FcBool
FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex)