|
|
|
| 1 |
|
/*** |
| 2 |
|
*string.h - declarations for string manipulation functions |
| 3 |
|
* |
| 4 |
|
* Copyright (c) Microsoft Corporation. All rights reserved. |
| 5 |
|
* |
| 6 |
|
*Purpose: |
| 7 |
|
* This file contains the function declarations for the string |
| 8 |
|
* manipulation functions. |
| 9 |
|
* [ANSI/System V] |
| 10 |
|
* |
| 11 |
|
* [Public] |
| 12 |
|
* |
| 13 |
|
****/ |
| 14 |
|
|
| 15 |
|
#if _MSC_VER > 1000 |
| 16 |
|
#pragma once |
| 17 |
|
#endif |
| 18 |
|
|
| 19 |
|
#ifndef _INC_STRING |
| 20 |
|
#define _INC_STRING |
| 21 |
|
|
| 22 |
|
#include <crtdefs.h> |
| 23 |
|
|
| 24 |
|
#ifdef __cplusplus |
| 25 |
|
extern "C" { |
| 26 |
|
#endif |
| 27 |
|
|
| 28 |
|
#ifndef _NLSCMP_DEFINED |
| 29 |
|
#define _NLSCMPERROR 2147483647 /* currently == INT_MAX */ |
| 30 |
|
#define _NLSCMP_DEFINED |
| 31 |
|
#endif |
| 32 |
|
|
| 33 |
|
/* Define NULL pointer value */ |
| 34 |
|
#ifndef NULL |
| 35 |
|
#ifdef __cplusplus |
| 36 |
|
#define NULL 0 |
| 37 |
|
#else |
| 38 |
|
#define NULL ((void *)0) |
| 39 |
|
#endif |
| 40 |
|
#endif |
| 41 |
|
|
| 42 |
|
/* For backwards compatibility */ |
| 43 |
|
#define _WConst_return _CONST_RETURN |
| 44 |
|
|
| 45 |
|
/* Function prototypes */ |
| 46 |
|
#ifndef _CRT_MEMORY_DEFINED |
| 47 |
|
#define _CRT_MEMORY_DEFINED |
| 48 |
|
_CRTIMP void * __cdecl _memccpy( _Out_opt_bytecap_(_MaxCount) void * _Dst, _In_ const void * _Src, _In_ int _Val, _In_ size_t _MaxCount); |
| 49 |
|
_Check_return_ _CRTIMP _CONST_RETURN void * __cdecl memchr( _In_opt_bytecount_(_MaxCount) const void * _Buf , _In_ int _Val, _In_ size_t _MaxCount); |
| 50 |
|
_Check_return_ _CRTIMP int __cdecl _memicmp(_In_opt_bytecount_(_Size) const void * _Buf1, _In_opt_bytecount_(_Size) const void * _Buf2, _In_ size_t _Size); |
| 51 |
|
_Check_return_ _CRTIMP int __cdecl _memicmp_l(_In_opt_bytecount_(_Size) const void * _Buf1, _In_opt_bytecount_(_Size) const void * _Buf2, _In_ size_t _Size, _In_opt_ _locale_t _Locale); |
| 52 |
|
_Check_return_ int __cdecl memcmp(_In_opt_bytecount_(_Size) const void * _Buf1, _In_opt_bytecount_(_Size) const void * _Buf2, _In_ size_t _Size); |
| 53 |
|
_CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s) void * __cdecl memcpy(_Out_opt_bytecapcount_(_Size) void * _Dst, _In_opt_bytecount_(_Size) const void * _Src, _In_ size_t _Size); |
| 54 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 55 |
|
_CRTIMP errno_t __cdecl memcpy_s(_Out_opt_bytecap_post_bytecount_(_DstSize, _MaxCount) void * _Dst, _In_ rsize_t _DstSize, _In_opt_bytecount_(_MaxCount) const void * _Src, _In_ rsize_t _MaxCount); |
| 56 |
|
#endif |
| 57 |
|
void * __cdecl memset(_Out_opt_bytecapcount_(_Size) void * _Dst, _In_ int _Val, _In_ size_t _Size); |
| 58 |
|
|
| 59 |
|
#if !__STDC__ |
| 60 |
|
/* Non-ANSI names for compatibility */ |
| 61 |
|
_CRT_NONSTDC_DEPRECATE(_memccpy) _CRTIMP void * __cdecl memccpy(_Out_opt_bytecap_(_Size) void * _Dst, _In_opt_bytecount_(_Size) const void * _Src, _In_ int _Val, _In_ size_t _Size); |
| 62 |
|
_Check_return_ _CRT_NONSTDC_DEPRECATE(_memicmp) _CRTIMP int __cdecl memicmp(_In_opt_bytecount_(_Size) const void * _Buf1, _In_opt_bytecount_(_Size) const void * _Buf2, _In_ size_t _Size); |
| 63 |
|
#endif /* __STDC__ */ |
| 64 |
|
|
| 65 |
|
#endif |
| 66 |
|
|
| 67 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl _strset_s(_Inout_z_cap_(_DstSize) char * _Dst, _In_ size_t _DstSize, _In_ int _Value); |
| 68 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _strset_s, _Deref_prepost_z_ char, _Dest, _In_ int, _Value) |
| 69 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(char *, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, _strset, _Inout_z_, char, _Dest, _In_ int, _Value) |
| 70 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 71 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl strcpy_s(_Out_z_cap_(_SizeInBytes) char * _Dst, _In_ rsize_t _SizeInBytes, _In_z_ const char * _Src); |
| 72 |
|
#endif |
| 73 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, strcpy_s, _Deref_post_z_ char, _Dest, _In_z_ const char *, _Source) |
| 74 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(char *, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, strcpy, _Pre_cap_for_(_Source) _Post_z_, char, _Dest, _In_z_ const char *, _Source) |
| 75 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 76 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl strcat_s(_Inout_z_cap_(_SizeInBytes) char * _Dst, _In_ rsize_t _SizeInBytes, _In_z_ const char * _Src); |
| 77 |
|
#endif |
| 78 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, strcat_s, _Deref_prepost_z_ char, _Dest, _In_z_ const char *, _Source) |
| 79 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(char *, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, strcat, _Pre_cap_for_(_Source) _Prepost_z_, char, _Dest, _In_z_ const char *, _Source) |
| 80 |
|
_Check_return_ int __cdecl strcmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2); |
| 81 |
|
_Check_return_ size_t __cdecl strlen(_In_z_ const char * _Str); |
| 82 |
|
_Check_return_ _CRTIMP size_t __cdecl strnlen(_In_z_ const char * _Str, _In_ size_t _MaxCount); |
| 83 |
|
#if __STDC_WANT_SECURE_LIB__ && !defined (__midl) |
| 84 |
|
_Check_return_ static __inline size_t __CRTDECL strnlen_s(_In_z_ const char * _Str, _In_ size_t _MaxCount) |
| 85 |
|
{ |
| 86 |
|
return (_Str==0) ? 0 : strnlen(_Str, _MaxCount); |
| 87 |
|
} |
| 88 |
|
#endif |
| 89 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 90 |
|
_Check_return_wat_ _CRTIMP errno_t __cdecl memmove_s(_Out_opt_bytecap_post_bytecount_(_DstSize,_MaxCount) void * _Dst, _In_ rsize_t _DstSize, _In_opt_bytecount_(_MaxCount) const void * _Src, _In_ rsize_t _MaxCount); |
| 91 |
|
#endif |
| 92 |
|
|
| 93 |
|
#if defined(_M_IA64) |
| 94 |
|
_CRT_INSECURE_DEPRECATE_MEMORY(memmove_s) void * __cdecl memmove(_Out_opt_bytecapcount_(_Size) void * _Dst, _In_opt_bytecount_(_Size) const void * _Src, _In_ size_t _Size); |
| 95 |
|
#else /* defined (_M_IA64) */ |
| 96 |
|
_CRTIMP _CRT_INSECURE_DEPRECATE_MEMORY(memmove_s) void * __cdecl memmove(_Out_opt_bytecapcount_(_Size) void * _Dst, _In_opt_bytecount_(_Size) const void * _Src, _In_ size_t _Size); |
| 97 |
|
#endif /* defined (_M_IA64) */ |
| 98 |
|
|
| 99 |
|
#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) |
| 100 |
|
#pragma push_macro("_strdup") |
| 101 |
|
#undef _strdup |
| 102 |
|
#endif |
| 103 |
|
|
| 104 |
|
_Check_return_ _CRTIMP char * __cdecl _strdup(_In_opt_z_ const char * _Src); |
| 105 |
|
|
| 106 |
|
#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) |
| 107 |
|
#pragma pop_macro("_strdup") |
| 108 |
|
#endif |
| 109 |
|
|
| 110 |
|
_Check_return_ _CRTIMP _CONST_RETURN char * __cdecl strchr(_In_z_ const char * _Str, _In_ int _Val); |
| 111 |
|
_Check_return_ _CRTIMP int __cdecl _stricmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2); |
| 112 |
|
_Check_return_ _CRTIMP int __cdecl _strcmpi(_In_z_ const char * _Str1, _In_z_ const char * _Str2); |
| 113 |
|
_Check_return_ _CRTIMP int __cdecl _stricmp_l(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_opt_ _locale_t _Locale); |
| 114 |
|
_Check_return_ _CRTIMP int __cdecl strcoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2); |
| 115 |
|
_Check_return_ _CRTIMP int __cdecl _strcoll_l(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_opt_ _locale_t _Locale); |
| 116 |
|
_Check_return_ _CRTIMP int __cdecl _stricoll(_In_z_ const char * _Str1, _In_z_ const char * _Str2); |
| 117 |
|
_Check_return_ _CRTIMP int __cdecl _stricoll_l(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_opt_ _locale_t _Locale); |
| 118 |
|
_Check_return_ _CRTIMP int __cdecl _strncoll (_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount); |
| 119 |
|
_Check_return_ _CRTIMP int __cdecl _strncoll_l(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale); |
| 120 |
|
_Check_return_ _CRTIMP int __cdecl _strnicoll (_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount); |
| 121 |
|
_Check_return_ _CRTIMP int __cdecl _strnicoll_l(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale); |
| 122 |
|
_Check_return_ _CRTIMP size_t __cdecl strcspn(_In_z_ const char * _Str, _In_z_ const char * _Control); |
| 123 |
|
_Check_return_ _CRT_INSECURE_DEPRECATE(_strerror_s) _CRTIMP char * __cdecl _strerror(_In_opt_z_ const char * _ErrMsg); |
| 124 |
|
_Check_return_wat_ _CRTIMP errno_t __cdecl _strerror_s(_Out_z_cap_(_SizeInBytes) char * _Buf, _In_ size_t _SizeInBytes, _In_opt_z_ const char * _ErrMsg); |
| 125 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _strerror_s, char, _Buffer, _In_opt_z_ const char *, _ErrorMessage) |
| 126 |
|
_Check_return_ _CRT_INSECURE_DEPRECATE(strerror_s) _CRTIMP char * __cdecl strerror(_In_ int); |
| 127 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 128 |
|
_Check_return_wat_ _CRTIMP errno_t __cdecl strerror_s(_Out_z_cap_(_SizeInBytes) char * _Buf, _In_ size_t _SizeInBytes, _In_ int _ErrNum); |
| 129 |
|
#endif |
| 130 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, strerror_s, char, _Buffer, _In_ int, _ErrorMessage) |
| 131 |
|
_Check_return_wat_ _CRTIMP errno_t __cdecl _strlwr_s(_Inout_z_cap_(_Size) char * _Str, _In_ size_t _Size); |
| 132 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _strlwr_s, _Deref_prepost_z_ char, _String) |
| 133 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(char *, __RETURN_POLICY_DST, _CRTIMP, _strlwr, _Inout_z_, char, _String) |
| 134 |
|
_Check_return_wat_ _CRTIMP errno_t __cdecl _strlwr_s_l(_Inout_z_cap_(_Size) char * _Str, _In_ size_t _Size, _In_opt_ _locale_t _Locale); |
| 135 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _strlwr_s_l, _Deref_prepost_z_ char, _String, _In_opt_ _locale_t, _Locale) |
| 136 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _CRTIMP, _strlwr_l, _strlwr_s_l, _Deref_inout_z_cap_c_(_Size) char, _Inout_z_, char, _String, _In_opt_ _locale_t, _Locale) |
| 137 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 138 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl strncat_s(_Inout_z_cap_(_SizeInBytes) char * _Dst, _In_ rsize_t _SizeInBytes, _In_z_ const char * _Src, _In_ rsize_t _MaxCount); |
| 139 |
|
#endif |
| 140 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, strncat_s, _Deref_prepost_z_ char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count) |
| 141 |
|
#pragma warning(push) |
| 142 |
|
#pragma warning(disable:6059) |
| 143 |
|
/* prefast noise VSW 489802 */ |
| 144 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _CRTIMP, strncat, strncat_s, _Deref_inout_z_cap_c_(_Size) char, _Inout_z_cap_(_Count), char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count) |
| 145 |
|
#pragma warning(pop) |
| 146 |
|
#if defined(_M_IA64) |
| 147 |
|
_Check_return_ int __cdecl strncmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount); |
| 148 |
|
#else |
| 149 |
|
_Check_return_ _CRTIMP int __cdecl strncmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount); |
| 150 |
|
#endif |
| 151 |
|
_Check_return_ _CRTIMP int __cdecl _strnicmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount); |
| 152 |
|
_Check_return_ _CRTIMP int __cdecl _strnicmp_l(_In_z_ const char * _Str1, _In_z_ const char * _Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale); |
| 153 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 154 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl strncpy_s(_Out_z_cap_(_SizeInBytes) char * _Dst, _In_ rsize_t _SizeInBytes, _In_z_ const char * _Src, _In_ rsize_t _MaxCount); |
| 155 |
|
#endif |
| 156 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, strncpy_s, char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count) |
| 157 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _CRTIMP_NOIA64, strncpy, strncpy_s, _Deref_out_z_cap_c_(_Size) char, _Out_cap_(_Count) _Post_maybez_, char, _Dest, _In_z_ const char *, _Source, _In_ size_t, _Count) |
| 158 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl _strnset_s(_Inout_z_cap_(_SizeInBytes) char * _Str, _In_ size_t _SizeInBytes, _In_ int _Val, _In_ size_t _MaxCount); |
| 159 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _strnset_s, _Deref_prepost_z_ char, _Dest, _In_ int, _Val, _In_ size_t, _Count) |
| 160 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _CRTIMP, _strnset, _strnset_s, _Deref_inout_z_cap_c_(_Size) char, _Inout_z_cap_(_Count), char, _Dest, _In_ int, _Val, _In_ size_t, _Count) |
| 161 |
|
_Check_return_ _CRTIMP _CONST_RETURN char * __cdecl strpbrk(_In_z_ const char * _Str, _In_z_ const char * _Control); |
| 162 |
|
_Check_return_ _CRTIMP _CONST_RETURN char * __cdecl strrchr(_In_z_ const char * _Str, _In_ int _Ch); |
| 163 |
|
_CRTIMP char * __cdecl _strrev(_Inout_z_ char * _Str); |
| 164 |
|
_Check_return_ _CRTIMP size_t __cdecl strspn(_In_z_ const char * _Str, _In_z_ const char * _Control); |
| 165 |
|
_Check_return_ _CRTIMP _CONST_RETURN char * __cdecl strstr(_In_z_ const char * _Str, _In_z_ const char * _SubStr); |
| 166 |
|
_Check_return_ _CRT_INSECURE_DEPRECATE(strtok_s) _CRTIMP char * __cdecl strtok(_Inout_opt_z_ char * _Str, _In_z_ const char * _Delim); |
| 167 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 168 |
|
_Check_return_ _CRTIMP_ALTERNATIVE char * __cdecl strtok_s(_Inout_opt_z_ char * _Str, _In_z_ const char * _Delim, _Inout_ _Deref_prepost_opt_z_ char ** _Context); |
| 169 |
|
#endif |
| 170 |
|
_Check_return_wat_ _CRTIMP errno_t __cdecl _strupr_s(_Inout_z_cap_(_Size) char * _Str, _In_ size_t _Size); |
| 171 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _strupr_s, _Deref_prepost_z_ char, _String) |
| 172 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(char *, __RETURN_POLICY_DST, _CRTIMP, _strupr, _Inout_z_, char, _String) |
| 173 |
|
_Check_return_wat_ _CRTIMP errno_t __cdecl _strupr_s_l(_Inout_z_cap_(_Size) char * _Str, _In_ size_t _Size, _locale_t _Locale); |
| 174 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _strupr_s_l, _Deref_prepost_z_ char, _String, _locale_t, _Locale) |
| 175 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _CRTIMP, _strupr_l, _strupr_s_l, _Deref_inout_z_cap_c_(_Size) char, _Inout_z_, char, _String, _In_opt_ _locale_t, _Locale) |
| 176 |
|
_Check_return_opt_ _CRTIMP size_t __cdecl strxfrm (_Out_opt_cap_(_MaxCount) _Post_maybez_ char * _Dst, _In_z_ const char * _Src, _In_ size_t _MaxCount); |
| 177 |
|
_Check_return_opt_ _CRTIMP size_t __cdecl _strxfrm_l(_Out_opt_cap_(_MaxCount) _Post_maybez_ char * _Dst, _In_z_ const char * _Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale); |
| 178 |
|
|
| 179 |
|
#ifdef __cplusplus |
| 180 |
|
extern "C++" { |
| 181 |
|
#ifndef _CPP_NARROW_INLINES_DEFINED |
| 182 |
|
#define _CPP_NARROW_INLINES_DEFINED |
| 183 |
|
_Check_return_ inline char * __CRTDECL strchr(_In_z_ char * _Str, _In_ int _Ch) |
| 184 |
|
{ return (char*)strchr((const char*)_Str, _Ch); } |
| 185 |
|
_Check_return_ inline char * __CRTDECL strpbrk(_In_z_ char * _Str, _In_z_ const char * _Control) |
| 186 |
|
{ return (char*)strpbrk((const char*)_Str, _Control); } |
| 187 |
|
_Check_return_ inline char * __CRTDECL strrchr(_In_z_ char * _Str, _In_ int _Ch) |
| 188 |
|
{ return (char*)strrchr((const char*)_Str, _Ch); } |
| 189 |
|
_Check_return_ inline char * __CRTDECL strstr(_In_z_ char * _Str, _In_z_ const char * _SubStr) |
| 190 |
|
{ return (char*)strstr((const char*)_Str, _SubStr); } |
| 191 |
|
#endif |
| 192 |
|
#ifndef _CPP_MEMCHR_DEFINED |
| 193 |
|
#define _CPP_MEMCHR_DEFINED |
| 194 |
|
_Check_return_ inline void * __CRTDECL memchr(_In_opt_bytecount_(_N) void * _Pv, _In_ int _C, _In_ size_t _N) |
| 195 |
|
{ return (void*)memchr((const void*)_Pv, _C, _N); } |
| 196 |
|
#endif |
| 197 |
|
} |
| 198 |
|
#endif |
| 199 |
|
|
| 200 |
|
#if !__STDC__ |
| 201 |
|
|
| 202 |
|
#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) |
| 203 |
|
#pragma push_macro("strdup") |
| 204 |
|
#undef strdup |
| 205 |
|
#endif |
| 206 |
|
|
| 207 |
|
_Check_return_ _CRT_NONSTDC_DEPRECATE(_strdup) _CRTIMP char * __cdecl strdup(_In_opt_z_ const char * _Src); |
| 208 |
|
|
| 209 |
|
#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) |
| 210 |
|
#pragma pop_macro("strdup") |
| 211 |
|
#endif |
| 212 |
|
|
| 213 |
|
/* prototypes for oldnames.lib functions */ |
| 214 |
|
_Check_return_ _CRT_NONSTDC_DEPRECATE(_strcmpi) _CRTIMP int __cdecl strcmpi(_In_z_ const char * _Str1, _In_z_ const char * _Str2); |
| 215 |
|
_Check_return_ _CRT_NONSTDC_DEPRECATE(_stricmp) _CRTIMP int __cdecl stricmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2); |
| 216 |
|
_CRT_NONSTDC_DEPRECATE(_strlwr) _CRTIMP char * __cdecl strlwr(_Inout_z_ char * _Str); |
| 217 |
|
_Check_return_ _CRT_NONSTDC_DEPRECATE(_strnicmp) _CRTIMP int __cdecl strnicmp(_In_z_ const char * _Str1, _In_z_ const char * _Str, _In_ size_t _MaxCount); |
| 218 |
|
_CRT_NONSTDC_DEPRECATE(_strnset) _CRTIMP char * __cdecl strnset(_Inout_z_cap_(_MaxCount) char * _Str, _In_ int _Val, _In_ size_t _MaxCount); |
| 219 |
|
_CRT_NONSTDC_DEPRECATE(_strrev) _CRTIMP char * __cdecl strrev(_Inout_z_ char * _Str); |
| 220 |
|
_CRT_NONSTDC_DEPRECATE(_strset) char * __cdecl strset(_Inout_z_ char * _Str, _In_ int _Val); |
| 221 |
|
_CRT_NONSTDC_DEPRECATE(_strupr) _CRTIMP char * __cdecl strupr(_Inout_z_ char * _Str); |
| 222 |
|
|
| 223 |
|
#endif /* !__STDC__ */ |
| 224 |
|
|
| 225 |
|
|
| 226 |
|
#ifndef _WSTRING_DEFINED |
| 227 |
|
|
| 228 |
|
/* wide function prototypes, also declared in wchar.h */ |
| 229 |
|
|
| 230 |
|
#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) |
| 231 |
|
#pragma push_macro("_wcsdup") |
| 232 |
|
#undef _wcsdup |
| 233 |
|
#endif |
| 234 |
|
|
| 235 |
|
_Check_return_ _CRTIMP wchar_t * __cdecl _wcsdup(_In_z_ const wchar_t * _Str); |
| 236 |
|
|
| 237 |
|
#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) |
| 238 |
|
#pragma pop_macro("_wcsdup") |
| 239 |
|
#endif |
| 240 |
|
|
| 241 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 242 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcscat_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ rsize_t _SizeInWords, _In_z_ const wchar_t * _Src); |
| 243 |
|
#endif |
| 244 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, wcscat_s, _Deref_prepost_z_ wchar_t, _Dest, _In_z_ const wchar_t *, _Source) |
| 245 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, wcscat, _Pre_cap_for_(_Source) _Prepost_z_, wchar_t, _Dest, _In_z_ const wchar_t *, _Source) |
| 246 |
|
_Check_return_ _CRTIMP _CONST_RETURN wchar_t * __cdecl wcschr(_In_z_ const wchar_t * _Str, wchar_t _Ch); |
| 247 |
|
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2); |
| 248 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 249 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcscpy_s(_Out_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ rsize_t _SizeInWords, _In_z_ const wchar_t * _Src); |
| 250 |
|
#endif |
| 251 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, wcscpy_s, wchar_t, _Dest, _In_z_ const wchar_t *, _Source) |
| 252 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, wcscpy, _Pre_cap_for_(_Source) _Post_z_, wchar_t, _Dest, _In_z_ const wchar_t *, _Source) |
| 253 |
|
_Check_return_ _CRTIMP size_t __cdecl wcscspn(_In_z_ const wchar_t * _Str, _In_z_ const wchar_t * _Control); |
| 254 |
|
_Check_return_ _CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t * _Str); |
| 255 |
|
_Check_return_ _CRTIMP size_t __cdecl wcsnlen(_In_z_ const wchar_t * _Src, _In_ size_t _MaxCount); |
| 256 |
|
#if __STDC_WANT_SECURE_LIB__ && !defined (__midl) |
| 257 |
|
_Check_return_ static __inline size_t __CRTDECL wcsnlen_s(_In_z_ const wchar_t * _Src, _In_ size_t _MaxCount) |
| 258 |
|
{ |
| 259 |
|
return (_Src == NULL) ? 0 : wcsnlen(_Src, _MaxCount); |
| 260 |
|
} |
| 261 |
|
#endif |
| 262 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 263 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcsncat_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ rsize_t _SizeInWords, _In_z_ const wchar_t * _Src, _In_ rsize_t _MaxCount); |
| 264 |
|
#endif |
| 265 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, wcsncat_s, _Deref_prepost_z_ wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count) |
| 266 |
|
#pragma warning(push) |
| 267 |
|
#pragma warning(disable:6059) |
| 268 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, wcsncat, wcsncat_s, _Deref_inout_z_cap_c_(_Size) wchar_t, _Inout_z_cap_(_Count), wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count) |
| 269 |
|
#pragma warning(pop) |
| 270 |
|
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount); |
| 271 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 272 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcsncpy_s(_Out_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ rsize_t _SizeInWords, _In_z_ const wchar_t * _Src, _In_ rsize_t _MaxCount); |
| 273 |
|
#endif |
| 274 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, wcsncpy_s, wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count) |
| 275 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, wcsncpy, wcsncpy_s, _Pre_notnull_ _Post_maybez_ wchar_t, _Out_cap_(_Count) _Post_maybez_, wchar_t, _Dest, _In_z_ const wchar_t *, _Source, _In_ size_t, _Count) |
| 276 |
|
_Check_return_ _CRTIMP _CONST_RETURN wchar_t * __cdecl wcspbrk(_In_z_ const wchar_t * _Str, _In_z_ const wchar_t * _Control); |
| 277 |
|
_Check_return_ _CRTIMP _CONST_RETURN wchar_t * __cdecl wcsrchr(_In_z_ const wchar_t * _Str, _In_ wchar_t _Ch); |
| 278 |
|
_Check_return_ _CRTIMP size_t __cdecl wcsspn(_In_z_ const wchar_t * _Str, _In_z_ const wchar_t * _Control); |
| 279 |
|
_Check_return_ _CRTIMP _CONST_RETURN wchar_t * __cdecl wcsstr(_In_z_ const wchar_t * _Str, _In_z_ const wchar_t * _SubStr); |
| 280 |
|
_Check_return_ _CRT_INSECURE_DEPRECATE(wcstok_s) _CRTIMP wchar_t * __cdecl wcstok(_Inout_opt_z_ wchar_t * _Str, _In_z_ const wchar_t * _Delim); |
| 281 |
|
#if __STDC_WANT_SECURE_LIB__ |
| 282 |
|
_Check_return_ _CRTIMP_ALTERNATIVE wchar_t * __cdecl wcstok_s(_Inout_opt_z_ wchar_t * _Str, _In_z_ const wchar_t * _Delim, _Inout_ _Deref_prepost_opt_z_ wchar_t ** _Context); |
| 283 |
|
#endif |
| 284 |
|
_Check_return_ _CRT_INSECURE_DEPRECATE(_wcserror_s) _CRTIMP wchar_t * __cdecl _wcserror(_In_ int _ErrNum); |
| 285 |
|
_Check_return_wat_ _CRTIMP errno_t __cdecl _wcserror_s(_Out_opt_z_cap_(_SizeInWords) wchar_t * _Buf, _In_ size_t _SizeInWords, _In_ int _ErrNum); |
| 286 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _wcserror_s, wchar_t, _Buffer, _In_ int, _Error) |
| 287 |
|
_Check_return_ _CRT_INSECURE_DEPRECATE(__wcserror_s) _CRTIMP wchar_t * __cdecl __wcserror(_In_opt_z_ const wchar_t * _Str); |
| 288 |
|
_Check_return_wat_ _CRTIMP errno_t __cdecl __wcserror_s(_Out_opt_z_cap_(_SizeInWords) wchar_t * _Buffer, _In_ size_t _SizeInWords, _In_z_ const wchar_t * _ErrMsg); |
| 289 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, __wcserror_s, wchar_t, _Buffer, _In_z_ const wchar_t *, _ErrorMessage) |
| 290 |
|
|
| 291 |
|
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2); |
| 292 |
|
_Check_return_ _CRTIMP int __cdecl _wcsicmp_l(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_opt_ _locale_t _Locale); |
| 293 |
|
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount); |
| 294 |
|
_Check_return_ _CRTIMP int __cdecl _wcsnicmp_l(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale); |
| 295 |
|
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl _wcsnset_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ size_t _SizeInWords, _In_ wchar_t _Val, _In_ size_t _MaxCount); |
| 296 |
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, _wcsnset_s, _Deref_prepost_z_ wchar_t, _Dst, wchar_t, _Val, _In_ size_t, _MaxCount) |
| 297 |
|
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wcsnset, _wcsnset_s, _Deref_inout_z_cap_c_(_Size) wchar_t, _Inout_z_cap_(_MaxCount), wchar_t, _Str, wchar_t, _Val, _In_ size_t, _MaxCount) |
| 298 |
|
_CRTIMP wchar_t * __cdecl _wcsrev(_Inout_z_ wchar_t * _Str); |