summaryrefslogtreecommitdiff
path: root/include/string.h
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2000-07-06 07:16:59 +0000
committerEric Andersen <andersen@codepoet.org>2000-07-06 07:16:59 +0000
commitafb85e9d6ca1de8f1ecb267e8c30b88ba4382820 (patch)
treee6b9c1e2d2b9ec890cf832dc0973231dace674c2 /include/string.h
parent6811c064139574e2e2e07fdeb10218428cd68b36 (diff)
Rework all the string handling. Make const stuff be constified.
-Erik
Diffstat (limited to 'include/string.h')
-rw-r--r--include/string.h92
1 files changed, 68 insertions, 24 deletions
diff --git a/include/string.h b/include/string.h
index eb448492e..923005de0 100644
--- a/include/string.h
+++ b/include/string.h
@@ -6,28 +6,56 @@
#include <stddef.h>
/* Basic string functions */
-extern size_t strlen __P ((__const char* __str));
-extern char * strcat __P ((char*, __const char*));
-extern char * strcpy __P ((char*, __const char*));
-extern int strcmp __P ((__const char*, __const char*));
+/* Return the length of S. */
+extern size_t strlen __P ((__const char *__s));
+/* Append SRC onto DEST. */
+extern char *strcat __P ((char *__restrict __dest,
+ __const char *__restrict __src));
+/* Append no more than N characters from SRC onto DEST. */
+extern char *strncat __P ((char *__restrict __dest,
+ __const char *__restrict __src, size_t __n));
-extern char * strncat __P ((char*, __const char*, size_t));
-extern char * strncpy __P ((char*, __const char*, size_t));
-extern int strncmp __P ((__const char*, __const char*, size_t));
+/* Copy SRC to DEST. */
+extern char *strcpy __P ((char *__restrict __dest,
+ __const char *__restrict __src));
+/* Copy no more than N characters of SRC to DEST. */
+extern char *strncpy __P ((char *__restrict __dest,
+ __const char *__restrict __src, size_t __n));
-extern char * strchr __P ((char*, int));
-extern char * strrchr __P ((char*, int));
-extern char * strdup __P ((__const char*));
+/* Compare S1 and S2. */
+extern int strcmp __P ((__const char *__s1, __const char *__s2));
+/* Compare N characters of S1 and S2. */
+extern int strncmp __P ((__const char *__s1, __const char *__s2, size_t __n));
+
+/* 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. */
+extern char *strrchr __P ((__const char *__s, int __c));
+/* Duplicate S, returning an identical malloc'd string. */
+extern char *strdup __P ((__const char *__s));
/* Basic mem functions */
-extern void * memcpy __P ((void*, __const void*, size_t));
-extern void * memccpy __P ((void*, void*, int, size_t));
-extern void * memchr __P ((__const void*, __const int, size_t));
-extern void * memset __P ((void*, int, size_t));
-extern int memcmp __P ((__const void*, __const void*, size_t));
-extern void * memmove __P ((void*, void*, size_t));
+/* Copy N bytes of SRC to DEST. */
+extern __ptr_t memcpy __P ((__ptr_t __restrict __dest,
+ __const __ptr_t __restrict __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. */
+extern __ptr_t memccpy __P ((__ptr_t __dest, __const __ptr_t __src,
+ int __c, size_t __n));
+/* Search N bytes of S for C. */
+extern __ptr_t memchr __P ((__const __ptr_t __s, int __c, size_t __n));
+/* Set N bytes of S to C. */
+extern __ptr_t memset __P ((__ptr_t __s, int __c, size_t __n));
+/* Compare N bytes of S1 and S2. */
+extern int memcmp __P ((__const __ptr_t __s1, __const __ptr_t __s2,
+ size_t __n));
+/* Copy N bytes of SRC to DEST, guaranteeing
+ correct behavior for overlapping strings. */
+extern __ptr_t memmove __P ((__ptr_t __dest, __const __ptr_t __src,
+ size_t __n));
/* Minimal (very!) locale support */
#define strcoll strcmp
@@ -38,14 +66,30 @@ extern void * memmove __P ((void*, void*, size_t));
#define rindex strrchr
/* Other common BSD functions */
-extern int strcasecmp __P ((char*, char*));
-extern int strncasecmp __P ((char*, char*, size_t));
-char *strpbrk __P ((char *, char *));
-char *strsep __P ((char **, char *));
-char *strstr __P ((char *, char *));
-char *strtok __P ((char *, char *));
-size_t strcspn __P ((char *, char *));
-size_t strspn __P ((char *, char *));
+
+/* Compare S1 and S2, ignoring case. */
+extern int strcasecmp __P ((__const char *__s1, __const char *__s2));
+/* Compare no more than N chars of S1 and S2, ignoring case. */
+extern int strncasecmp __P ((__const char *__s1, __const char *__s2,
+ size_t __n));
+/* Find the first occurrence in S of any character in ACCEPT. */
+extern char *strpbrk __P ((__const char *__s, __const char *__accept));
+/* Return the next DELIM-delimited token from *STRINGP,
+ terminating it with a '\0', and update *STRINGP to point past it. */
+extern char *strsep __P ((char **__restrict __stringp,
+ __const char *__restrict __delim));
+/* Find the first occurrence of NEEDLE in HAYSTACK. */
+extern char *strstr __P ((__const char *__haystack, __const char *__needle));
+/* Divide S into tokens separated by characters in DELIM. */
+extern char *strtok __P ((char *__restrict __s,
+ __const char *__restrict __delim));
+/* Return the length of the initial segment of S which
+ consists entirely of characters not in REJECT. */
+extern size_t strcspn __P ((__const char *__s, __const char *__reject));
+/* Return the length of the initial segment of S which
+ consists entirely of characters in ACCEPT. */
+extern size_t strspn __P ((__const char *__s, __const char *__accept));
+
/* More BSD compatabilty */
#define bcmp memcmp