This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Declare memccpy, strdup, strndup for C2X
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Fri, 9 Aug 2019 22:10:04 +0000
- Subject: Declare memccpy, strdup, strndup for C2X
- Ironport-sdr: +EiJnuTfZsXlctab7e3dOTMckoHhOCzHPW9oWYto9wDDVMnzGwRwYO2H5hv7fAElTgCK48pM1h kX2ilkzXAAiY1su+1PettNnjTk+eLLYhnXDoTrFBmeVkY4IGPJk6zC1pS4F09bmJo4dFKis+Sl IFcqHqmjNbgO9Jqt13I7OHzE3UxWEg/YA8agQuH6eqvakd6JI3q+2uUMMdUFmEttBuzbN46V07 UG35M/rCNsjEh6HnfJscUi2yFjnJlP0LBxrw0tNcE+wx3F5WypMecKVOKjRSqMq7ueZ0ZAqJfX Xfc=
- Ironport-sdr: Y0z4SxXmFQUAAdJXIJ3KLm1JAz7hsz/Ydb2eeeN8Wm+zXGKblF9L8bivAjwc+LB823308R2u4O AKla/Wzn7ATOF/YGPoScRtEhr9US0vsE71phrX+rukLabUtglJ11qP5ckRj1+w0GFQ/bDiveYi I+nrulU7MSuUTUbCy/2Jgf3UQRcUXjKtm1yDZDbBIMkH/LXUdmn9bm6SBQiADwqBRmEEqNvkyn Yq0yu/QsIgFB4pFfDt/L6t15vVGW2ZEYwzjaSROivhavYgpUkII1HvWli+wNaDOcmyjKwoWwgK AQQ=
C2X adds the memccpy, strdup and strndup functions. This patch duly
adds __GLIBC_USE (ISOC2X) to the conditions under which <string.h>
declares them.
Tested for x86_64.
2019-08-09 Joseph Myers <joseph@codesourcery.com>
* string/string.h (memccpy): Also declare if [__GLIBC_USE (ISOC2X)].
(strdup): Likewise.
(strndup): Likewise.
---
This patch is relative to a tree with
<https://sourceware.org/ml/libc-alpha/2019-08/msg00173.html> applied.
diff --git a/string/string.h b/string/string.h
index c38eea971f..f51a9e2270 100644
--- a/string/string.h
+++ b/string/string.h
@@ -49,7 +49,7 @@ extern void *memmove (void *__dest, const void *__src, size_t __n)
/* Copy no more than N bytes of SRC to DEST, stopping when C is found.
Return the position in DEST one byte past where C was copied,
or NULL if C was not found in the first N bytes of SRC. */
-#if defined __USE_MISC || defined __USE_XOPEN
+#if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC2X)
extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
int __c, size_t __n)
__THROW __nonnull ((1, 2));
@@ -161,7 +161,7 @@ extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
#endif
#if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 \
- || __GLIBC_USE (LIB_EXT2))
+ || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X))
/* Duplicate S, returning an identical malloc'd string. */
extern char *strdup (const char *__s)
__THROW __attribute_malloc__ __nonnull ((1));
@@ -170,7 +170,7 @@ extern char *strdup (const char *__s)
/* Return a malloc'd copy of at most N bytes of STRING. The
resultant string is terminated even if no null terminator
appears before STRING[N]. */
-#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2)
+#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X)
extern char *strndup (const char *__string, size_t __n)
__THROW __attribute_malloc__ __nonnull ((1));
#endif
--
Joseph S. Myers
joseph@codesourcery.com