string: remove unused strndup implementation

This commit is contained in:
Danny Robson 2016-02-26 12:11:26 +11:00
parent 1a92c38cb8
commit fe82fc256c
3 changed files with 3 additions and 43 deletions

View File

@ -49,9 +49,6 @@ AC_DEFINE([_XOPEN_SOURCE], [700], [use POSIX 2008])
AC_FUNC_MMAP
AC_CHECK_FUNC([strndup], [
AC_DEFINE([HAVE_STRNDUP], [], [strndup appears to be present])
])
AC_CHECK_HEADER([execinfo.h], [break])
AM_CONDITIONAL([HAVE_EXECINFO], [test x$ac_cv_header_execinfo_h = "xyes"])

View File

@ -14,12 +14,12 @@
* Copyright 2011 Danny Robson <danny@nerdcruft.net>
*/
#include "string.hpp"
#include "./string.hpp"
#include "./cast.hpp"
#include <cstring>
#include "cast.hpp"
// TODO: Horribly inefficient, but God help you if you're relying on this
// being efficient in the first place.
bool
@ -27,30 +27,3 @@ strbegins (const char *restrict str,
const char *restrict prefix) {
return 0 == strncmp (prefix, str, strlen (prefix));
}
#if !defined(HAVE_STRNDUP)
#include <cstdlib>
// Written by Niels Möller <nisse@lysator.liu.se>
// Placed in the public domain
char *
strndup (const char *restrict s, size_t size)
{
char *end = static_cast<char *> (memchr (s, 0, size));
if (end)
// Length + 1
size = sign_cast<size_t> (end - s) + 1u;
char * r = static_cast<char *> (malloc (size));
if (size) {
memcpy (r, s, size-1);
r[size-1] = '\0';
}
return r;
}
#endif

View File

@ -21,15 +21,5 @@ bool
strbegins(const char *restrict str,
const char *restrict prefix);
#if !defined(HAVE_STRNDUP)
#include <cstddef>
extern "C" {
char *
strndup (const char *restrict s, size_t size);
}
#endif
#endif // __UTIL_STRING_HPP