mirror of
https://github.com/reactos/reactos.git
synced 2026-06-01 00:40:26 +08:00
[LIBCNTPR] Implement NT versions of _strlwr, _strupr, _wcslwr, _wcsupr
This commit is contained in:
27
sdk/lib/crt/string/_strlwr_nt.c
Normal file
27
sdk/lib/crt/string/_strlwr_nt.c
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* PROJECT: ReactOS NT CRT library
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Implementation of _strlwr
|
||||
* COPYRIGHT: Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
char*
|
||||
__cdecl
|
||||
_strlwr(
|
||||
_Inout_z_ char* _String)
|
||||
{
|
||||
char ch, *p;
|
||||
|
||||
for (p = _String; *p; p++)
|
||||
{
|
||||
ch = *p;
|
||||
if ((ch >= 'A') && (ch <= 'Z'))
|
||||
{
|
||||
*p += 'a' - 'A';
|
||||
}
|
||||
}
|
||||
|
||||
return _String;
|
||||
}
|
||||
33
sdk/lib/crt/string/_strupr_nt.c
Normal file
33
sdk/lib/crt/string/_strupr_nt.c
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* PROJECT: ReactOS NT CRT library
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Implementation of _strupr
|
||||
* COPYRIGHT: Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
|
||||
*/
|
||||
|
||||
#include "precomp.h"
|
||||
|
||||
char*
|
||||
__cdecl
|
||||
_strupr(
|
||||
_Inout_z_ char* _String)
|
||||
{
|
||||
char ch, *p;
|
||||
|
||||
if (_String == NULL)
|
||||
{
|
||||
_invalid_parameter(NULL, L"_strupr", _CRT_WIDE(__FILE__), __LINE__, 0);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (p = _String; *p; p++)
|
||||
{
|
||||
ch = *p;
|
||||
if ((ch >= 'a') && (ch <= 'z'))
|
||||
{
|
||||
*p += 'A' - 'a';
|
||||
}
|
||||
}
|
||||
|
||||
return _String;
|
||||
}
|
||||
@@ -6,11 +6,9 @@ list(APPEND LIBCNTPR_STRING_SOURCE
|
||||
string/is_wctype.c
|
||||
string/scanf.c
|
||||
string/strcspn.c
|
||||
string/strlwr.c
|
||||
string/strrev.c
|
||||
string/strset.c
|
||||
string/strstr.c
|
||||
string/strupr.c
|
||||
string/strpbrk.c
|
||||
string/strspn.c
|
||||
string/atoi64.c
|
||||
@@ -95,12 +93,14 @@ list(APPEND CRT_STRING_SOURCE
|
||||
string/strerror.c
|
||||
string/stricmp.c
|
||||
string/string.c
|
||||
string/strlwr.c
|
||||
string/strncoll.c
|
||||
string/strnicmp.c
|
||||
string/strtod.c
|
||||
string/strtok.c
|
||||
string/strtok_s.c
|
||||
string/strtoul.c
|
||||
string/strupr.c
|
||||
string/strxfrm.c
|
||||
string/wcstombs_s.c
|
||||
string/wtof.c
|
||||
@@ -112,7 +112,9 @@ list(APPEND CRT_STRING_ASM_SOURCE
|
||||
|
||||
list(APPEND LIBCNTPR_STRING_SOURCE
|
||||
string/_stricmp_nt.c
|
||||
string/_strlwr_nt.c
|
||||
string/_strnicmp_nt.c
|
||||
string/_strupr_nt.c
|
||||
string/iswctype_nt.c
|
||||
string/mbstowcs_nt.c
|
||||
string/tolower_nt.c
|
||||
|
||||
33
sdk/lib/crt/wstring/_wcslwr_nt.c
Normal file
33
sdk/lib/crt/wstring/_wcslwr_nt.c
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* PROJECT: ReactOS NT CRT library
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Implementation of _wcslwr
|
||||
* COPYRIGHT: Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
|
||||
*/
|
||||
|
||||
#include "precomp.h"
|
||||
|
||||
wchar_t*
|
||||
__cdecl
|
||||
_wcslwr(
|
||||
_Inout_z_ wchar_t* _String)
|
||||
{
|
||||
wchar_t ch, *p;
|
||||
|
||||
if (_String == NULL)
|
||||
{
|
||||
_invalid_parameter(NULL, L"_wcslwr", _CRT_WIDE(__FILE__), __LINE__, 0);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (p = _String; *p; p++)
|
||||
{
|
||||
ch = *p;
|
||||
if ((ch >= 'A') && (ch <= 'Z'))
|
||||
{
|
||||
*p += 'a' - 'A';
|
||||
}
|
||||
}
|
||||
|
||||
return _String;
|
||||
}
|
||||
27
sdk/lib/crt/wstring/_wcsupr_nt.c
Normal file
27
sdk/lib/crt/wstring/_wcsupr_nt.c
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* PROJECT: ReactOS NT CRT library
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Implementation of _wcsupr
|
||||
* COPYRIGHT: Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
wchar_t*
|
||||
__cdecl
|
||||
_wcsupr(
|
||||
_Inout_z_ wchar_t* _String)
|
||||
{
|
||||
wchar_t ch, *p;
|
||||
|
||||
for (p = _String; *p; p++)
|
||||
{
|
||||
ch = *p;
|
||||
if ((ch >= 'a') && (ch <= 'z'))
|
||||
{
|
||||
*p += 'A' - 'a';
|
||||
}
|
||||
}
|
||||
|
||||
return _String;
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
|
||||
list(APPEND LIBCNTPR_WSTRING_SOURCE
|
||||
wstring/wcslwr.c
|
||||
wstring/wcsupr.c
|
||||
wstring/wcscspn.c
|
||||
wstring/wcsspn.c
|
||||
wstring/wcsstr.c
|
||||
@@ -13,12 +11,16 @@ list(APPEND CRT_WSTRING_SOURCE
|
||||
wstring/wcrtomb.c
|
||||
wstring/wcscoll.c
|
||||
wstring/wcsicmp.c
|
||||
wstring/wcslwr.c
|
||||
wstring/wcsnicmp.c
|
||||
wstring/wcstok.c
|
||||
wstring/wcsupr.c
|
||||
wstring/wcsxfrm.c
|
||||
)
|
||||
|
||||
list(APPEND LIBCNTPR_WSTRING_SOURCE
|
||||
wstring/_wcsicmp_nt.c
|
||||
wstring/_wcslwr_nt.c
|
||||
wstring/_wcsnicmp_nt.c
|
||||
wstring/_wcsupr_nt.c
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user