1 /* xstrdup.c -- Duplicate a string in memory, using xmalloc. 2 This trivial function is in the public domain. 3 Ian Lance Taylor, Cygnus Support, December 1995. */ 4 5 /* 6 7 @deftypefn Replacement char* xstrdup (const char *@var{s}) 8 9 Duplicates a character string without fail, using @code{xmalloc} to 10 obtain memory. 11 12 @end deftypefn 13 14 */ 15 16 #ifdef HAVE_CONFIG_H 17 #include "config.h" 18 #endif 19 #include <sys/types.h> 20 #ifdef HAVE_STRING_H 21 #include <string.h> 22 #else 23 # ifdef HAVE_STRINGS_H 24 # include <strings.h> 25 # endif 26 #endif 27 #include "ansidecl.h" 28 #include "libiberty.h" 29 30 char * xstrdup(const char * s)31xstrdup (const char *s) 32 { 33 register size_t len = strlen (s) + 1; 34 register char *ret = XNEWVEC (char, len); 35 return (char *) memcpy (ret, s, len); 36 } 37