mirror of
https://github.com/FreeRDP/FreeRDP.git
synced 2025-06-03 00:00:20 +00:00
Updated _wcschr and _wcsrchr to match MSDN spec
This commit is contained in:
parent
5482607b15
commit
2dc98adb62
@ -61,8 +61,8 @@ extern "C"
|
|||||||
WINPR_API size_t _wcslen(const WCHAR* str);
|
WINPR_API size_t _wcslen(const WCHAR* str);
|
||||||
WINPR_API size_t _wcsnlen(const WCHAR* str, size_t maxNumberOfElements);
|
WINPR_API size_t _wcsnlen(const WCHAR* str, size_t maxNumberOfElements);
|
||||||
|
|
||||||
WINPR_API const WCHAR* _wcschr(const WCHAR* str, WCHAR c);
|
WINPR_API WCHAR* _wcschr(const WCHAR* str, WCHAR c);
|
||||||
WINPR_API const WCHAR* _wcsrchr(const WCHAR* str, WCHAR c);
|
WINPR_API WCHAR* _wcsrchr(const WCHAR* str, WCHAR c);
|
||||||
|
|
||||||
WINPR_API char* strtok_s(char* strToken, const char* strDelimit, char** context);
|
WINPR_API char* strtok_s(char* strToken, const char* strDelimit, char** context);
|
||||||
WINPR_API WCHAR* wcstok_s(WCHAR* strToken, const WCHAR* strDelimit, WCHAR** context);
|
WINPR_API WCHAR* wcstok_s(WCHAR* strToken, const WCHAR* strDelimit, WCHAR** context);
|
||||||
|
@ -128,33 +128,45 @@ size_t _wcsnlen(const WCHAR* str, size_t max)
|
|||||||
|
|
||||||
/* _wcschr -> wcschr */
|
/* _wcschr -> wcschr */
|
||||||
|
|
||||||
const WCHAR* _wcschr(const WCHAR* str, WCHAR c)
|
WCHAR* _wcschr(const WCHAR* str, WCHAR value)
|
||||||
{
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
const WCHAR* cc;
|
||||||
|
WCHAR* c;
|
||||||
|
} cnv;
|
||||||
const WCHAR* p = (const WCHAR*)str;
|
const WCHAR* p = (const WCHAR*)str;
|
||||||
WCHAR value;
|
|
||||||
Data_Write_UINT16(&value, c);
|
|
||||||
|
|
||||||
while (*p && (*p != value))
|
while (*p && (*p != value))
|
||||||
p++;
|
p++;
|
||||||
|
|
||||||
return ((*p == value) ? p : NULL);
|
cnv.cc = (*p == value) ? p : NULL;
|
||||||
|
return cnv.c;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* _wcsrchr -> wcsrchr */
|
/* _wcsrchr -> wcsrchr */
|
||||||
|
|
||||||
const WCHAR* _wcsrchr(const WCHAR* str, WCHAR c)
|
WCHAR* _wcsrchr(const WCHAR* str, WCHAR c)
|
||||||
{
|
{
|
||||||
const WCHAR* p;
|
union
|
||||||
WCHAR ch;
|
{
|
||||||
|
const WCHAR* cc;
|
||||||
|
WCHAR* c;
|
||||||
|
} cnv;
|
||||||
|
const WCHAR* p = NULL;
|
||||||
|
|
||||||
if (!str)
|
if (!str)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for (p = (const WCHAR*)0; (ch = *str); str++)
|
for (; *str != '\0'; str++)
|
||||||
|
{
|
||||||
|
const WCHAR ch = *str;
|
||||||
if (ch == c)
|
if (ch == c)
|
||||||
p = (const WCHAR*)str;
|
p = str;
|
||||||
|
}
|
||||||
|
|
||||||
return p;
|
cnv.cc = p;
|
||||||
|
return cnv.c;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* strtok_s(char* strToken, const char* strDelimit, char** context)
|
char* strtok_s(char* strToken, const char* strDelimit, char** context)
|
||||||
|
Loading…
Reference in New Issue
Block a user