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