-/* Copyright (C) 1991, 1996, 1997, 1998, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-#if HAVE_CONFIG_H
+#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#if defined _LIBC || defined STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else
-char *malloc ();
-char *memcpy ();
+#ifndef _LIBC
+/* Get specification. */
+#include "strdup.h"
#endif
+#include <stdlib.h>
+#include <string.h>
+
#undef __strdup
#undef strdup
# define __strdup strdup
#endif
-/* Duplicate S, returning an identical malloc'd string.
- Return NULL if out of memory. */
-
+/* Duplicate S, returning an identical malloc'd string. */
char *
__strdup (const char *s)
{