1 /* wctype( const char * )
\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
10 #include <_PDCLIB_locale.h>
\r
12 wctype_t wctype( const char * property )
\r
14 if(property) switch(property[0])
\r
17 if(strcmp(property, "alpha") == 0) {
\r
18 return _PDCLIB_CTYPE_ALPHA;
\r
19 } else if(strcmp(property, "alnum") == 0) {
\r
20 return _PDCLIB_CTYPE_ALPHA | _PDCLIB_CTYPE_DIGIT;
\r
24 if(strcmp(property, "blank") == 0) {
\r
25 return _PDCLIB_CTYPE_BLANK;
\r
29 if(strcmp(property, "cntrl") == 0) {
\r
30 return _PDCLIB_CTYPE_CNTRL;
\r
34 if(strcmp(property, "digit") == 0) {
\r
35 return _PDCLIB_CTYPE_DIGIT;
\r
39 if(strcmp(property, "graph") == 0) {
\r
40 return _PDCLIB_CTYPE_GRAPH;
\r
44 if(strcmp(property, "lower") == 0) {
\r
45 return _PDCLIB_CTYPE_LOWER;
\r
49 if(strcmp(property, "print") == 0) {
\r
50 return _PDCLIB_CTYPE_GRAPH | _PDCLIB_CTYPE_SPACE;
\r
51 } else if(strcmp(property, "punct") == 0) {
\r
52 return _PDCLIB_CTYPE_PUNCT;
\r
56 if(strcmp(property, "space") == 0) {
\r
57 return _PDCLIB_CTYPE_SPACE;
\r
61 if(strcmp(property, "upper") == 0) {
\r
62 return _PDCLIB_CTYPE_UPPER;
\r
66 if(strcmp(property, "xdigit") == 0) {
\r
67 return _PDCLIB_CTYPE_XDIGT;
\r
76 #include <_PDCLIB_test.h>
\r
80 TESTCASE(wctype("") == 0);
\r
81 TESTCASE_NOREG(wctype(NULL) == 0); // mingw libc crashes on this
\r
83 TESTCASE(wctype("alpha") != 0);
\r
84 TESTCASE(wctype("alnum") != 0);
\r
85 TESTCASE(wctype("blank") != 0);
\r
86 TESTCASE(wctype("cntrl") != 0);
\r
87 TESTCASE(wctype("digit") != 0);
\r
88 TESTCASE(wctype("graph") != 0);
\r
89 TESTCASE(wctype("lower") != 0);
\r
90 TESTCASE(wctype("print") != 0);
\r
91 TESTCASE(wctype("punct") != 0);
\r
92 TESTCASE(wctype("space") != 0);
\r
93 TESTCASE(wctype("upper") != 0);
\r
94 TESTCASE(wctype("xdigit") != 0);
\r
96 TESTCASE_NOREG(wctype("alpha") == _PDCLIB_CTYPE_ALPHA);
\r
97 TESTCASE_NOREG(wctype("alnum") == _PDCLIB_CTYPE_ALPHA | _PDCLIB_CTYPE_DIGIT);
\r
98 TESTCASE_NOREG(wctype("blank") == _PDCLIB_CTYPE_BLANK);
\r
99 TESTCASE_NOREG(wctype("cntrl") == _PDCLIB_CTYPE_CNTRL);
\r
100 TESTCASE_NOREG(wctype("digit") == _PDCLIB_CTYPE_DIGIT);
\r
101 TESTCASE_NOREG(wctype("graph") == _PDCLIB_CTYPE_GRAPH);
\r
102 TESTCASE_NOREG(wctype("lower") == _PDCLIB_CTYPE_LOWER);
\r
103 TESTCASE_NOREG(wctype("print") == _PDCLIB_CTYPE_GRAPH | _PDCLIB_CTYPE_SPACE);
\r
104 TESTCASE_NOREG(wctype("punct") == _PDCLIB_CTYPE_PUNCT);
\r
105 TESTCASE_NOREG(wctype("space") == _PDCLIB_CTYPE_SPACE);
\r
106 TESTCASE_NOREG(wctype("upper") == _PDCLIB_CTYPE_UPPER);
\r
107 TESTCASE_NOREG(wctype("xdigit") == _PDCLIB_CTYPE_XDIGT);
\r
108 return TEST_RESULTS;
\r