1169695Skan/* 2169695Skan 3169695Skan@deftypefn Supplemental char* strdup (const char *@var{s}) 4169695Skan 5169695SkanReturns a pointer to a copy of @var{s} in memory obtained from 6169695Skan@code{malloc}, or @code{NULL} if insufficient memory was available. 7169695Skan 8169695Skan@end deftypefn 9169695Skan 10169695Skan*/ 11169695Skan 12169695Skan#include <ansidecl.h> 13169695Skan#include <stddef.h> 14169695Skan 15169695Skanextern size_t strlen (const char*); 16169695Skanextern PTR malloc (size_t); 17169695Skanextern PTR memcpy (PTR, const PTR, size_t); 18169695Skan 19169695Skanchar * 20169695Skanstrdup(const char *s) 21169695Skan{ 22169695Skan size_t len = strlen (s) + 1; 23169695Skan char *result = (char*) malloc (len); 24169695Skan if (result == (char*) 0) 25169695Skan return (char*) 0; 26169695Skan return (char*) memcpy (result, s, len); 27169695Skan} 28