]> pd.if.org Git - pdclib.old/commitdiff
PDCLIB-3 Add iswctype(3)
authorOwen Shepherd <owen.shepherd@e43.eu>
Sat, 16 Mar 2013 18:57:32 +0000 (18:57 +0000)
committerOwen Shepherd <owen.shepherd@e43.eu>
Sat, 16 Mar 2013 18:57:32 +0000 (18:57 +0000)
functions/wctype/iswctype.c [new file with mode: 0644]

diff --git a/functions/wctype/iswctype.c b/functions/wctype/iswctype.c
new file mode 100644 (file)
index 0000000..5c5f7ed
--- /dev/null
@@ -0,0 +1,130 @@
+/* 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