1f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// -*- C++ -*- 2f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===--------------------------- string.h ---------------------------------===// 3f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// 4f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// The LLVM Compiler Infrastructure 5f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// 6f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// This file is distributed under the University of Illinois Open Source 7f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// License. See LICENSE.TXT for details. 8f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// 9f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===----------------------------------------------------------------------===// 10f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 11f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#ifndef _LIBCPP_STRING_H 12f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#define _LIBCPP_STRING_H 13f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 14f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot/* 15f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot string.h synopsis 16f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 17f3014761c955345d6e05491608e73228d014afbandroid-build-team RobotMacros: 18f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 19f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot NULL 20f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 21f3014761c955345d6e05491608e73228d014afbandroid-build-team RobotTypes: 22f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 23f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot size_t 24f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 25f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotvoid* memcpy(void* restrict s1, const void* restrict s2, size_t n); 26f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotvoid* memmove(void* s1, const void* s2, size_t n); 27f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* strcpy (char* restrict s1, const char* restrict s2); 28f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* strncpy(char* restrict s1, const char* restrict s2, size_t n); 29f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* strcat (char* restrict s1, const char* restrict s2); 30f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* strncat(char* restrict s1, const char* restrict s2, size_t n); 31f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotint memcmp(const void* s1, const void* s2, size_t n); 32f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotint strcmp (const char* s1, const char* s2); 33f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotint strncmp(const char* s1, const char* s2, size_t n); 34f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotint strcoll(const char* s1, const char* s2); 35f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotsize_t strxfrm(char* restrict s1, const char* restrict s2, size_t n); 36f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst void* memchr(const void* s, int c, size_t n); 37f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot void* memchr( void* s, int c, size_t n); 38f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst char* strchr(const char* s, int c); 39f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot char* strchr( char* s, int c); 40f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotsize_t strcspn(const char* s1, const char* s2); 41f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst char* strpbrk(const char* s1, const char* s2); 42f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot char* strpbrk( char* s1, const char* s2); 43f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst char* strrchr(const char* s, int c); 44f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot char* strrchr( char* s, int c); 45f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotsize_t strspn(const char* s1, const char* s2); 46f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst char* strstr(const char* s1, const char* s2); 47f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot char* strstr( char* s1, const char* s2); 48f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* strtok(char* restrict s1, const char* restrict s2); 49f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotvoid* memset(void* s, int c, size_t n); 50f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* strerror(int errnum); 51f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotsize_t strlen(const char* s); 52f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 53f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot*/ 54f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 55f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include <__config> 56f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 57f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 58f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#pragma GCC system_header 59f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#endif 60f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 61f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include_next <string.h> 62f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 63f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// MSVCRT, GNU libc and its derivates may already have the correct prototype in 64f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// <string.h>. This macro can be defined by users if their C library provides 65f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// the right signature. 66f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#if defined(__CORRECT_ISO_CPP_STRING_H_PROTO) || defined(_LIBCPP_MSVCRT) || \ 67f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot defined(__sun__) || defined(_STRING_H_CPLUSPLUS_98_CONFORMANCE_) 68f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#define _LIBCPP_STRING_H_HAS_CONST_OVERLOADS 69f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#endif 70f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 71f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#if defined(__cplusplus) && !defined(_LIBCPP_STRING_H_HAS_CONST_OVERLOADS) && defined(_LIBCPP_PREFERRED_OVERLOAD) 72f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotextern "C++" { 73f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY 74f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* __libcpp_strchr(const char* __s, int __c) {return (char*)strchr(__s, __c);} 75f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 76f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst char* strchr(const char* __s, int __c) {return __libcpp_strchr(__s, __c);} 77f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 78f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot char* strchr( char* __s, int __c) {return __libcpp_strchr(__s, __c);} 79f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 80f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY 81f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* __libcpp_strpbrk(const char* __s1, const char* __s2) {return (char*)strpbrk(__s1, __s2);} 82f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 83f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst char* strpbrk(const char* __s1, const char* __s2) {return __libcpp_strpbrk(__s1, __s2);} 84f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 85f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot char* strpbrk( char* __s1, const char* __s2) {return __libcpp_strpbrk(__s1, __s2);} 86f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 87f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY 88f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* __libcpp_strrchr(const char* __s, int __c) {return (char*)strrchr(__s, __c);} 89f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 90f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst char* strrchr(const char* __s, int __c) {return __libcpp_strrchr(__s, __c);} 91f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 92f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot char* strrchr( char* __s, int __c) {return __libcpp_strrchr(__s, __c);} 93f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 94f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY 95f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotvoid* __libcpp_memchr(const void* __s, int __c, size_t __n) {return (void*)memchr(__s, __c, __n);} 96f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 97f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst void* memchr(const void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);} 98f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 99f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot void* memchr( void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);} 100f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 101f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY 102f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotchar* __libcpp_strstr(const char* __s1, const char* __s2) {return (char*)strstr(__s1, __s2);} 103f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 104f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotconst char* strstr(const char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);} 105f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotinline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD 106f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot char* strstr( char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);} 107f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot} 108f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#endif 109f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 110f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#endif // _LIBCPP_STRING_H 111