/* * Copyright (C) 2002 Manuel Novoa III * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> * * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ #include "_string.h" #include <stdlib.h> /* Experimentally off - libc_hidden_proto(strndup) */ /* Experimentally off - libc_hidden_proto(strnlen) */ /* Experimentally off - libc_hidden_proto(memcpy) */ char *strndup(register const char *s1, size_t n) { register char *s; n = strnlen(s1,n); /* Avoid problems if s1 not nul-terminated. */ if ((s = malloc(n + 1)) != NULL) { memcpy(s, s1, n); s[n] = 0; } return s; } libc_hidden_def(strndup)