Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: /* 2: * Copyright (c) 2000, 2007, 2010 Apple Inc. All rights reserved. 3: * 4: * @APPLE_LICENSE_HEADER_START@ 5: * 6: * This file contains Original Code and/or Modifications of Original Code 7: * as defined in and that are subject to the Apple Public Source License 8: * Version 2.0 (the 'License'). You may not use this file except in 9: * compliance with the License. Please obtain a copy of the License at 10: * http://www.opensource.apple.com/apsl/ and read it before using this 11: * file. 12: * 13: * The Original Code and all software distributed under the License are 14: * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17: * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18: * Please see the License for the specific language governing rights and 19: * limitations under the License. 20: * 21: * @APPLE_LICENSE_HEADER_END@ 22: */ 23: /*- 24: * Copyright (c) 1990, 1993 25: * The Regents of the University of California. All rights reserved. 26: * 27: * Redistribution and use in source and binary forms, with or without 28: * modification, are permitted provided that the following conditions 29: * are met: 30: * 1. Redistributions of source code must retain the above copyright 31: * notice, this list of conditions and the following disclaimer. 32: * 2. Redistributions in binary form must reproduce the above copyright 33: * notice, this list of conditions and the following disclaimer in the 34: * documentation and/or other materials provided with the distribution. 35: * 3. All advertising materials mentioning features or use of this software 36: * must display the following acknowledgement: 37: * This product includes software developed by the University of 38: * California, Berkeley and its contributors. 39: * 4. Neither the name of the University nor the names of its contributors 40: * may be used to endorse or promote products derived from this software 41: * without specific prior written permission. 42: * 43: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 44: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 45: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 46: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 47: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 48: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 49: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 50: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 51: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 52: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 53: * SUCH DAMAGE. 54: * 55: * @(#)string.h 8.1 (Berkeley) 6/2/93 56: */ 57: 58: #ifndef _STRING_H_ 59: #define _STRING_H_ 60: 61: #include <_types.h> 62: #include <sys/cdefs.h> 63: #include <Availability.h> 64: #include <sys/_types/_size_t.h> 65: #include <sys/_types/_null.h> 66: 67: /* ANSI-C */ 68: 69: __BEGIN_DECLS 70: void *memchr(const void *, int, size_t); 71: int memcmp(const void *, const void *, size_t); 72: void *memcpy(void *, const void *, size_t); 73: void *memmove(void *, const void *, size_t); 74: void *memset(void *, int, size_t); 75: char *strcat(char *, const char *); 76: char *strchr(const char *, int); 77: int strcmp(const char *, const char *); 78: int strcoll(const char *, const char *); 79: char *strcpy(char *, const char *); 80: size_t strcspn(const char *, const char *); 81: char *strerror(int) __DARWIN_ALIAS(strerror); 82: size_t strlen(const char *); 83: char *strncat(char *, const char *, size_t); 84: int strncmp(const char *, const char *, size_t); 85: char *strncpy(char *, const char *, size_t); 86: char *strpbrk(const char *, const char *); 87: char *strrchr(const char *, int); 88: size_t strspn(const char *, const char *); 89: char *strstr(const char *, const char *); 90: char *strtok(char *, const char *); 91: size_t strxfrm(char *, const char *, size_t); 92: __END_DECLS 93: 94: 95: 96: /* Additional functionality provided by: 97: * POSIX.1c-1995, 98: * POSIX.1i-1995, 99: * and the omnibus ISO/IEC 9945-1: 1996 100: */ 101: 102: #if __DARWIN_C_LEVEL >= 199506L 103: __BEGIN_DECLS 104: char *strtok_r(char *, const char *, char **); 105: __END_DECLS 106: #endif /* __DARWIN_C_LEVEL >= 199506L */ 107: 108: 109: 110: /* Additional functionality provided by: 111: * POSIX.1-2001 112: */ 113: 114: #if __DARWIN_C_LEVEL >= 200112L 115: __BEGIN_DECLS 116: int strerror_r(int, char *, size_t); 117: char *strdup(const char *); 118: void *memccpy(void *, const void *, int, size_t); 119: __END_DECLS 120: #endif /* __DARWIN_C_LEVEL >= 200112L */ 121: 122: 123: 124: /* Additional functionality provided by: 125: * POSIX.1-2008 126: */ 127: 128: #if __DARWIN_C_LEVEL >= 200809L 129: __BEGIN_DECLS 130: char *stpcpy(char *, const char *); 131: char *stpncpy(char *, const char *, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); 132: char *strndup(const char *, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); 133: size_t strnlen(const char *, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); 134: char *strsignal(int sig); 135: __END_DECLS 136: #endif /* __DARWIN_C_LEVEL >= 200809L */ 137: 138: /* C11 Annex K */ 139: 140: #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 141: #include <sys/_types/_rsize_t.h> 142: #include <sys/_types/_errno_t.h> 143: 144: __BEGIN_DECLS 145: errno_t memset_s(void *, rsize_t, int, rsize_t) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); 146: __END_DECLS 147: #endif 148: 149: /* Darwin extensions */ 150: 151: #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL 152: #include <sys/_types/_ssize_t.h> 153: 154: __BEGIN_DECLS 155: void *memmem(const void *, size_t, const void *, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); 156: void memset_pattern4(void *, const void *, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); 157: void memset_pattern8(void *, const void *, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); 158: void memset_pattern16(void *, const void *, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); 159: 160: char *strcasestr(const char *, const char *); 161: char *strnstr(const char *, const char *, size_t); 162: size_t strlcat(char *, const char *, size_t); 163: size_t strlcpy(char *, const char *, size_t); 164: void strmode(int, char *); 165: char *strsep(char **, const char *); 166: 167: /* SUS places swab() in unistd.h. It is listed here for source compatibility */ 168: void swab(const void * __restrict, void * __restrict, ssize_t); 169: __END_DECLS 170: 171: /* Some functions historically defined in string.h were placed in strings.h 172: * by SUS. We are using "strings.h" instead of <strings.h> to avoid an issue 173: * where /Developer/Headers/FlatCarbon/Strings.h could be included instead on 174: * case-insensitive file systems. 175: */ 176: #include "strings.h" 177: #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 178: 179: 180: #ifdef _USE_EXTENDED_LOCALES_ 181: #include <xlocale/_string.h> 182: #endif /* _USE_EXTENDED_LOCALES_ */ 183: 184: #if defined (__GNUC__) && _FORTIFY_SOURCE > 0 && !defined (__cplusplus) 185: /* Security checking functions. */ 186: #include <secure/_string.h> 187: #endif 188: 189: #endif /* _STRING_H_ */ 190: