summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
authorMikael Magnusson <mikma@users.sourceforge.net>2019-04-11 01:29:12 +0200
committerMikael Magnusson <mikma@users.sourceforge.net>2021-01-12 23:34:17 +0100
commit6ae9a32cd656e4398c11e851e959a0dd85f3c072 (patch)
treeebef928017286268ab0bcf80ac668217c9e6d784 /conf
parent50f4916fce668186c270550053978e13cb700f8a (diff)
Android: Disable include patterns if glob is unsupported
Because of missing glob() in NDK platforms before 28
Diffstat (limited to 'conf')
-rw-r--r--conf/cf-lex.l10
1 files changed, 10 insertions, 0 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l
index 05288b1a..cd720cdf 100644
--- a/conf/cf-lex.l
+++ b/conf/cf-lex.l
@@ -27,13 +27,16 @@
%{
#undef REJECT /* Avoid name clashes */
+#include "sysdep/config.h"
#include <errno.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdint.h>
#include <unistd.h>
#include <libgen.h>
+#ifdef HAVE_GLOB
#include <glob.h>
+#endif
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -461,7 +464,9 @@ cf_include(char *arg, int alen)
struct include_file_stack *base_ifs = ifs;
int new_depth, rv, i;
char *patt;
+#ifdef HAVE_GLOB
glob_t g = {};
+#endif
new_depth = ifs->depth + 1;
if (new_depth > MAX_INCLUDE_DEPTH)
@@ -491,6 +496,7 @@ cf_include(char *arg, int alen)
return;
}
+#ifdef HAVE_GLOB
/* Expand the pattern */
rv = glob(patt, GLOB_ERR | GLOB_NOESCAPE, NULL, &g);
if (rv == GLOB_ABORTED)
@@ -526,6 +532,10 @@ cf_include(char *arg, int alen)
globfree(&g);
enter_ifs(ifs);
+#else
+ cf_error("Pattern match unsupported %s: %m", patt);
+ return;
+#endif /* !HAVE_GLOB */
}
static int