1 /** 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. 5 */ 6 #ifndef _INC_STRING 7 #define _INC_STRING 8 9 #include <crtdefs.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 #ifndef _NLSCMP_DEFINED 16 #define _NLSCMP_DEFINED 17 #define _NLSCMPERROR 2147483647 18 #endif 19 20 #ifndef NULL 21 #ifdef __cplusplus 22 #define NULL 0 23 #else 24 #define NULL ((void *)0) 25 #endif 26 #endif 27 28 #ifndef _CRT_MEMORY_DEFINED 29 #define _CRT_MEMORY_DEFINED 30 31 _CRTIMP 32 void* 33 __cdecl 34 _memccpy( 35 _Out_writes_bytes_opt_(_MaxCount) void *_Dst, 36 _In_ const void *_Src, 37 _In_ int _Val, 38 _In_ size_t _MaxCount); 39 40 _Must_inspect_result_ 41 _CRTIMP 42 _CONST_RETURN 43 void* 44 __cdecl 45 memchr( 46 _In_reads_bytes_opt_(_MaxCount) const void *_Buf, 47 _In_ int _Val, 48 _In_ size_t _MaxCount); 49 50 _Must_inspect_result_ 51 _CRTIMP 52 int 53 __cdecl 54 _memicmp( 55 _In_reads_bytes_opt_(_Size) const void *_Buf1, 56 _In_reads_bytes_opt_(_Size) const void *_Buf2, 57 _In_ size_t _Size); 58 59 _Must_inspect_result_ 60 _CRTIMP 61 int 62 __cdecl 63 _memicmp_l( 64 _In_reads_bytes_opt_(_Size) const void *_Buf1, 65 _In_reads_bytes_opt_(_Size) const void *_Buf2, 66 _In_ size_t _Size, 67 _In_opt_ _locale_t _Locale); 68 69 _Must_inspect_result_ 70 int 71 __cdecl 72 memcmp( 73 _In_reads_bytes_(_Size) const void *_Buf1, 74 _In_reads_bytes_(_Size) const void *_Buf2, 75 _In_ size_t _Size); 76 77 _Post_equal_to_(_Dst) 78 _At_buffer_((unsigned char*)_Dst, 79 _Iter_, 80 _MaxCount, 81 _Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == ((unsigned char*)_Src)[_Iter_])) 82 _CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s) 83 void* 84 __cdecl 85 memcpy( 86 _Out_writes_bytes_all_(_MaxCount) void *_Dst, 87 _In_reads_bytes_(_MaxCount) const void *_Src, 88 _In_ size_t _MaxCount); 89 90 _Post_equal_to_(_Dst) 91 _At_buffer_((unsigned char*)_Dst, 92 _Iter_, 93 _Size, 94 _Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == _Val)) 95 void* 96 __cdecl 97 memset( 98 _Out_writes_bytes_all_(_Size) void *_Dst, 99 _In_ int _Val, 100 _In_ size_t _Size); 101 102 #ifndef NO_OLDNAMES 103 104 _CRTIMP 105 _CRT_NONSTDC_DEPRECATE(_memccpy) 106 void* 107 __cdecl 108 memccpy( 109 _Out_writes_bytes_opt_(_Size) void *_Dst, 110 _In_reads_bytes_opt_(_Size) const void *_Src, 111 _In_ int _Val, 112 _In_ size_t _Size); 113 114 _Check_return_ 115 _CRTIMP 116 _CRT_NONSTDC_DEPRECATE(_memicmp) 117 int 118 __cdecl 119 memicmp( 120 _In_reads_bytes_opt_(_Size) const void *_Buf1, 121 _In_reads_bytes_opt_(_Size) const void *_Buf2, 122 _In_ size_t _Size); 123 124 #endif /* NO_OLDNAMES */ 125 126 #endif /* _CRT_MEMORY_DEFINED */ 127 128 char* 129 __cdecl 130 _strset( 131 _Inout_z_ char *_Str, 132 _In_ int _Val); 133 134 char* 135 __cdecl 136 strcpy( 137 _Out_writes_z_(_String_length_(_Source) + 1) char *_Dest, 138 _In_z_ const char *_Source); 139 140 char* 141 __cdecl 142 strcat( 143 _Inout_updates_z_(_String_length_(_Dest) + _String_length_(_Source) + 1) char *_Dest, 144 _In_z_ const char *_Source); 145 146 _Check_return_ 147 int 148 __cdecl 149 strcmp( 150 _In_z_ const char *_Str1, 151 _In_z_ const char *_Str2); 152 153 _CRTIMP 154 size_t 155 __cdecl 156 strlen( 157 _In_z_ const char *_Str); 158 159 _When_(_MaxCount > _String_length_(_Str), 160 _Post_satisfies_(return == _String_length_(_Str))) 161 _When_(_MaxCount <= _String_length_(_Str), 162 _Post_satisfies_(return == _MaxCount)) 163 _CRTIMP 164 size_t 165 __cdecl 166 strnlen( 167 _In_reads_or_z_(_MaxCount) const char *_Str, 168 _In_ size_t _MaxCount); 169 170 _CRT_INSECURE_DEPRECATE_MEMORY(memmove_s) 171 void* 172 __cdecl 173 memmove( 174 _Out_writes_bytes_all_opt_(_MaxCount) void *_Dst, 175 _In_reads_bytes_opt_(_MaxCount) const void *_Src, 176 _In_ size_t _MaxCount); 177 178 _Check_return_ 179 _CRTIMP 180 char* 181 __cdecl 182 _strdup( 183 _In_opt_z_ const char *_Src); 184 185 _Check_return_ 186 _CRTIMP 187 _CONST_RETURN 188 char* 189 __cdecl 190 strchr( 191 _In_z_ const char *_Str, 192 _In_ int _Val); 193 194 _Check_return_ 195 _CRTIMP 196 int 197 __cdecl 198 _stricmp( 199 _In_z_ const char *_Str1, 200 _In_z_ const char *_Str2); 201 202 _Check_return_ 203 _CRTIMP 204 int 205 __cdecl 206 _strcmpi( 207 _In_z_ const char *_Str1, 208 _In_z_ const char *_Str2); 209 210 _Check_return_ 211 _CRTIMP 212 int 213 __cdecl 214 _stricmp_l( 215 _In_z_ const char *_Str1, 216 _In_z_ const char *_Str2, 217 _In_opt_ _locale_t _Locale); 218 219 _Check_return_ 220 _CRTIMP 221 int 222 __cdecl 223 strcoll( 224 _In_z_ const char *_Str1, 225 _In_z_ const char *_Str2); 226 227 _Check_return_ 228 _CRTIMP 229 int 230 __cdecl 231 _strcoll_l( 232 _In_z_ const char *_Str1, 233 _In_z_ const char *_Str2, 234 _In_opt_ _locale_t _Locale); 235 236 _Check_return_ 237 _CRTIMP 238 int 239 __cdecl 240 _stricoll( 241 _In_z_ const char *_Str1, 242 _In_z_ const char *_Str2); 243 244 _Check_return_ 245 _CRTIMP 246 int 247 __cdecl 248 _stricoll_l( 249 _In_z_ const char *_Str1, 250 _In_z_ const char *_Str2, 251 _In_opt_ _locale_t _Locale); 252 253 _Check_return_ 254 _CRTIMP 255 int 256 __cdecl 257 _strncoll( 258 _In_z_ const char *_Str1, 259 _In_z_ const char *_Str2, 260 _In_ size_t _MaxCount); 261 262 _Check_return_ 263 _CRTIMP 264 int 265 __cdecl 266 _strncoll_l( 267 _In_z_ const char *_Str1, 268 _In_z_ const char *_Str2, 269 _In_ size_t _MaxCount, 270 _In_opt_ _locale_t _Locale); 271 272 _Check_return_ 273 _CRTIMP 274 int 275 __cdecl 276 _strnicoll( 277 _In_z_ const char *_Str1, 278 _In_z_ const char *_Str2, 279 _In_ size_t _MaxCount); 280 281 _Check_return_ 282 _CRTIMP 283 int 284 __cdecl 285 _strnicoll_l( 286 _In_z_ const char *_Str1, 287 _In_z_ const char *_Str2, 288 _In_ size_t _MaxCount, 289 _In_opt_ _locale_t _Locale); 290 291 _Check_return_ 292 _CRTIMP 293 size_t 294 __cdecl 295 strcspn( 296 _In_z_ const char *_Str, 297 _In_z_ const char *_Control); 298 299 _Check_return_ 300 _CRTIMP 301 _CRT_INSECURE_DEPRECATE(_strerror_s) 302 char* 303 __cdecl 304 _strerror( 305 _In_opt_z_ const char *_ErrMsg); 306 307 _Check_return_ 308 _CRTIMP 309 _CRT_INSECURE_DEPRECATE(strerror_s) 310 char* 311 __cdecl 312 strerror( 313 _In_ int); 314 315 _CRTIMP 316 char* 317 __cdecl 318 _strlwr( 319 _Inout_z_ char *_String); 320 321 char* 322 strlwr_l( 323 char *_String, 324 _locale_t _Locale); 325 326 char* 327 __cdecl 328 strncat( 329 char *_Dest, 330 const char *_Source, 331 size_t _Count); 332 333 _Check_return_ 334 int 335 __cdecl 336 strncmp( 337 _In_reads_or_z_(_MaxCount) const char *_Str1, 338 _In_reads_or_z_(_MaxCount) const char *_Str2, 339 _In_ size_t _MaxCount); 340 341 _Check_return_ 342 _CRTIMP 343 int 344 __cdecl 345 _strnicmp( 346 _In_reads_or_z_(_MaxCount) const char *_Str1, 347 _In_reads_or_z_(_MaxCount) const char *_Str2, 348 _In_ size_t _MaxCount); 349 350 _Check_return_ 351 _CRTIMP 352 int 353 __cdecl 354 _strnicmp_l( 355 _In_reads_or_z_(_MaxCount) const char *_Str1, 356 _In_reads_or_z_(_MaxCount) const char *_Str2, 357 _In_ size_t _MaxCount, 358 _In_opt_ _locale_t _Locale); 359 360 char* 361 __cdecl 362 strncpy( 363 char *_Dest, 364 const char *_Source, 365 size_t _Count); 366 367 _CRTIMP 368 _CRT_INSECURE_DEPRECATE_CORE(_strnset_s) 369 char* 370 __cdecl 371 _strnset( 372 char *_Str, 373 int _Val, 374 size_t _MaxCount); 375 376 _Check_return_ 377 _CRTIMP 378 _CONST_RETURN 379 char* 380 __cdecl 381 strpbrk( 382 _In_z_ const char *_Str, 383 _In_z_ const char *_Control); 384 385 _Check_return_ 386 _CRTIMP 387 _CONST_RETURN 388 char* 389 __cdecl 390 strrchr( 391 _In_z_ const char *_Str, 392 _In_ int _Ch); 393 394 _CRTIMP 395 char* 396 __cdecl 397 _strrev( 398 _Inout_z_ char *_Str); 399 400 _Check_return_ 401 _CRTIMP 402 size_t 403 __cdecl 404 strspn( 405 _In_z_ const char *_Str, 406 _In_z_ const char *_Control); 407 408 _Check_return_ 409 _CRTIMP 410 _CONST_RETURN 411 char* 412 __cdecl 413 strstr( 414 _In_z_ const char *_Str, 415 _In_z_ const char *_SubStr); 416 417 _Check_return_ 418 _CRTIMP 419 _CRT_INSECURE_DEPRECATE_CORE(strtok_s) 420 char* 421 __cdecl 422 strtok( 423 _Inout_opt_z_ char *_Str, 424 _In_z_ const char *_Delim); 425 426 _CRTIMP 427 char* 428 __cdecl 429 _strupr( 430 _Inout_z_ char *_String); 431 432 _CRTIMP 433 char* 434 _strupr_l( 435 char *_String, 436 _locale_t _Locale); 437 438 _Check_return_opt_ 439 _CRTIMP 440 size_t 441 __cdecl 442 strxfrm( 443 _Out_writes_opt_(_MaxCount) _Post_maybez_ char *_Dst, 444 _In_z_ const char *_Src, 445 _In_ size_t _MaxCount); 446 447 _Check_return_opt_ 448 _CRTIMP 449 size_t 450 __cdecl 451 _strxfrm_l( 452 _Out_writes_opt_(_MaxCount) _Post_maybez_ char *_Dst, 453 _In_z_ const char *_Src, 454 _In_ size_t _MaxCount, 455 _In_opt_ _locale_t _Locale); 456 457 #if __STDC_WANT_SECURE_LIB__ 458 459 _Check_return_wat_ 460 _CRTIMP 461 errno_t 462 __cdecl 463 _strset_s( 464 _Inout_updates_z_(_DstSize) char *_Dst, 465 _In_ size_t _DstSize, 466 _In_ int _Value); 467 468 _Check_return_wat_ 469 _CRTIMP 470 errno_t 471 __cdecl 472 _strerror_s( 473 _Out_writes_z_(_SizeInBytes) char *_Buf, 474 _In_ size_t _SizeInBytes, 475 _In_opt_z_ const char *_ErrMsg); 476 477 _Check_return_wat_ 478 _CRTIMP 479 errno_t 480 __cdecl 481 _strlwr_s( 482 _Inout_updates_z_(_Size) char *_Str, 483 _In_ size_t _Size); 484 485 _Check_return_wat_ 486 _CRTIMP 487 errno_t 488 __cdecl 489 _strlwr_s_l( 490 _Inout_updates_z_(_Size) char *_Str, 491 _In_ size_t _Size, 492 _In_opt_ _locale_t _Locale); 493 494 _Check_return_wat_ 495 _CRTIMP 496 errno_t 497 __cdecl 498 _strnset_s( 499 _Inout_updates_z_(_Size) char *_Str, 500 _In_ size_t _Size, 501 _In_ int _Val, 502 _In_ size_t _MaxCount); 503 504 _Check_return_wat_ 505 _CRTIMP 506 errno_t 507 __cdecl 508 _strupr_s( 509 _Inout_updates_z_(_Size) char *_Str, 510 _In_ size_t _Size); 511 512 _Check_return_wat_ 513 _CRTIMP 514 errno_t 515 __cdecl 516 _strupr_s_l( 517 _Inout_updates_z_(_Size) char *_Str, 518 _In_ size_t _Size, 519 _locale_t _Locale); 520 521 _Check_return_wat_ 522 _CRTIMP 523 errno_t 524 __cdecl 525 strcpy_s( 526 _Out_writes_z_(_Size) char *_Dst, 527 _In_ size_t _Size, 528 _In_z_ const char *_Src); 529 530 _Check_return_wat_ 531 _CRTIMP 532 errno_t 533 __cdecl 534 strcat_s( 535 _Inout_updates_z_(_Size) char *_Dst, 536 _In_ size_t _Size, 537 _In_z_ const char *_Src); 538 539 #endif /* __STDC_WANT_SECURE_LIB__ */ 540 541 #ifndef NO_OLDNAMES 542 543 _Check_return_ 544 _CRTIMP 545 _CRT_NONSTDC_DEPRECATE(_strdup) 546 char* 547 __cdecl 548 strdup( 549 _In_opt_z_ const char *_Src); 550 551 _Check_return_ 552 _CRTIMP 553 _CRT_NONSTDC_DEPRECATE(_strcmpi) 554 int 555 __cdecl 556 strcmpi( 557 _In_z_ const char *_Str1, 558 _In_z_ const char *_Str2); 559 560 _Check_return_ 561 _CRTIMP 562 _CRT_NONSTDC_DEPRECATE(_stricmp) 563 int 564 __cdecl 565 stricmp( 566 _In_z_ const char *_Str1, 567 _In_z_ const char *_Str2); 568 569 _CRTIMP 570 _CRT_NONSTDC_DEPRECATE(_strlwr) 571 char* 572 __cdecl 573 strlwr( 574 _Inout_z_ char *_Str); 575 576 _Check_return_ 577 _CRTIMP 578 _CRT_NONSTDC_DEPRECATE(_strnicmp) 579 int 580 __cdecl 581 strnicmp( 582 _In_z_ const char *_Str1, 583 _In_z_ const char *_Str, 584 _In_ size_t _MaxCount); 585 586 // __CRT_INLINE int __cdecl strncasecmp (const char *__sz1, const char *__sz2, size_t __sizeMaxCompare) { return _strnicmp (__sz1, __sz2, __sizeMaxCompare); } 587 // __CRT_INLINE int __cdecl strcasecmp (const char *__sz1, const char *__sz2) { return _stricmp (__sz1, __sz2); } 588 589 _CRTIMP 590 _CRT_NONSTDC_DEPRECATE(_strnset) 591 char* 592 __cdecl 593 strnset( 594 _Inout_updates_z_(_MaxCount) char *_Str, 595 _In_ int _Val, 596 _In_ size_t _MaxCount); 597 598 _CRTIMP 599 _CRT_NONSTDC_DEPRECATE(_strrev) 600 char* 601 __cdecl 602 strrev( 603 _Inout_z_ char *_Str); 604 605 _CRTIMP 606 _CRT_NONSTDC_DEPRECATE(_strset) 607 char* 608 __cdecl 609 strset( 610 _Inout_z_ char *_Str, 611 _In_ int _Val); 612 613 _CRTIMP 614 _CRT_NONSTDC_DEPRECATE(_strupr) 615 char* 616 __cdecl 617 strupr( 618 _Inout_z_ char *_Str); 619 620 #endif /* NO_OLDNAMES */ 621 622 #ifndef _WSTRING_DEFINED 623 #define _WSTRING_DEFINED 624 625 _Check_return_ 626 _CRTIMP 627 wchar_t* 628 __cdecl 629 _wcsdup( 630 _In_z_ const wchar_t *_Str); 631 632 _CRTIMP 633 _CRT_INSECURE_DEPRECATE(wcsat_s) 634 wchar_t* 635 __cdecl 636 wcscat( 637 _Inout_updates_z_(_String_length_(_Dest) + _String_length_(_Source) + 1) wchar_t *_Dest, 638 _In_z_ const wchar_t *_Source); 639 640 _Check_return_ 641 _When_(return != 0, _Ret_range_(_Str, _Str + _String_length_(_Str) - 1)) 642 _CRTIMP 643 _CONST_RETURN 644 wchar_t* 645 __cdecl 646 wcschr( 647 _In_z_ const wchar_t *_Str, 648 wchar_t _Ch); 649 650 _Check_return_ 651 _CRTIMP 652 int 653 __cdecl 654 wcscmp( 655 _In_z_ const wchar_t *_Str1, 656 _In_z_ const wchar_t *_Str2); 657 658 _CRTIMP 659 _CRT_INSECURE_DEPRECATE(wcscpy_s) 660 wchar_t* 661 __cdecl 662 wcscpy( 663 _Out_writes_z_(_String_length_(_Source) + 1) wchar_t *_Dest, 664 _In_z_ const wchar_t *_Source); 665 666 _Check_return_ 667 _CRTIMP 668 size_t 669 __cdecl 670 wcscspn( 671 _In_z_ const wchar_t *_Str, 672 _In_z_ const wchar_t *_Control); 673 674 _CRTIMP 675 wchar_t* 676 __cdecl 677 wcsncat( 678 wchar_t *_Dest, 679 const wchar_t *_Source, 680 size_t _Count); 681 682 _Ret_range_(==,_String_length_(_Str)) 683 _CRTIMP 684 size_t 685 __cdecl 686 wcslen( 687 _In_z_ const wchar_t *_Str); 688 689 _When_(_MaxCount > _String_length_(_Src), 690 _Post_satisfies_(return == _String_length_(_Src))) 691 _When_(_MaxCount <= _String_length_(_Src), 692 _Post_satisfies_(return == _MaxCount)) 693 _CRTIMP 694 _CRT_INSECURE_DEPRECATE(wcsnlen_s) 695 size_t 696 __cdecl 697 wcsnlen( 698 _In_reads_or_z_(_MaxCount) const wchar_t *_Src, 699 _In_ size_t _MaxCount); 700 701 _Check_return_ 702 _CRTIMP 703 int 704 __cdecl 705 wcsncmp( 706 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 707 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 708 _In_ size_t _MaxCount); 709 710 _CRTIMP 711 _CRT_INSECURE_DEPRECATE(wcsncpy_s) 712 wchar_t* 713 __cdecl 714 wcsncpy( 715 wchar_t *_Dest, 716 const wchar_t *_Source, 717 size_t _Count); 718 719 _Check_return_ 720 _CRTIMP 721 _CONST_RETURN 722 wchar_t* 723 __cdecl 724 wcspbrk( 725 _In_z_ const wchar_t *_Str, 726 _In_z_ const wchar_t *_Control); 727 728 _Check_return_ 729 _CRTIMP 730 _CONST_RETURN 731 wchar_t* 732 __cdecl 733 wcsrchr( 734 _In_z_ const wchar_t *_Str, 735 _In_ wchar_t _Ch); 736 737 _Check_return_ 738 _CRTIMP 739 size_t 740 __cdecl 741 wcsspn( 742 _In_z_ const wchar_t *_Str, 743 _In_z_ const wchar_t *_Control); 744 745 _When_(return != 0, 746 _Ret_range_(_Str, _Str + _String_length_(_Str) - 1)) 747 _CRTIMP 748 _CONST_RETURN 749 wchar_t* 750 __cdecl 751 wcsstr( 752 _In_z_ const wchar_t *_Str, 753 _In_z_ const wchar_t *_SubStr); 754 755 _Check_return_ 756 _CRTIMP 757 _CRT_INSECURE_DEPRECATE_CORE(wcstok_s) 758 wchar_t* 759 __cdecl 760 wcstok( 761 _Inout_opt_z_ wchar_t *_Str, 762 _In_z_ const wchar_t *_Delim); 763 764 _Check_return_ 765 _CRTIMP 766 _CRT_INSECURE_DEPRECATE(_wcserror_s) 767 wchar_t* 768 __cdecl 769 _wcserror( 770 _In_ int _ErrNum); 771 772 _Check_return_ 773 _CRTIMP 774 _CRT_INSECURE_DEPRECATE(__wcserror_s) 775 wchar_t* 776 __cdecl 777 __wcserror( 778 _In_opt_z_ const wchar_t *_Str); 779 780 _Check_return_ 781 _CRTIMP 782 int 783 __cdecl 784 _wcsicmp( 785 _In_z_ const wchar_t *_Str1, 786 _In_z_ const wchar_t *_Str2); 787 788 _Check_return_ 789 _CRTIMP 790 int 791 __cdecl 792 _wcsicmp_l( 793 _In_z_ const wchar_t *_Str1, 794 _In_z_ const wchar_t *_Str2, 795 _In_opt_ _locale_t _Locale); 796 797 _Check_return_ 798 _CRTIMP 799 int 800 __cdecl 801 _wcsnicmp( 802 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 803 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 804 _In_ size_t _MaxCount); 805 806 _Check_return_ 807 _CRTIMP 808 int 809 __cdecl 810 _wcsnicmp_l( 811 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 812 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 813 _In_ size_t _MaxCount, 814 _In_opt_ _locale_t _Locale); 815 816 _CRTIMP 817 _CRT_INSECURE_DEPRECATE_CORE(_wcsnset_s) 818 wchar_t* 819 __cdecl 820 _wcsnset( 821 wchar_t *_Str, 822 wchar_t _Val, 823 size_t _MaxCount); 824 825 _CRTIMP 826 wchar_t* 827 __cdecl 828 _wcsrev( 829 _Inout_z_ wchar_t *_Str); 830 831 _CRTIMP 832 _CRT_INSECURE_DEPRECATE_CORE(_wcsset_s) 833 wchar_t* 834 __cdecl 835 _wcsset( 836 wchar_t *_Str, 837 wchar_t _Val); 838 839 _CRTIMP 840 wchar_t* 841 __cdecl 842 _wcslwr( 843 _Inout_z_ wchar_t *_String); 844 845 _CRTIMP 846 wchar_t* 847 _wcslwr_l( 848 wchar_t *_String, 849 _locale_t _Locale); 850 851 _CRTIMP 852 wchar_t* 853 __cdecl 854 _wcsupr( 855 _Inout_z_ wchar_t *_String); 856 857 _CRTIMP 858 wchar_t* 859 _wcsupr_l( 860 wchar_t *_String, 861 _locale_t _Locale); 862 863 _Check_return_opt_ 864 _CRTIMP 865 size_t 866 __cdecl 867 wcsxfrm( 868 _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t *_Dst, 869 _In_z_ const wchar_t *_Src, 870 _In_ size_t _MaxCount); 871 872 _Check_return_opt_ 873 _CRTIMP 874 size_t 875 __cdecl 876 _wcsxfrm_l( 877 _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t *_Dst, 878 _In_z_ const wchar_t *_Src, 879 _In_ size_t _MaxCount, 880 _In_opt_ _locale_t _Locale); 881 882 _Check_return_ 883 _CRTIMP 884 int 885 __cdecl 886 wcscoll( 887 _In_z_ const wchar_t *_Str1, 888 _In_z_ const wchar_t *_Str2); 889 890 _Check_return_ 891 _CRTIMP 892 int 893 __cdecl 894 _wcscoll_l( 895 _In_z_ const wchar_t *_Str1, 896 _In_z_ const wchar_t *_Str2, 897 _In_opt_ _locale_t _Locale); 898 899 _Check_return_ 900 _CRTIMP 901 int 902 __cdecl 903 _wcsicoll( 904 _In_z_ const wchar_t *_Str1, 905 _In_z_ const wchar_t *_Str2); 906 907 _Check_return_ 908 _CRTIMP 909 int 910 __cdecl 911 _wcsicoll_l( 912 _In_z_ const wchar_t *_Str1, 913 _In_z_ const wchar_t *_Str2, 914 _In_opt_ _locale_t _Locale); 915 916 _Check_return_ 917 _CRTIMP 918 int 919 __cdecl 920 _wcsncoll( 921 _In_z_ const wchar_t *_Str1, 922 _In_z_ const wchar_t *_Str2, 923 _In_ size_t _MaxCount); 924 925 _Check_return_ 926 _CRTIMP 927 int 928 __cdecl 929 _wcsncoll_l( 930 _In_z_ const wchar_t *_Str1, 931 _In_z_ const wchar_t *_Str2, 932 _In_ size_t _MaxCount, 933 _In_opt_ _locale_t _Locale); 934 935 _Check_return_ 936 _CRTIMP 937 int 938 __cdecl 939 _wcsnicoll( 940 _In_z_ const wchar_t *_Str1, 941 _In_z_ const wchar_t *_Str2, 942 _In_ size_t _MaxCount); 943 944 _Check_return_ 945 _CRTIMP 946 int 947 __cdecl 948 _wcsnicoll_l( 949 _In_z_ const wchar_t *_Str1, 950 _In_z_ const wchar_t *_Str2, 951 _In_ size_t _MaxCount, 952 _In_opt_ _locale_t _Locale); 953 954 #if __STDC_WANT_SECURE_LIB__ 955 956 _CRTIMP 957 errno_t 958 __cdecl 959 wcsat_s( 960 wchar_t *Dest, 961 size_t SizeInWords, 962 const wchar_t *_Source); 963 964 _Check_return_wat_ 965 _CRTIMP 966 errno_t 967 __cdecl 968 wcscpy_s( 969 _Out_writes_z_(SizeInWords) wchar_t *Dest, 970 _In_ size_t SizeInWords, 971 _In_z_ const wchar_t *_Source); 972 973 _CRTIMP 974 errno_t 975 __cdecl 976 wcsnlen_s( 977 wchar_t **_Src, 978 size_t _MaxCount); 979 980 _Check_return_wat_ 981 _CRTIMP 982 errno_t 983 __cdecl 984 wcsncpy_s( 985 _Out_writes_z_(_DstSizeInChars) wchar_t *_Dst, 986 _In_ size_t _DstSizeInChars, 987 _In_z_ const wchar_t *_Src, 988 _In_ size_t _MaxCount); 989 990 _Check_return_wat_ 991 _CRTIMP 992 errno_t 993 __cdecl 994 _wcserror_s( 995 _Out_writes_opt_z_(_SizeInWords) wchar_t *_Buf, 996 _In_ size_t _SizeInWords, 997 _In_ int _ErrNum); 998 999 _Check_return_wat_ 1000 _CRTIMP 1001 errno_t 1002 __cdecl 1003 __wcserror_s( 1004 _Out_writes_opt_z_(_SizeInWords) wchar_t *_Buffer, 1005 _In_ size_t _SizeInWords, 1006 _In_z_ const wchar_t *_ErrMsg); 1007 1008 _Check_return_wat_ 1009 _CRTIMP 1010 errno_t 1011 __cdecl 1012 _wcsnset_s( 1013 _Inout_updates_z_(_DstSizeInWords) wchar_t *_Dst, 1014 _In_ size_t _DstSizeInWords, 1015 _In_ wchar_t _Val, 1016 _In_ size_t _MaxCount); 1017 1018 _Check_return_wat_ 1019 _CRTIMP 1020 errno_t 1021 __cdecl 1022 _wcsset_s( 1023 _Inout_updates_z_(_SizeInWords) wchar_t *_Str, 1024 _In_ size_t _SizeInWords, 1025 _In_ wchar_t _Val); 1026 1027 _Check_return_wat_ 1028 _CRTIMP 1029 errno_t 1030 __cdecl 1031 _wcslwr_s( 1032 _Inout_updates_z_(_SizeInWords) wchar_t *_Str, 1033 _In_ size_t _SizeInWords); 1034 1035 _Check_return_wat_ 1036 _CRTIMP 1037 errno_t 1038 __cdecl 1039 _wcslwr_s_l( 1040 _Inout_updates_z_(_SizeInWords) wchar_t *_Str, 1041 _In_ size_t _SizeInWords, 1042 _In_opt_ _locale_t _Locale); 1043 1044 _Check_return_wat_ 1045 _CRTIMP 1046 errno_t 1047 __cdecl 1048 _wcsupr_s( 1049 _Inout_updates_z_(_Size) wchar_t *_Str, 1050 _In_ size_t _Size); 1051 1052 _Check_return_wat_ 1053 _CRTIMP 1054 errno_t 1055 __cdecl 1056 _wcsupr_s_l( 1057 _Inout_updates_z_(_Size) wchar_t *_Str, 1058 _In_ size_t _Size, 1059 _In_opt_ _locale_t _Locale); 1060 1061 #endif /* __STDC_WANT_SECURE_LIB__ */ 1062 1063 #ifndef NO_OLDNAMES 1064 1065 _Check_return_ 1066 _CRTIMP 1067 _CRT_NONSTDC_DEPRECATE(_wcsdup) 1068 wchar_t* 1069 __cdecl 1070 wcsdup( 1071 _In_z_ const wchar_t *_Str); 1072 1073 #define wcswcs wcsstr 1074 1075 _Check_return_ 1076 _CRTIMP 1077 _CRT_NONSTDC_DEPRECATE(_wcsicmp) 1078 int 1079 __cdecl 1080 wcsicmp( 1081 _In_z_ const wchar_t *_Str1, 1082 _In_z_ const wchar_t *_Str2); 1083 1084 _Check_return_ 1085 _CRTIMP 1086 _CRT_NONSTDC_DEPRECATE(_wcsnicmp) 1087 int 1088 __cdecl 1089 wcsnicmp( 1090 _In_reads_or_z_(_MaxCount) const wchar_t *_Str1, 1091 _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, 1092 _In_ size_t _MaxCount); 1093 1094 _CRTIMP 1095 _CRT_NONSTDC_DEPRECATE(_wcsnset) 1096 wchar_t* 1097 __cdecl 1098 wcsnset( 1099 _Inout_updates_z_(_MaxCount) wchar_t *_Str, 1100 _In_ wchar_t _Val, 1101 _In_ size_t _MaxCount); 1102 1103 _CRTIMP 1104 _CRT_NONSTDC_DEPRECATE(_wcsrev) 1105 wchar_t* 1106 __cdecl 1107 wcsrev( 1108 _Inout_z_ wchar_t *_Str); 1109 1110 _CRTIMP 1111 _CRT_NONSTDC_DEPRECATE(_wcsset) 1112 wchar_t* 1113 __cdecl 1114 wcsset( 1115 _Inout_z_ wchar_t *_Str, 1116 wchar_t _Val); 1117 1118 _CRTIMP 1119 _CRT_NONSTDC_DEPRECATE(_wcslwr) 1120 wchar_t* 1121 __cdecl 1122 wcslwr( 1123 _Inout_z_ wchar_t *_Str); 1124 1125 _CRTIMP 1126 _CRT_NONSTDC_DEPRECATE(_wcsupr) 1127 wchar_t* 1128 __cdecl 1129 wcsupr( 1130 _Inout_z_ wchar_t *_Str); 1131 1132 _Check_return_ 1133 _CRTIMP 1134 _CRT_NONSTDC_DEPRECATE(_wcsicoll) 1135 int 1136 __cdecl 1137 wcsicoll( 1138 _In_z_ const wchar_t *_Str1, 1139 _In_z_ const wchar_t *_Str2); 1140 1141 #endif /* NO_OLDNAMES */ 1142 1143 #endif /* !_WSTRING_DEFINED */ 1144 1145 #ifdef __cplusplus 1146 } 1147 #endif 1148 1149 // HACK 1150 #define strcasecmp _stricmp 1151 #define strncasecmp _strnicmp 1152 #define stricmp _stricmp 1153 #define wcsicmp _wcsicmp 1154 1155 #include <sec_api/string_s.h> 1156 #endif 1157