ReactOS 0.4.16-dev-1972-gf20c09f
_wcsnicmp_nt.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS NT CRT library
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Implementation of _wcsnicmp
5 * COPYRIGHT: Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
6 */
7
8#include <string.h>
9
11int
14 _In_reads_or_z_(_MaxCount) wchar_t const* _String1,
15 _In_reads_or_z_(_MaxCount) wchar_t const* _String2,
16 _In_ size_t _MaxCount)
17{
18 wchar_t const* p1 = _String1;
19 wchar_t const* p2 = _String2;
20 size_t remaining = _MaxCount;
21 wchar_t chr1, chr2;
22
23 while (remaining-- != 0)
24 {
25 chr1 = *p1++;
26 chr2 = *p2++;
27
28 if (chr1 != chr2)
29 {
30 if ((chr1 >= 'A') && (chr1 <= 'Z'))
31 chr1 += ('a' - 'A');
32 if ((chr2 >= 'A') && (chr2 <= 'Z'))
33 chr2 += ('a' - 'A');
34
35 if (chr1 != chr2)
36 return chr1 - chr2;
37 }
38 else if (chr1 == 0)
39 {
40 break;
41 }
42 }
43
44 return 0;
45}
_Check_return_ int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) wchar_t const *_String1, _In_reads_or_z_(_MaxCount) wchar_t const *_String2, _In_ size_t _MaxCount)
Definition: _wcsnicmp_nt.c:13
#define __cdecl
Definition: accygwin.h:79
_In_z_ wchar_t const * _String2
#define _Check_return_
Definition: no_sal2.h:60
#define _In_reads_or_z_(s)
Definition: no_sal2.h:174
#define _In_
Definition: no_sal2.h:158
_MaxCount
Definition: memory.h:72