From cc2f53b442d5f1800d7c3d6f478e669cd386f7b5 Mon Sep 17 00:00:00 2001 From: John-Mark Bell Date: Fri, 17 Jan 2014 18:52:49 +0000 Subject: Fix building for Win32 --- src/nsgenbind-ast.c | 22 ++++++++++++++++++++++ src/nsgenbind-ast.h | 5 +++++ 2 files changed, 27 insertions(+) diff --git a/src/nsgenbind-ast.c b/src/nsgenbind-ast.c index 6b7bf5d..851cbeb 100644 --- a/src/nsgenbind-ast.c +++ b/src/nsgenbind-ast.c @@ -445,3 +445,25 @@ int genbind_parsefile(char *infilename, struct genbind_node **ast) return nsgenbind_parse(ast); } + +#ifdef NEED_STRNDUP + +char *strndup(const char *s, size_t n) +{ + size_t len; + char *s2; + + for (len = 0; len != n && s[len]; len++) + continue; + + s2 = malloc(len + 1); + if (!s2) + return 0; + + memcpy(s2, s, len); + s2[len] = 0; + return s2; +} + +#endif + diff --git a/src/nsgenbind-ast.h b/src/nsgenbind-ast.h index 4e2ffee..6513f7f 100644 --- a/src/nsgenbind-ast.h +++ b/src/nsgenbind-ast.h @@ -126,4 +126,9 @@ char *genbind_node_gettext(struct genbind_node *node); struct genbind_node *genbind_node_getnode(struct genbind_node *node); int genbind_node_getint(struct genbind_node *node); +#ifdef _WIN32 +#define NEED_STRNDUP 1 +char *strndup(const char *s, size_t n); +#endif + #endif -- cgit v1.2.3