summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch
blob: c4435875ad4718a9ccb93eb464cfca29afc6b663 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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)
 {