]> pd.if.org Git - pdclib/blob - functions/wctype/towctrans.c
PDCLIB-3 #resolve Implement towctrans/wctrans. Completes wctype.h
[pdclib] / functions / wctype / towctrans.c
1 /* towctrans( wint_t, wctrans_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 <wctype.h>\r
8 #ifndef REGTEST\r
9 #include <string.h>\r
10 #include <_PDCLIB_locale.h>\r
11 \r
12 wint_t towctrans( wint_t wc, wctrans_t trans )\r
13 {\r
14     switch( trans ) {\r
15         case 0:                         return wc;\r
16         case _PDCLIB_WCTRANS_TOLOWER:   return towlower( wc );\r
17         case _PDCLIB_WCTRANS_TOUPPER:   return towupper( wc );\r
18         default: abort();\r
19     }\r
20 }\r
21 \r
22 #endif\r
23 \r
24 #ifdef TEST\r
25 #include <_PDCLIB_test.h>\r
26 \r
27 int main( void )\r
28 {\r
29     TESTCASE(towctrans(L'a', wctrans("toupper")) == L'A');\r
30     TESTCASE(towctrans(L'B', wctrans("toupper")) == L'B');\r
31     TESTCASE(towctrans(L'a', wctrans("tolower")) == L'a');\r
32     TESTCASE(towctrans(L'B', wctrans("tolower")) == L'b');\r
33     TESTCASE(towctrans(L'B', wctrans("invalid")) == L'B');\r
34     TESTCASE(towctrans(L'B', 0)                  == L'B');\r
35     return TEST_RESULTS;\r
36 }\r
37 #endif\r