X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=inline;f=lib%2Fstpcpy.c;h=8d7dfb07a9ad840ce26313455ebb1e0adec545aa;hb=28df8b1e1d486c3891091a5c08eb0c3311102938;hp=4a70746bad7b150b9500f77853458eff6f629ed3;hpb=d87c39464604e74f580c7fae835be31a4c125c36;p=gnulib.git diff --git a/lib/stpcpy.c b/lib/stpcpy.c index 4a70746ba..8d7dfb07a 100644 --- a/lib/stpcpy.c +++ b/lib/stpcpy.c @@ -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 . */ +#include + +#include + +#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