From 5d1d4918eebdaaf0ab0a5baf28c502c32c21f12e Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 4 Dec 2015 15:23:18 -0800 Subject: [PATCH] Fix typo in strncat, wcsncat manual entries * manual/string.texi (Copying and Concatenation): Fix typos in sample implementations of strncat and wcsncat, by having them use the old value of the destination length, not the new one. --- ChangeLog | 7 +++++++ manual/string.texi | 10 ++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index edd7ccf33a..379ba75ee1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2015-12-04 Paul Eggert + + Fix typo in strncat, wcsncat manual entries + * manual/string.texi (Copying and Concatenation): Fix typos in + sample implementations of strncat and wcsncat, by having them use + the old value of the destination length, not the new one. + 2015-12-04 Joseph Myers [BZ #16961] diff --git a/manual/string.texi b/manual/string.texi index 4f276a95ae..8f0f5fa1d2 100644 --- a/manual/string.texi +++ b/manual/string.texi @@ -996,8 +996,9 @@ The @code{strncat} function could be implemented like this: char * strncat (char *to, const char *from, size_t size) @{ - memcpy (to + strlen (to), from, strnlen (from, size)); - to[strlen (to) + strnlen (from, size)] = '\0'; + size_t len = strlen (to); + memcpy (to + len, from, strnlen (from, size)); + to[len + strnlen (from, size)] = '\0'; return to; @} @end group @@ -1025,8 +1026,9 @@ wchar_t * wcsncat (wchar_t *restrict wto, const wchar_t *restrict wfrom, size_t size) @{ - memcpy (wto + wcslen (wto), wfrom, wcsnlen (wfrom, size) * sizeof (wchar_t)); - wto[wcslen (to) + wcsnlen (wfrom, size)] = '\0'; + size_t len = wcslen (wto); + memcpy (wto + len, wfrom, wcsnlen (wfrom, size) * sizeof (wchar_t)); + wto[len + wcsnlen (wfrom, size)] = L'\0'; return wto; @} @end group