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