| From 3c8b4467a1ca229e72fb5223787ed400a19c65c0 Mon Sep 17 00:00:00 2001 |
| From: Joshua Watt <JPEWhacker@gmail.com> |
| Date: Fri, 25 Oct 2019 21:03:23 -0500 |
| Subject: [PATCH] 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. |
| |
| Upstream-Status: Accepted [4a1f348c20157db7bd7c759fdeb23fbe8729c571] |
| Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> |
| --- |
| configure.ac | 2 +- |
| src/scanner.c | 11 +++++++++++ |
| 2 files changed, 12 insertions(+), 1 deletion(-) |
| |
| diff --git a/configure.ac b/configure.ac |
| index 8d56f2b..1c99e21 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]) |
| +AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl strndup]) |
| |
| AC_ARG_ENABLE([libraries], |
| [AC_HELP_STRING([--disable-libraries], |
| diff --git a/src/scanner.c b/src/scanner.c |
| index a94be5d..27004bc 100644 |
| --- a/src/scanner.c |
| +++ b/src/scanner.c |
| @@ -916,6 +916,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) |
| { |