--- /dev/null
+/* iswctype( wint_t, wctype_t )\r
+\r
+ This file is part of the Public Domain C Library (PDCLib).\r
+ Permission is granted to use, modify, and / or redistribute at will.\r
+*/\r
+\r
+#include <wctype.h>\r
+#ifndef REGTEST\r
+#include <_PDCLIB_locale.h>\r
+\r
+int iswctype( wint_t wc, wctype_t desc )\r
+{\r
+ wc = _PDCLIB_unpackwint( wc );\r
+\r
+ _PDCLIB_wcinfo_t *info = _PDCLIB_wcgetinfo( wc );\r
+\r
+ if(!info) return 0;\r
+\r
+ return info->flags & desc;\r
+}\r
+\r
+#endif\r
+\r
+#ifdef TEST\r
+#include <_PDCLIB_test.h>\r
+\r
+int main( void )\r
+{\r
+ TESTCASE( iswctype(L'a', wctype("alpha")));\r
+ TESTCASE( iswctype(L'z', wctype("alpha")));\r
+ TESTCASE( iswctype(L'E', wctype("alpha")));\r
+ TESTCASE(!iswctype(L'3', wctype("alpha")));\r
+ TESTCASE(!iswctype(L';', wctype("alpha")));\r
+\r
+ TESTCASE( iswctype(L'a', wctype("alnum")));\r
+ TESTCASE( iswctype(L'3', wctype("alnum")));\r
+ TESTCASE(!iswctype(L';', wctype("alnum")));\r
+\r
+ TESTCASE( iswctype(L' ', wctype("blank")));\r
+ TESTCASE( iswctype(L'\t', wctype("blank")));\r
+ TESTCASE(!iswctype(L'\n', wctype("blank")));\r
+ TESTCASE(!iswctype(L';', wctype("blank")));\r
+\r
+ TESTCASE( iswctype(L'\0', wctype("cntrl")));\r
+ TESTCASE( iswctype(L'\n', wctype("cntrl")));\r
+ TESTCASE( iswctype(L'\v', wctype("cntrl")));\r
+ TESTCASE(!iswctype(L'\t', wctype("cntrl")));\r
+ TESTCASE(!iswctype(L'a', wctype("cntrl")));\r
+\r
+ TESTCASE( iswctype(L'0', wctype("digit")));\r
+ TESTCASE( iswctype(L'1', wctype("digit")));\r
+ TESTCASE( iswctype(L'2', wctype("digit")));\r
+ TESTCASE( iswctype(L'3', wctype("digit")));\r
+ TESTCASE( iswctype(L'4', wctype("digit")));\r
+ TESTCASE( iswctype(L'5', wctype("digit")));\r
+ TESTCASE( iswctype(L'6', wctype("digit")));\r
+ TESTCASE( iswctype(L'7', wctype("digit")));\r
+ TESTCASE( iswctype(L'8', wctype("digit")));\r
+ TESTCASE( iswctype(L'9', wctype("digit")));\r
+ TESTCASE(!iswctype(L'X', wctype("digit")));\r
+ TESTCASE(!iswctype(L'?', wctype("digit")));\r
+\r
+ TESTCASE( iswctype(L'a', wctype("graph")));\r
+ TESTCASE( iswctype(L'z', wctype("graph")));\r
+ TESTCASE( iswctype(L'E', wctype("graph")));\r
+ TESTCASE( iswctype(L'E', wctype("graph")));\r
+ TESTCASE(!iswctype(L' ', wctype("graph")));\r
+ TESTCASE(!iswctype(L'\t', wctype("graph")));\r
+ TESTCASE(!iswctype(L'\n', wctype("graph")));\r
+\r
+ TESTCASE( iswctype(L'a', wctype("lower")));\r
+ TESTCASE( iswctype(L'e', wctype("lower")));\r
+ TESTCASE( iswctype(L'z', wctype("lower")));\r
+ TESTCASE(!iswctype(L'A', wctype("lower")));\r
+ TESTCASE(!iswctype(L'E', wctype("lower")));\r
+ TESTCASE(!iswctype(L'Z', wctype("lower")));\r
+\r
+ TESTCASE(!iswctype(L'a', wctype("upper")));\r
+ TESTCASE(!iswctype(L'e', wctype("upper")));\r
+ TESTCASE(!iswctype(L'z', wctype("upper")));\r
+ TESTCASE( iswctype(L'A', wctype("upper")));\r
+ TESTCASE( iswctype(L'E', wctype("upper")));\r
+ TESTCASE( iswctype(L'Z', wctype("upper")));\r
+\r
+ TESTCASE( iswctype(L'Z', wctype("print")));\r
+ TESTCASE( iswctype(L'a', wctype("print")));\r
+ TESTCASE( iswctype(L';', wctype("print")));\r
+ TESTCASE( iswctype(L'\t', wctype("print")));\r
+ TESTCASE(!iswctype(L'\0', wctype("print")));\r
+\r
+ TESTCASE( iswctype(L';', wctype("punct")));\r
+ TESTCASE( iswctype(L'.', wctype("punct")));\r
+ TESTCASE( iswctype(L'?', wctype("punct")));\r
+ TESTCASE(!iswctype(L' ', wctype("punct")));\r
+ TESTCASE(!iswctype(L'Z', wctype("punct")));\r
+\r
+ TESTCASE( iswctype(L' ', wctype("space")));\r
+ TESTCASE( iswctype(L'\t', wctype("space")));\r
+\r
+ TESTCASE( iswctype(L'0', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'1', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'2', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'3', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'4', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'5', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'6', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'7', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'8', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'9', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'a', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'b', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'c', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'd', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'e', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'f', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'A', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'B', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'C', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'D', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'E', wctype("xdigit")));\r
+ TESTCASE( iswctype(L'F', wctype("xdigit")));\r
+ TESTCASE(!iswctype(L'g', wctype("xdigit")));\r
+ TESTCASE(!iswctype(L'G', wctype("xdigit")));\r
+ TESTCASE(!iswctype(L'x', wctype("xdigit")));\r
+ TESTCASE(!iswctype(L'X', wctype("xdigit")));\r
+ TESTCASE(!iswctype(L' ', wctype("xdigit")));\r
+\r
+ return TEST_RESULTS;\r
+}\r
+#endif\r