100bf4279Sespie /* xstrdup.c -- Duplicate a string in memory, using xmalloc. 200bf4279Sespie This trivial function is in the public domain. 300bf4279Sespie Ian Lance Taylor, Cygnus Support, December 1995. */ 400bf4279Sespie 59588ddcfSespie /* 69588ddcfSespie 79588ddcfSespie @deftypefn Replacement char* xstrdup (const char *@var{s}) 89588ddcfSespie 99588ddcfSespie Duplicates a character string without fail, using @code{xmalloc} to 109588ddcfSespie obtain memory. 119588ddcfSespie 129588ddcfSespie @end deftypefn 139588ddcfSespie 149588ddcfSespie */ 159588ddcfSespie 1600bf4279Sespie #include <sys/types.h> 1700bf4279Sespie #ifdef HAVE_CONFIG_H 1800bf4279Sespie #include "config.h" 1900bf4279Sespie #endif 2000bf4279Sespie #ifdef HAVE_STRING_H 2100bf4279Sespie #include <string.h> 22*20fce977Smiod #else 23*20fce977Smiod # ifdef HAVE_STRINGS_H 24*20fce977Smiod # include <strings.h> 25*20fce977Smiod # endif 2600bf4279Sespie #endif 2700bf4279Sespie #include "ansidecl.h" 2800bf4279Sespie #include "libiberty.h" 2900bf4279Sespie 3000bf4279Sespie char * xstrdup(const char * s)31*20fce977Smiodxstrdup (const char *s) 3200bf4279Sespie { 3300bf4279Sespie register size_t len = strlen (s) + 1; 34*20fce977Smiod register char *ret = XNEWVEC (char, len); 35*20fce977Smiod return (char *) memcpy (ret, s, len); 3600bf4279Sespie } 37