projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
install-reloc: Support multi-binary installation.
[gnulib.git]
/
lib
/
stpncpy.c
diff --git
a/lib/stpncpy.c
b/lib/stpncpy.c
index
9c0b167
..
8b14fb9
100644
(file)
--- a/
lib/stpncpy.c
+++ b/
lib/stpncpy.c
@@
-1,11
+1,12
@@
-/* Copyright (C) 1993, 1995-1997, 2002-2003, 2005-2006 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995-1997, 2002-2003, 2005-2007, 2009-2013 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@gnu.org.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@gnu.org.
- This program is free software
;
you can redistribute it and/or modify it
+ 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
under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version
2, or (at your option)
any
+ 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,
later version.
This program is distributed in the hope that it will be useful,
@@
-14,15
+15,14
@@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
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, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* This is almost copied from strncpy.c, written by Torbjorn Granlund. */
#include <config.h>
/* Specification. */
/* This is almost copied from strncpy.c, written by Torbjorn Granlund. */
#include <config.h>
/* Specification. */
-#include
"stpncpy.h"
+#include
<string.h>
#ifndef weak_alias
# define __stpncpy stpncpy
#ifndef weak_alias
# define __stpncpy stpncpy
@@
-31,7
+31,7
@@
/* Copy no more than N bytes of SRC to DST, returning a pointer past the
last non-NUL byte written into DST. */
char *
/* Copy no more than N bytes of SRC to DST, returning a pointer past the
last non-NUL byte written into DST. */
char *
-
__stpncpy
(char *dest, const char *src, size_t n)
+
(__stpncpy)
(char *dest, const char *src, size_t n)
{
char c;
char *s = dest;
{
char c;
char *s = dest;
@@
-41,26
+41,26
@@
__stpncpy (char *dest, const char *src, size_t n)
size_t n4 = n >> 2;
for (;;)
size_t n4 = n >> 2;
for (;;)
- {
- c = *src++;
- *dest++ = c;
- if (c == '\0')
- break;
- c = *src++;
- *dest++ = c;
- if (c == '\0')
- break;
- c = *src++;
- *dest++ = c;
- if (c == '\0')
- break;
- c = *src++;
- *dest++ = c;
- if (c == '\0')
- break;
- if (--n4 == 0)
- goto last_chars;
- }
+
{
+
c = *src++;
+
*dest++ = c;
+
if (c == '\0')
+
break;
+
c = *src++;
+
*dest++ = c;
+
if (c == '\0')
+
break;
+
c = *src++;
+
*dest++ = c;
+
if (c == '\0')
+
break;
+
c = *src++;
+
*dest++ = c;
+
if (c == '\0')
+
break;
+
if (--n4 == 0)
+
goto last_chars;
+
}
n -= dest - s;
goto zero_fill;
}
n -= dest - s;
goto zero_fill;
}
@@
-76,9
+76,9
@@
__stpncpy (char *dest, const char *src, size_t n)
--n;
*dest++ = c;
if (c == '\0')
--n;
*dest++ = c;
if (c == '\0')
- break;
+
break;
if (n == 0)
if (n == 0)
- return dest;
+
return dest;
}
zero_fill:
}
zero_fill: