2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
15 #ifndef _NLSCMP_DEFINED
16 #define _NLSCMP_DEFINED
17 #define _NLSCMPERROR 2147483647
24 #define NULL ((void *)0)
28 #ifndef _CRT_MEMORY_DEFINED
29 #define _CRT_MEMORY_DEFINED
35 _Out_writes_bytes_opt_(_MaxCount
) void *_Dst
,
36 _In_
const void *_Src
,
38 _In_
size_t _MaxCount
);
46 _In_reads_bytes_opt_(_MaxCount
) const void *_Buf
,
48 _In_
size_t _MaxCount
);
55 _In_reads_bytes_opt_(_Size
) const void *_Buf1
,
56 _In_reads_bytes_opt_(_Size
) const void *_Buf2
,
64 _In_reads_bytes_opt_(_Size
) const void *_Buf1
,
65 _In_reads_bytes_opt_(_Size
) const void *_Buf2
,
67 _In_opt_ _locale_t _Locale
);
73 _In_reads_bytes_(_Size
) const void *_Buf1
,
74 _In_reads_bytes_(_Size
) const void *_Buf2
,
78 _At_buffer_((unsigned char*)_Dst
,
81 _Post_satisfies_(((unsigned char*)_Dst
)[_Iter_
] == ((unsigned char*)_Src
)[_Iter_
]))
82 _CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s
)
86 _Out_writes_bytes_all_(_MaxCount
) void *_Dst
,
87 _In_reads_bytes_(_MaxCount
) const void *_Src
,
88 _In_
size_t _MaxCount
);
91 _At_buffer_((unsigned char*)_Dst
,
94 _Post_satisfies_(((unsigned char*)_Dst
)[_Iter_
] == _Val
))
98 _Out_writes_bytes_all_(_Size
) void *_Dst
,
105 _CRT_NONSTDC_DEPRECATE(_memccpy
)
109 _Out_writes_bytes_opt_(_Size
) void *_Dst
,
110 _In_reads_bytes_opt_(_Size
) const void *_Src
,
116 _CRT_NONSTDC_DEPRECATE(_memicmp
)
120 _In_reads_bytes_opt_(_Size
) const void *_Buf1
,
121 _In_reads_bytes_opt_(_Size
) const void *_Buf2
,
124 #endif /* NO_OLDNAMES */
126 #endif /* _CRT_MEMORY_DEFINED */
131 _Inout_z_
char *_Str
,
137 _Out_writes_z_(_String_length_(_Source
) + 1) char *_Dest
,
138 _In_z_
const char *_Source
);
143 _Inout_updates_z_(_String_length_(_Dest
) + _String_length_(_Source
) + 1) char *_Dest
,
144 _In_z_
const char *_Source
);
150 _In_z_
const char *_Str1
,
151 _In_z_
const char *_Str2
);
156 _In_z_
const char *_Str
);
158 _When_(_MaxCount
> _String_length_(_Str
),
159 _Post_satisfies_(return == _String_length_(_Str
)))
160 _When_(_MaxCount
<= _String_length_(_Str
),
161 _Post_satisfies_(return == _MaxCount
))
166 _In_reads_or_z_(_MaxCount
) const char *_Str
,
167 _In_
size_t _MaxCount
);
169 _CRT_INSECURE_DEPRECATE_MEMORY(memmove_s
)
173 _Out_writes_bytes_all_opt_(_MaxCount
) void *_Dst
,
174 _In_reads_bytes_opt_(_MaxCount
) const void *_Src
,
175 _In_
size_t _MaxCount
);
182 _In_opt_z_
const char *_Src
);
190 _In_z_
const char *_Str
,
198 _In_z_
const char *_Str1
,
199 _In_z_
const char *_Str2
);
206 _In_z_
const char *_Str1
,
207 _In_z_
const char *_Str2
);
214 _In_z_
const char *_Str1
,
215 _In_z_
const char *_Str2
,
216 _In_opt_ _locale_t _Locale
);
223 _In_z_
const char *_Str1
,
224 _In_z_
const char *_Str2
);
231 _In_z_
const char *_Str1
,
232 _In_z_
const char *_Str2
,
233 _In_opt_ _locale_t _Locale
);
240 _In_z_
const char *_Str1
,
241 _In_z_
const char *_Str2
);
248 _In_z_
const char *_Str1
,
249 _In_z_
const char *_Str2
,
250 _In_opt_ _locale_t _Locale
);
257 _In_z_
const char *_Str1
,
258 _In_z_
const char *_Str2
,
259 _In_
size_t _MaxCount
);
266 _In_z_
const char *_Str1
,
267 _In_z_
const char *_Str2
,
268 _In_
size_t _MaxCount
,
269 _In_opt_ _locale_t _Locale
);
276 _In_z_
const char *_Str1
,
277 _In_z_
const char *_Str2
,
278 _In_
size_t _MaxCount
);
285 _In_z_
const char *_Str1
,
286 _In_z_
const char *_Str2
,
287 _In_
size_t _MaxCount
,
288 _In_opt_ _locale_t _Locale
);
295 _In_z_
const char *_Str
,
296 _In_z_
const char *_Control
);
300 _CRT_INSECURE_DEPRECATE(_strerror_s
)
304 _In_opt_z_
const char *_ErrMsg
);
308 _CRT_INSECURE_DEPRECATE(strerror_s
)
318 _Inout_z_
char *_String
);
336 _In_reads_or_z_(_MaxCount
) const char *_Str1
,
337 _In_reads_or_z_(_MaxCount
) const char *_Str2
,
338 _In_
size_t _MaxCount
);
345 _In_reads_or_z_(_MaxCount
) const char *_Str1
,
346 _In_reads_or_z_(_MaxCount
) const char *_Str2
,
347 _In_
size_t _MaxCount
);
354 _In_reads_or_z_(_MaxCount
) const char *_Str1
,
355 _In_reads_or_z_(_MaxCount
) const char *_Str2
,
356 _In_
size_t _MaxCount
,
357 _In_opt_ _locale_t _Locale
);
367 _CRT_INSECURE_DEPRECATE_CORE(_strnset_s
)
381 _In_z_
const char *_Str
,
382 _In_z_
const char *_Control
);
390 _In_z_
const char *_Str
,
397 _Inout_z_
char *_Str
);
404 _In_z_
const char *_Str
,
405 _In_z_
const char *_Control
);
413 _In_z_
const char *_Str
,
414 _In_z_
const char *_SubStr
);
418 _CRT_INSECURE_DEPRECATE_CORE(strtok_s
)
422 _Inout_opt_z_
char *_Str
,
423 _In_z_
const char *_Delim
);
429 _Inout_z_
char *_String
);
442 _Out_writes_opt_(_MaxCount
) _Post_maybez_
char *_Dst
,
443 _In_z_
const char *_Src
,
444 _In_
size_t _MaxCount
);
451 _Out_writes_opt_(_MaxCount
) _Post_maybez_
char *_Dst
,
452 _In_z_
const char *_Src
,
453 _In_
size_t _MaxCount
,
454 _In_opt_ _locale_t _Locale
);
456 #if __STDC_WANT_SECURE_LIB__
463 _Inout_updates_z_(_DstSize
) char *_Dst
,
464 _In_
size_t _DstSize
,
472 _Out_writes_z_(_SizeInBytes
) char *_Buf
,
473 _In_
size_t _SizeInBytes
,
474 _In_opt_z_
const char *_ErrMsg
);
481 _Inout_updates_z_(_Size
) char *_Str
,
489 _Inout_updates_z_(_Size
) char *_Str
,
491 _In_opt_ _locale_t _Locale
);
498 _Inout_updates_z_(_Size
) char *_Str
,
501 _In_
size_t _MaxCount
);
508 _Inout_updates_z_(_Size
) char *_Str
,
516 _Inout_updates_z_(_Size
) char *_Str
,
525 _Out_writes_z_(_Size
) char *_Dst
,
527 _In_z_
const char *_Src
);
534 _Inout_updates_z_(_Size
) char *_Dst
,
536 _In_z_
const char *_Src
);
538 #endif /* __STDC_WANT_SECURE_LIB__ */
544 _CRT_NONSTDC_DEPRECATE(_strdup
)
548 _In_opt_z_
const char *_Src
);
552 _CRT_NONSTDC_DEPRECATE(_strcmpi
)
556 _In_z_
const char *_Str1
,
557 _In_z_
const char *_Str2
);
561 _CRT_NONSTDC_DEPRECATE(_stricmp
)
565 _In_z_
const char *_Str1
,
566 _In_z_
const char *_Str2
);
569 _CRT_NONSTDC_DEPRECATE(_strlwr
)
573 _Inout_z_
char *_Str
);
577 _CRT_NONSTDC_DEPRECATE(_strnicmp
)
581 _In_z_
const char *_Str1
,
582 _In_z_
const char *_Str
,
583 _In_
size_t _MaxCount
);
585 // __CRT_INLINE int __cdecl strncasecmp (const char *__sz1, const char *__sz2, size_t __sizeMaxCompare) { return _strnicmp (__sz1, __sz2, __sizeMaxCompare); }
586 // __CRT_INLINE int __cdecl strcasecmp (const char *__sz1, const char *__sz2) { return _stricmp (__sz1, __sz2); }
589 _CRT_NONSTDC_DEPRECATE(_strnset
)
593 _Inout_updates_z_(_MaxCount
) char *_Str
,
595 _In_
size_t _MaxCount
);
598 _CRT_NONSTDC_DEPRECATE(_strrev
)
602 _Inout_z_
char *_Str
);
605 _CRT_NONSTDC_DEPRECATE(_strset
)
609 _Inout_z_
char *_Str
,
613 _CRT_NONSTDC_DEPRECATE(_strupr
)
617 _Inout_z_
char *_Str
);
619 #endif /* NO_OLDNAMES */
621 #ifndef _WSTRING_DEFINED
622 #define _WSTRING_DEFINED
629 _In_z_
const wchar_t *_Str
);
632 _CRT_INSECURE_DEPRECATE(wcsat_s
)
636 _Inout_updates_z_(_String_length_(_Dest
) + _String_length_(_Source
) + 1) wchar_t *_Dest
,
637 _In_z_
const wchar_t *_Source
);
640 _When_(return != 0, _Ret_range_(_Str
, _Str
+ _String_length_(_Str
) - 1))
646 _In_z_
const wchar_t *_Str
,
654 _In_z_
const wchar_t *_Str1
,
655 _In_z_
const wchar_t *_Str2
);
658 _CRT_INSECURE_DEPRECATE(wcscpy_s
)
662 _Out_writes_z_(_String_length_(_Source
) + 1) wchar_t *_Dest
,
663 _In_z_
const wchar_t *_Source
);
670 _In_z_
const wchar_t *_Str
,
671 _In_z_
const wchar_t *_Control
);
677 const wchar_t *_Source
,
680 _Ret_range_(==,_String_length_(_Str
))
685 _In_z_
const wchar_t *_Str
);
687 _When_(_MaxCount
> _String_length_(_Src
),
688 _Post_satisfies_(return == _String_length_(_Src
)))
689 _When_(_MaxCount
<= _String_length_(_Src
),
690 _Post_satisfies_(return == _MaxCount
))
692 _CRT_INSECURE_DEPRECATE(wcsnlen_s
)
696 _In_reads_or_z_(_MaxCount
) const wchar_t *_Src
,
697 _In_
size_t _MaxCount
);
704 _In_reads_or_z_(_MaxCount
) const wchar_t *_Str1
,
705 _In_reads_or_z_(_MaxCount
) const wchar_t *_Str2
,
706 _In_
size_t _MaxCount
);
709 _CRT_INSECURE_DEPRECATE(wcsncpy_s
)
714 const wchar_t *_Source
,
723 _In_z_
const wchar_t *_Str
,
724 _In_z_
const wchar_t *_Control
);
732 _In_z_
const wchar_t *_Str
,
740 _In_z_
const wchar_t *_Str
,
741 _In_z_
const wchar_t *_Control
);
744 _Ret_range_(_Str
, _Str
+ _String_length_(_Str
) - 1))
750 _In_z_
const wchar_t *_Str
,
751 _In_z_
const wchar_t *_SubStr
);
755 _CRT_INSECURE_DEPRECATE_CORE(wcstok_s
)
759 _Inout_opt_z_
wchar_t *_Str
,
760 _In_z_
const wchar_t *_Delim
);
764 _CRT_INSECURE_DEPRECATE(_wcserror_s
)
772 _CRT_INSECURE_DEPRECATE(__wcserror_s
)
776 _In_opt_z_
const wchar_t *_Str
);
783 _In_z_
const wchar_t *_Str1
,
784 _In_z_
const wchar_t *_Str2
);
791 _In_z_
const wchar_t *_Str1
,
792 _In_z_
const wchar_t *_Str2
,
793 _In_opt_ _locale_t _Locale
);
800 _In_reads_or_z_(_MaxCount
) const wchar_t *_Str1
,
801 _In_reads_or_z_(_MaxCount
) const wchar_t *_Str2
,
802 _In_
size_t _MaxCount
);
809 _In_reads_or_z_(_MaxCount
) const wchar_t *_Str1
,
810 _In_reads_or_z_(_MaxCount
) const wchar_t *_Str2
,
811 _In_
size_t _MaxCount
,
812 _In_opt_ _locale_t _Locale
);
815 _CRT_INSECURE_DEPRECATE_CORE(_wcsnset_s
)
827 _Inout_z_
wchar_t *_Str
);
830 _CRT_INSECURE_DEPRECATE_CORE(_wcsset_s
)
841 _Inout_z_
wchar_t *_String
);
853 _Inout_z_
wchar_t *_String
);
866 _Out_writes_opt_(_MaxCount
) _Post_maybez_
wchar_t *_Dst
,
867 _In_z_
const wchar_t *_Src
,
868 _In_
size_t _MaxCount
);
875 _Out_writes_opt_(_MaxCount
) _Post_maybez_
wchar_t *_Dst
,
876 _In_z_
const wchar_t *_Src
,
877 _In_
size_t _MaxCount
,
878 _In_opt_ _locale_t _Locale
);
885 _In_z_
const wchar_t *_Str1
,
886 _In_z_
const wchar_t *_Str2
);
893 _In_z_
const wchar_t *_Str1
,
894 _In_z_
const wchar_t *_Str2
,
895 _In_opt_ _locale_t _Locale
);
902 _In_z_
const wchar_t *_Str1
,
903 _In_z_
const wchar_t *_Str2
);
910 _In_z_
const wchar_t *_Str1
,
911 _In_z_
const wchar_t *_Str2
,
912 _In_opt_ _locale_t _Locale
);
919 _In_z_
const wchar_t *_Str1
,
920 _In_z_
const wchar_t *_Str2
,
921 _In_
size_t _MaxCount
);
928 _In_z_
const wchar_t *_Str1
,
929 _In_z_
const wchar_t *_Str2
,
930 _In_
size_t _MaxCount
,
931 _In_opt_ _locale_t _Locale
);
938 _In_z_
const wchar_t *_Str1
,
939 _In_z_
const wchar_t *_Str2
,
940 _In_
size_t _MaxCount
);
947 _In_z_
const wchar_t *_Str1
,
948 _In_z_
const wchar_t *_Str2
,
949 _In_
size_t _MaxCount
,
950 _In_opt_ _locale_t _Locale
);
952 #if __STDC_WANT_SECURE_LIB__
960 const wchar_t *_Source
);
967 _Out_writes_z_(SizeInWords
) wchar_t *Dest
,
968 _In_
size_t SizeInWords
,
969 _In_z_
const wchar_t *_Source
);
983 _Out_writes_z_(_DstSizeInChars
) wchar_t *_Dst
,
984 _In_
size_t _DstSizeInChars
,
985 _In_z_
const wchar_t *_Src
,
986 _In_
size_t _MaxCount
);
993 _Out_writes_opt_z_(_SizeInWords
) wchar_t *_Buf
,
994 _In_
size_t _SizeInWords
,
1002 _Out_writes_opt_z_(_SizeInWords
) wchar_t *_Buffer
,
1003 _In_
size_t _SizeInWords
,
1004 _In_z_
const wchar_t *_ErrMsg
);
1011 _Inout_updates_z_(_DstSizeInWords
) wchar_t *_Dst
,
1012 _In_
size_t _DstSizeInWords
,
1014 _In_
size_t _MaxCount
);
1021 _Inout_updates_z_(_SizeInWords
) wchar_t *_Str
,
1022 _In_
size_t _SizeInWords
,
1030 _Inout_updates_z_(_SizeInWords
) wchar_t *_Str
,
1031 _In_
size_t _SizeInWords
);
1038 _Inout_updates_z_(_SizeInWords
) wchar_t *_Str
,
1039 _In_
size_t _SizeInWords
,
1040 _In_opt_ _locale_t _Locale
);
1047 _Inout_updates_z_(_Size
) wchar_t *_Str
,
1055 _Inout_updates_z_(_Size
) wchar_t *_Str
,
1057 _In_opt_ _locale_t _Locale
);
1059 #endif /* __STDC_WANT_SECURE_LIB__ */
1065 _CRT_NONSTDC_DEPRECATE(_wcsdup
)
1069 _In_z_
const wchar_t *_Str
);
1071 #define wcswcs wcsstr
1075 _CRT_NONSTDC_DEPRECATE(_wcsicmp
)
1079 _In_z_
const wchar_t *_Str1
,
1080 _In_z_
const wchar_t *_Str2
);
1084 _CRT_NONSTDC_DEPRECATE(_wcsnicmp
)
1088 _In_reads_or_z_(_MaxCount
) const wchar_t *_Str1
,
1089 _In_reads_or_z_(_MaxCount
) const wchar_t *_Str2
,
1090 _In_
size_t _MaxCount
);
1093 _CRT_NONSTDC_DEPRECATE(_wcsnset
)
1097 _Inout_updates_z_(_MaxCount
) wchar_t *_Str
,
1099 _In_
size_t _MaxCount
);
1102 _CRT_NONSTDC_DEPRECATE(_wcsrev
)
1106 _Inout_z_
wchar_t *_Str
);
1109 _CRT_NONSTDC_DEPRECATE(_wcsset
)
1113 _Inout_z_
wchar_t *_Str
,
1117 _CRT_NONSTDC_DEPRECATE(_wcslwr
)
1121 _Inout_z_
wchar_t *_Str
);
1124 _CRT_NONSTDC_DEPRECATE(_wcsupr
)
1128 _Inout_z_
wchar_t *_Str
);
1132 _CRT_NONSTDC_DEPRECATE(_wcsicoll
)
1136 _In_z_
const wchar_t *_Str1
,
1137 _In_z_
const wchar_t *_Str2
);
1139 #endif /* NO_OLDNAMES */
1141 #endif /* !_WSTRING_DEFINED */
1148 #define strcasecmp _stricmp
1149 #define strncasecmp _strnicmp
1150 #define stricmp _stricmp
1151 #define wcsicmp _wcsicmp
1153 #include <sec_api/string_s.h>