1169695Skan/* xstrdup.c -- Duplicate a string in memory, using xmalloc. 2169695Skan This trivial function is in the public domain. 3169695Skan Ian Lance Taylor, Cygnus Support, December 1995. */ 4169695Skan 5169695Skan/* 6169695Skan 7169695Skan@deftypefn Replacement char* xstrdup (const char *@var{s}) 8169695Skan 9169695SkanDuplicates a character string without fail, using @code{xmalloc} to 10169695Skanobtain memory. 11169695Skan 12169695Skan@end deftypefn 13169695Skan 14169695Skan*/ 15169695Skan 16169695Skan#include <sys/types.h> 17169695Skan#ifdef HAVE_CONFIG_H 18169695Skan#include "config.h" 19169695Skan#endif 20169695Skan#ifdef HAVE_STRING_H 21169695Skan#include <string.h> 22169695Skan#else 23169695Skan# ifdef HAVE_STRINGS_H 24169695Skan# include <strings.h> 25169695Skan# endif 26169695Skan#endif 27169695Skan#include "ansidecl.h" 28169695Skan#include "libiberty.h" 29169695Skan 30169695Skanchar * 31169695Skanxstrdup (const char *s) 32169695Skan{ 33169695Skan register size_t len = strlen (s) + 1; 34169695Skan register char *ret = XNEWVEC (char, len); 35169695Skan return (char *) memcpy (ret, s, len); 36169695Skan} 37