From 66ee55e5947682d10eed7a36b9da72a8cf6a40f2 Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Sun, 3 Mar 2013 09:52:21 +0100 Subject: Add compat strndup() function Not available on Win32 and ancient unixes --- common/compat.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'common/compat.c') diff --git a/common/compat.c b/common/compat.c index af28e1d..ff8ee08 100644 --- a/common/compat.c +++ b/common/compat.c @@ -424,6 +424,28 @@ memdup (const void *data, #endif /* HAVE_MEMDUP */ +#ifndef HAVE_STRNDUP + +char * +strndup (const char *data, + size_t length) +{ + char *ret; + size_t len; + + len = strlen (data); + if (length > len) + length = len; + + ret = memdup (data, length + 1); + if (ret != NULL) + ret[length] = 0; + + return ret; +} + +#endif /* HAVE_STRDUP */ + #ifndef HAVE_STRCONCAT #include -- cgit v1.1