Resuscitate POSIX subsystem from revision 21378.
[reactos.git] / rossubsys / posix / lib / psxdll / string / strdup.c
diff --git a/rossubsys/posix/lib/psxdll/string/strdup.c b/rossubsys/posix/lib/psxdll/string/strdup.c
new file mode 100644 (file)
index 0000000..ee37f97
--- /dev/null
@@ -0,0 +1,44 @@
+/* $Id: strdup.c,v 1.4 2002/10/29 04:45:42 rex Exp $
+ */
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS POSIX+ Subsystem
+ * FILE:        subsys/psx/lib/psxdll/string/strdup.c
+ * PURPOSE:     Duplicate a string
+ * PROGRAMMER:  KJK::Hyperion <noog@libero.it>
+ * UPDATE HISTORY:
+ *              21/01/2002: Created
+ */
+
+#include <string.h>
+#include <stdlib.h>
+#include <psx/debug.h>
+
+char *strdup(const char *s1)
+{
+ char *pchRetBuf;
+ int   nStrLen;
+
+ HINT("strdup() is inefficient - consider dropping zero-terminated strings");
+
+ if (s1 == 0)
+  return 0;
+
+ nStrLen = strlen(s1);
+
+ /* allocate enough buffer space for s1 and the null terminator */
+ pchRetBuf = (char *) malloc(nStrLen + 1);
+
+ if (pchRetBuf == 0)
+  /* memory allocation failed */
+  return 0;
+
+ /* copy the string */
+ strcpy(pchRetBuf, s1);
+
+ return pchRetBuf;
+
+}
+
+/* EOF */
+