view lib/stpcpy.c @ 40086:d6de7c427079

stdopen: modernize and simplify * lib/stdopen.c: Update copyright date Do not include sys/types.h; no longer needed these days. (stdopen): Use C99-style decl in loop. Return int errno value, rather than just a bool. Do not worry about fd mismatches, since the caller cares only if 0, 1, 2 are occupied. * lib/stdopen.h: No need to include <stdbool.h>. * m4/stdopen.m4: Remove. * modules/stdopen: New file.
author Paul Eggert <eggert@cs.ucla.edu>
date Sat, 05 Jan 2019 18:02:32 -0800
parents b06060465f09
children
line wrap: on
line source

/* stpcpy.c -- copy a string and return pointer to end of new string
   Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2019 Free Software
   Foundation, Inc.

   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 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.

   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.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <https://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 (char *dest, const char *src)
{
  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