1 /* stpcpy.c -- copy a string and return pointer to end of new string
2    Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2020 Free Software
3    Foundation, Inc.
4 
5    NOTE: The canonical source of this file is maintained with the GNU C Library.
6    Bugs can be reported to bug-glibc@prep.ai.mit.edu.
7 
8    This program is free software: you can redistribute it and/or modify it
9    under the terms of the GNU General Public License as published by the
10    Free Software Foundation; either version 3 of the License, or any
11    later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
20 
21 #include <config.h>
22 
23 #include <string.h>
24 
25 #undef __stpcpy
26 #ifdef _LIBC
27 # undef stpcpy
28 #endif
29 
30 #ifndef weak_alias
31 # define __stpcpy stpcpy
32 #endif
33 
34 /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
35 char *
__stpcpy(char * dest,const char * src)36 __stpcpy (char *dest, const char *src)
37 {
38   register char *d = dest;
39   register const char *s = src;
40 
41   do
42     *d++ = *s;
43   while (*s++ != '\0');
44 
45   return d - 1;
46 }
47 #ifdef weak_alias
48 weak_alias (__stpcpy, stpcpy)
49 #endif
50