]> pd.if.org Git - pdclib/blob - functions/wchar/wcsstr.c
PDCLIB-18: Implement defect test cases
[pdclib] / functions / wchar / wcsstr.c
1 /* wcsstr( const wchar_t *, const wchar_t * )\r
2 \r
3    This file is part of the Public Domain C Library (PDCLib).\r
4    Permission is granted to use, modify, and / or redistribute at will.\r
5 */\r
6 \r
7 #include <wchar.h>\r
8 \r
9 #ifndef REGTEST\r
10 \r
11 wchar_t * wcsstr( const wchar_t * s1, const wchar_t * s2 )\r
12 {\r
13     const wchar_t * p1 = s1;\r
14     const wchar_t * p2;\r
15     while ( *s1 )\r
16     {\r
17         p2 = s2;\r
18         while ( *p2 && ( *p1 == *p2 ) )\r
19         {\r
20             ++p1;\r
21             ++p2;\r
22         }\r
23         if ( ! *p2 )\r
24         {\r
25             return (wchar_t *) s1;\r
26         }\r
27         ++s1;\r
28         p1 = s1;\r
29     }\r
30     return NULL;\r
31 }\r
32 \r
33 #endif\r
34 \r
35 #ifdef TEST\r
36 #include <_PDCLIB_test.h>\r
37 \r
38 int main( void )\r
39 {\r
40     wchar_t s[] = L"abcabcabcdabcde";\r
41     TESTCASE( wcsstr( s, L"x" ) == NULL );\r
42     TESTCASE( wcsstr( s, L"xyz" ) == NULL );\r
43     TESTCASE( wcsstr( s, L"a" ) == &s[0] );\r
44     TESTCASE( wcsstr( s, L"abc" ) == &s[0] );\r
45     TESTCASE( wcsstr( s, L"abcd" ) == &s[6] );\r
46     TESTCASE( wcsstr( s, L"abcde" ) == &s[10] );\r
47     return TEST_RESULTS;\r
48 }\r
49 #endif\r