1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-12-24 17:51:17 +03:00

Tue Jul 23 18:13:37 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>

* sysdeps/mach/hurd/Makefile (rpcuserlibs): New variable.
	($(common-objpfx)libc.so): Move deps into that, use it.
	[$(subdir) = elf] ($(objpfx)librtld.so): Depend on
	$(rpcuserlibs:.so=_pic.a).
	* elf/Makefile ($(objpfx)librtld.so): Just depend on libc_pic.a; don't
	use $(LDLIBS-c.so).

Thu Jul 18 21:41:25 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/generic/stpncpy.c: Fix semantics to make `stpncpy (d, s,
 	n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'.
This commit is contained in:
Roland McGrath
1996-07-23 22:18:45 +00:00
parent b24be05f19
commit c7fd2f4783
4 changed files with 39 additions and 19 deletions

View File

@@ -24,15 +24,13 @@ Cambridge, MA 02139, USA. */
/* Copy no more than N characters of SRC to DEST, returning the address of
the last character written into DEST. */
the terminating '\0' in DEST, if any, or else DEST + N. */
char *
DEFUN(__stpncpy, (dest, src, n), char *dest AND CONST char *src AND size_t n)
{
reg_char c;
char *s = dest;
--dest;
if (n >= 4)
{
size_t n4 = n >> 2;
@@ -40,27 +38,27 @@ DEFUN(__stpncpy, (dest, src, n), char *dest AND CONST char *src AND size_t n)
for (;;)
{
c = *src++;
*++dest = c;
*dest++ = c;
if (c == '\0')
break;
c = *src++;
*++dest = c;
*dest++ = c;
if (c == '\0')
break;
c = *src++;
*++dest = c;
*dest++ = c;
if (c == '\0')
break;
c = *src++;
*++dest = c;
*dest++ = c;
if (c == '\0')
break;
if (--n4 == 0)
goto last_chars;
}
n = n - (dest - s) - 1;
n -= dest - s;
if (n == 0)
return dest;
return dest - 1;
goto zero_fill;
}
@@ -69,20 +67,22 @@ DEFUN(__stpncpy, (dest, src, n), char *dest AND CONST char *src AND size_t n)
if (n == 0)
return dest;
do
for (;;)
{
c = *src++;
*++dest = c;
*dest++ = c;
if (c == '\0')
break;
if (--n == 0)
return dest;
}
while (c != '\0');
--n;
zero_fill:
while (n-- > 0)
while (--n > 0)
dest[n] = '\0';
return dest;
return dest - 1;
}
weak_alias (__stpncpy, stpncpy)