install-reloc: Support multi-binary installation.
[gnulib.git] / lib / stpcpy.c
index 4a70746..8d7dfb0 100644 (file)
@@ -1,30 +1,49 @@
 /* stpcpy.c -- copy a string and return pointer to end of new string
-    Copyright (C) 1989, 1990 Free Software Foundation.
+   Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2013 Free Software
+   Foundation, Inc.
 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2, or (at your option)
-    any later version.
+   NOTE: The canonical source of this file is maintained with the GNU C Library.
+   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
 
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 3 of the License, or any
+   later version.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-/* Copy SOURCE into DEST, stopping after copying the first '\0', and
-   return a pointer to the '\0' at the end of DEST;
-   in other words, return DEST + strlen (SOURCE). */
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#include <config.h>
+
+#include <string.h>
+
+#undef __stpcpy
+#ifdef _LIBC
+# undef stpcpy
+#endif
+
+#ifndef weak_alias
+# define __stpcpy stpcpy
+#endif
+
+/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
 char *
-stpcpy (dest, source)
-     char *dest;
-     char *source;
+__stpcpy (char *dest, const char *src)
 {
-  while ((*dest++ = *source++) != '\0')
-    /* Do nothing. */ ;
-  return dest - 1;
+  register char *d = dest;
+  register const char *s = src;
+
+  do
+    *d++ = *s;
+  while (*s++ != '\0');
+
+  return d - 1;
 }
+#ifdef weak_alias
+weak_alias (__stpcpy, stpcpy)
+#endif