Bug 48573 - platform without regex do not have also REG_XXX defines
authorAkira TAGOH <akira@tagoh.org>
Thu, 12 Apr 2012 02:01:12 +0000 (11:01 +0900)
committerAkira TAGOH <akira@tagoh.org>
Thu, 12 Apr 2012 02:01:12 +0000 (11:01 +0900)
Fix a build issue on the platforms where regex isn't available

configure.in
src/fcstr.c

index 39ae5a9..3f5c98b 100644 (file)
@@ -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,
index 9484d46..a6f0ba7 100644 (file)
@@ -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)