diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2010-12-29 18:06:04 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2010-12-29 18:06:04 +0000 |
commit | 5533143958b16ed87026cdf533fc4d544b2d712f (patch) | |
tree | 3921d20a69b2dcb4802951acbb037c5448868979 /src/svgtiny.c | |
parent | 9730f6727c1ceac012441f5ffb4bce3ab0759526 (diff) | |
download | libsvgtiny-5533143958b16ed87026cdf533fc4d544b2d712f.tar.gz libsvgtiny-5533143958b16ed87026cdf533fc4d544b2d712f.tar.bz2 |
Use built-in strndup if the platform we're targetting doesn't have one
svn path=/trunk/libsvgtiny/; revision=11140
Diffstat (limited to 'src/svgtiny.c')
-rw-r--r-- | src/svgtiny.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/svgtiny.c b/src/svgtiny.c index 5a6e988..af1db24 100644 --- a/src/svgtiny.c +++ b/src/svgtiny.c @@ -5,7 +5,6 @@ * Copyright 2008-2009 James Bursa <james@semichrome.net> */ -#define _GNU_SOURCE /* for strndup */ #include <assert.h> #include <math.h> #include <setjmp.h> @@ -1232,3 +1231,23 @@ void svgtiny_free(struct svgtiny_diagram *svg) free(svg); } +#ifndef HAVE_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 == NULL) + return NULL; + + memcpy(s2, s, len); + s2[len] = '\0'; + + return s2; +} +#endif + |