summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2019-10-25 21:03:23 -0500
committerJoshua Watt <JPEWhacker@gmail.com>2019-11-05 08:59:58 -0600
commit4a1f348c20157db7bd7c759fdeb23fbe8729c571 (patch)
tree3a788043096ae2a98f10e10ad94fc76236be4632
parentadding O_RDWR flag in the open() (diff)
downloadwayland-4a1f348c20157db7bd7c759fdeb23fbe8729c571.tar
wayland-4a1f348c20157db7bd7c759fdeb23fbe8729c571.tar.gz
wayland-4a1f348c20157db7bd7c759fdeb23fbe8729c571.tar.bz2
wayland-4a1f348c20157db7bd7c759fdeb23fbe8729c571.tar.lz
wayland-4a1f348c20157db7bd7c759fdeb23fbe8729c571.tar.xz
wayland-4a1f348c20157db7bd7c759fdeb23fbe8729c571.tar.zst
wayland-4a1f348c20157db7bd7c759fdeb23fbe8729c571.zip
scanner: Add configure check for strndup
Some platforms may not have strndup() (e.g. MinGW), so provide a equivalent implementation if it's not found. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
-rw-r--r--configure.ac2
-rw-r--r--src/scanner.c11
2 files changed, 12 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index c332107..eb85977 100644
--- a/configure.ac
+++ b/configure.ac
@@ -63,7 +63,7 @@ fi
AC_SUBST(GCC_CFLAGS)
AC_CHECK_HEADERS([sys/prctl.h])
-AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl memfd_create])
+AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl memfd_create strndup])
# *BSD don't have libdl, but they have its functions in libc
WESTON_SEARCH_LIBS([DL], [dl], [dlsym])
diff --git a/src/scanner.c b/src/scanner.c
index 7ed1ba1..2b3adbd 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -975,6 +975,17 @@ verify_arguments(struct parse_context *ctx,
}
+#ifndef HAVE_STRNDUP
+char *
+strndup(const char *s, size_t size)
+{
+ char *r = malloc(size + 1);
+ strncpy(r, s, size);
+ r[size] = '\0';
+ return r;
+}
+#endif
+
static void
end_element(void *data, const XML_Char *name)
{