From afb85e9d6ca1de8f1ecb267e8c30b88ba4382820 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 6 Jul 2000 07:16:59 +0000 Subject: Rework all the string handling. Make const stuff be constified. -Erik --- include/string.h | 92 +++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 68 insertions(+), 24 deletions(-) (limited to 'include/string.h') 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 /* 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 -- cgit v1.2.3