X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/9385eb3d10ebe5eb398c52040ec3dbfba9b0cdcf..fbd86d4cc20b02a10edcca92fb7ae0a143e63cc4:/include/string.h diff --git a/include/string.h b/include/string.h index 9a62832..2db632d 100644 --- a/include/string.h +++ b/include/string.h @@ -1,17 +1,15 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000, 2007 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * - * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -19,7 +17,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ /*- @@ -59,16 +57,23 @@ #ifndef _STRING_H_ #define _STRING_H_ -#include +#include <_types.h> -#ifndef _BSD_SIZE_T_DEFINED_ -#define _BSD_SIZE_T_DEFINED_ -typedef _BSD_SIZE_T_ size_t; +#ifndef _SIZE_T +#define _SIZE_T +typedef __darwin_size_t size_t; #endif -#ifndef NULL -#define NULL 0 +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) /* For swab */ +#ifndef _SSIZE_T +#define _SSIZE_T +typedef __darwin_ssize_t ssize_t; #endif +#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ + +#ifndef NULL +#define NULL __DARWIN_NULL +#endif /* ! NULL */ #include @@ -78,21 +83,33 @@ int memcmp(const void *, const void *, size_t); void *memcpy(void *, const void *, size_t); void *memmove(void *, const void *, size_t); void *memset(void *, int, size_t); +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) char *stpcpy(char *, const char *); char *strcasestr(const char *, const char *); +#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ char *strcat(char *, const char *); char *strchr(const char *, int); int strcmp(const char *, const char *); int strcoll(const char *, const char *); char *strcpy(char *, const char *); size_t strcspn(const char *, const char *); -char *strerror(int); +//Begin-Libc +#ifndef LIBC_ALIAS_STRERROR +//End-Libc +char *strerror(int) __DARWIN_ALIAS(strerror); +//Begin-Libc +#else /* LIBC_ALIAS_STRERROR */ +char *strerror(int) LIBC_ALIAS(strerror); +#endif /* !LIBC_ALIAS_STRERROR */ +//End-Libc int strerror_r(int, char *, size_t); size_t strlen(const char *); char *strncat(char *, const char *, size_t); int strncmp(const char *, const char *, size_t); char *strncpy(char *, const char *, size_t); +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) char *strnstr(const char *, const char *, size_t); +#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ char *strpbrk(const char *, const char *); char *strrchr(const char *, int); size_t strspn(const char *, const char *); @@ -102,24 +119,41 @@ size_t strxfrm(char *, const char *, size_t); /* Nonstandard routines */ #ifndef _ANSI_SOURCE +void *memccpy(void *, const void *, int, size_t); +char *strtok_r(char *, const char *, char **); +char *strdup(const char *); +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) int bcmp(const void *, const void *, size_t); void bcopy(const void *, void *, size_t); void bzero(void *, size_t); int ffs(int); +int ffsl(long); +int fls(int); +int flsl(long); char *index(const char *, int); -void *memccpy(void *, const void *, int, size_t); +void memset_pattern4(void *, const void *, size_t); +void memset_pattern8(void *, const void *, size_t); +void memset_pattern16(void *, const void *, size_t); char *rindex(const char *, int); int strcasecmp(const char *, const char *); -char *strdup(const char *); size_t strlcat(char *, const char *, size_t); size_t strlcpy(char *, const char *, size_t); void strmode(int, char *); int strncasecmp(const char *, const char *, size_t); char *strsep(char **, const char *); char *strsignal(int sig); -char *strtok_r(char *, const char *, char **); -void swab(const void *, void *, size_t); -#endif +void swab(const void * __restrict, void * __restrict, ssize_t); +#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ +#endif /* !_ANSI_SOURCE */ __END_DECLS +#ifdef _USE_EXTENDED_LOCALES_ +#include +#endif /* _USE_EXTENDED_LOCALES_ */ + +#if defined (__GNUC__) && _FORTIFY_SOURCE > 0 && !defined (__cplusplus) +/* Security checking functions. */ +#include +#endif + #endif /* _STRING_H_ */