Wed Dec 10 23:32:47 2003 Ben Pfaff <blp@gnu.org>
[pspp] / lib / misc / stpcpy.c
1 /* PSPP - computes sample statistics.
2    Copyright (C) 1997, 1998 Free Software Foundation, Inc.
3    Written by Ben Pfaff <blp@gnu.org>.
4
5    This program is free software; you can redistribute it and/or
6    modify it under the terms of the GNU General Public License as
7    published by the Free Software Foundation; either version 2 of the
8    License, or (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful, but
11    WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program; if not, write to the Free Software
17    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18    02111-1307, USA. */
19
20 #include <stddef.h>
21
22 /* Some old versions of Linux libc prototype stpcpy() in string.h but
23    fail to include it in their C library.  By not including string.h
24    on these systems we can avoid conflicting prototypes.  Of course,
25    in theory this might be dangerous, if the prototype specifies some
26    weird calling convention, but for GNU/Linux at least it shouldn't
27    cause problems.
28
29    This might be needed for systems other than GNU/Linux; let me
30    know. */
31
32 #ifdef __linux__
33 void *memcpy (void *, const void *, size_t);
34 size_t strlen (const char *);
35 #else
36 #include "str.h"
37 #endif
38
39 /* Copies SRC to DEST, returning the address of the terminating '\0'
40    in DEST. */
41 char *
42 stpcpy (char *dest, const char *src)
43 {
44   int len = strlen (src);
45   memcpy (dest, src, len + 1);
46   return &dest[len];
47 }