Skip to content

Commit

Permalink
[winpr, crt] Added wcsstr implementation
Browse files Browse the repository at this point in the history
(cherry picked from commit 6c034ba)
  • Loading branch information
akallabeth committed Nov 14, 2022
1 parent 3ac3a2c commit 0a62aba
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
3 changes: 3 additions & 0 deletions winpr/include/winpr/string.h
Expand Up @@ -65,6 +65,8 @@ extern "C"
WINPR_API size_t _wcslen(const WCHAR* str);
WINPR_API size_t _wcsnlen(const WCHAR* str, size_t maxNumberOfElements);

WINPR_API WCHAR* _wcsstr(const WCHAR* str, const WCHAR* strSearch);

WINPR_API WCHAR* _wcschr(const WCHAR* str, WCHAR c);
WINPR_API WCHAR* _wcsrchr(const WCHAR* str, WCHAR c);

Expand All @@ -77,6 +79,7 @@ extern "C"
#define _wcsncmp wcsncmp
#define _wcslen wcslen
#define _wcsnlen wcsnlen
#define _wcsstr wcsstr
#define _wcschr wcschr
#define _wcsrchr wcsrchr

Expand Down
20 changes: 20 additions & 0 deletions winpr/libwinpr/crt/string.c
Expand Up @@ -164,6 +164,26 @@ size_t _wcsnlen(const WCHAR* str, size_t max)
return x;
}

/* _wcsstr -> wcsstr */

WCHAR* _wcsstr(const WCHAR* str, const WCHAR* strSearch)
{
WINPR_ASSERT(str);
WINPR_ASSERT(strSearch);

if (strSearch[0] == '\0')
return str;

const size_t searchLen = _wcslen(strSearch);
while (*str)
{
if (_wcsncmp(str, strSearch, searchLen) == 0)
return str;
str++;
}
return NULL;
}

/* _wcschr -> wcschr */

WCHAR* _wcschr(const WCHAR* str, WCHAR c)
Expand Down

0 comments on commit 0a62aba

Please sign in to comment.