OSDN Git Service

Yet more Objective-C++...
[pf3gnuchains/gcc-fork.git] / libiberty / xstrdup.c
index 3424128..c04623d 100644 (file)
@@ -2,22 +2,35 @@
    This trivial function is in the public domain.
    Ian Lance Taylor, Cygnus Support, December 1995.  */
 
+/*
+
+@deftypefn Replacement char* xstrdup (const char *@var{s})
+
+Duplicates a character string without fail, using @code{xmalloc} to
+obtain memory.
+
+@end deftypefn
+
+*/
+
+#include <sys/types.h>
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
-#include <sys/types.h> /* For `size_t' */
 #ifdef HAVE_STRING_H
 #include <string.h>
+#else
+# ifdef HAVE_STRINGS_H
+#  include <strings.h>
+# endif
 #endif
 #include "ansidecl.h"
 #include "libiberty.h"
 
 char *
-xstrdup (s)
-  const char *s;
+xstrdup (const char *s)
 {
   register size_t len = strlen (s) + 1;
   register char *ret = xmalloc (len);
-  memcpy (ret, s, len);
-  return ret;
+  return (char *) memcpy (ret, s, len);
 }