diff options
Diffstat (limited to 'libiberty/strndup.c')
-rw-r--r-- | libiberty/strndup.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/libiberty/strndup.c b/libiberty/strndup.c deleted file mode 100644 index 9e9b4e299..000000000 --- a/libiberty/strndup.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Implement the strndup function. - Copyright (C) 2005 Free Software Foundation, Inc. - Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. - -This file is part of the libiberty library. -Libiberty is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -Libiberty is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with libiberty; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, -Boston, MA 02110-1301, USA. */ - -/* - -@deftypefn Extension char* strndup (const char *@var{s}, size_t @var{n}) - -Returns a pointer to a copy of @var{s} with at most @var{n} characters -in memory obtained from @code{malloc}, or @code{NULL} if insufficient -memory was available. The result is always NUL terminated. - -@end deftypefn - -*/ - -#include "ansidecl.h" -#include <stddef.h> - -extern size_t strlen (const char*); -extern PTR malloc (size_t); -extern PTR memcpy (PTR, const PTR, size_t); - -char * -strndup (const char *s, size_t n) -{ - char *result; - size_t len = strlen (s); - - if (n < len) - len = n; - - result = (char *) malloc (len + 1); - if (!result) - return 0; - - result[len] = '\0'; - return (char *) memcpy (result, s, len); -} |