(__gmon_start__): Renamed from gmon_start, made global.
[kopensolaris-gnu/glibc.git] / string / string.h
index 564adcc..95dcba0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1993, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 95, 96 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -91,6 +91,16 @@ extern size_t strxfrm __P ((char *__dest, __const char *__src, size_t __n));
 extern char *strdup __P ((__const char *__s));
 #endif
 
+#if defined (__USE_GNU) && defined (__GNUC__)
+/* Duplicate S, returning an identical alloca'd string.  */
+#define strdupa(s)                                                           \
+({                                                                           \
+    const char *__old = (s);                                                 \
+    size_t __len = strlen (__old) + 1;                                       \
+    memcpy (__builtin_alloca (__len), __old, __len);                         \
+})
+#endif
+
 /* Find the first occurrence of C in S.  */
 extern char *strchr __P ((__const char *__s, int __c));
 /* Find the last occurrence of C in S.  */
@@ -149,6 +159,7 @@ extern int bcmp __P ((__const __ptr_t __s1, __const __ptr_t __s2, size_t __n));
 extern int ffs __P ((int __i));
 
 /* Compare S1 and S2, ignoring case.  */
+extern int __strcasecmp __P ((__const char *__s1, __const char *__s2));
 extern int strcasecmp __P ((__const char *__s1, __const char *__s2));
 
 /* Return the next DELIM-delimited token from *STRINGP,
@@ -156,10 +167,6 @@ extern int strcasecmp __P ((__const char *__s1, __const char *__s2));
 extern char *strsep __P ((char **__stringp, __const char *__delim));
 #endif
 
-/* Copy no more than N characters of SRC to DEST, returning the address of
-   the last character written into DEST.  */
-extern char *__stpncpy __P ((char *__dest, __const char *__src, size_t __n));
-
 #ifdef __USE_GNU
 /* Compare no more than N chars of S1 and S2, ignoring case.  */
 extern int strncasecmp __P ((__const char *__s1, __const char *__s2,
@@ -169,16 +176,14 @@ extern int strncasecmp __P ((__const char *__s1, __const char *__s2,
 extern char *strsignal __P ((int __sig));
 
 /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
+extern char *__stpcpy __P ((char *__dest, __const char *__src));
 extern char *stpcpy __P ((char *__dest, __const char *__src));
 
 /* Copy no more than N characters of SRC to DEST, returning the address of
    the last character written into DEST.  */
+extern char *__stpncpy __P ((char *__dest, __const char *__src, size_t __n));
 extern char *stpncpy __P ((char *__dest, __const char *__src, size_t __n));
 
-#ifdef __OPTIMIZE__
-#define stpncpy(dest, src, n)  __stpncpy ((dest), (src), (n))
-#endif
-
 /* Sautee STRING briskly.  */
 extern char *strfry __P ((char *__string));