diff options
-rw-r--r-- | src/nsgenbind-ast.c | 22 | ||||
-rw-r--r-- | src/nsgenbind-ast.h | 5 |
2 files changed, 27 insertions, 0 deletions
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 |