summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2017-07-06 16:40:03 +0300
committerSergey Poznyakoff <gray@gnu.org>2017-07-06 16:40:03 +0300
commitea69d766b0a882b66836d7000ac676c9c6d31dec (patch)
tree5e686eb6769bf8507241b584ca7faa109c3d0f69
parentce4b84abd553d2a9150a91445266c34f239d2b7e (diff)
downloadmailutils-ea69d766b0a882b66836d7000ac676c9c6d31dec.tar.gz
mailutils-ea69d766b0a882b66836d7000ac676c9c6d31dec.tar.bz2
Start rewriting parse822
* include/mailutils/cctype.h (MU_CTYPE_IMSPC) (MU_CTYPE_NWCTL,MU_CTYPE_IMATM): New classes. (mu_isimspc,mu_isnwctl,mu_isimatm): New macros * libmailutils/string/muctype.c: Mark characters from the above classes. * include/mailutils/parse822.h (mu_parse822_is_char) (mu_parse822_is_digit,mu_parse822_is_ctl) (mu_parse822_is_space,mu_parse822_is_htab) (mu_parse822_is_lwsp_char,mu_parse822_is_special) (mu_parse822_is_atom_char,mu_parse822_is_q_text) (mu_parse822_is_d_text,mu_parse822_is_smtp_q): Rewrite as inline static functions, using macros from cctype.h * libmailutils/address/parse822.c: See above. (parse822_is_atom_char_ex): Remove.
-rw-r--r--include/mailutils/cctype.h38
-rw-r--r--include/mailutils/parse822.h99
-rw-r--r--libmailutils/address/parse822.c104
-rw-r--r--libmailutils/string/muctype.c256
4 files changed, 240 insertions, 257 deletions
diff --git a/include/mailutils/cctype.h b/include/mailutils/cctype.h
index fba82a104..da9f14afa 100644
--- a/include/mailutils/cctype.h
+++ b/include/mailutils/cctype.h
@@ -24,22 +24,27 @@
extern "C" {
#endif
-#define MU_CTYPE_ALPHA 0x0001
-#define MU_CTYPE_DIGIT 0x0002
-#define MU_CTYPE_BLANK 0x0004
-#define MU_CTYPE_CNTRL 0x0008
-#define MU_CTYPE_GRAPH 0x0010
-#define MU_CTYPE_LOWER 0x0020
-#define MU_CTYPE_UPPER 0x0040
-#define MU_CTYPE_PRINT 0x0080
-#define MU_CTYPE_PUNCT 0x0100
-#define MU_CTYPE_SPACE 0x0200
-#define MU_CTYPE_XLETR 0x0400
-#define MU_CTYPE_ENDLN 0x0800
-#define MU_CTYPE_TSPEC 0x1000 /* tspecials: RFC 2045, section 5.1. */
-#define MU_CTYPE_IDENT 0x2000 /* Valid identifier consituent: alnum or _ */
-#define MU_CTYPE_HEADR 0x4000 /* Valid header name consituent: alnum, _,
+#define MU_CTYPE_ALPHA 0x00001
+#define MU_CTYPE_DIGIT 0x00002
+#define MU_CTYPE_BLANK 0x00004
+#define MU_CTYPE_CNTRL 0x00008
+#define MU_CTYPE_GRAPH 0x00010
+#define MU_CTYPE_LOWER 0x00020
+#define MU_CTYPE_UPPER 0x00040
+#define MU_CTYPE_PRINT 0x00080
+#define MU_CTYPE_PUNCT 0x00100
+#define MU_CTYPE_SPACE 0x00200
+#define MU_CTYPE_XLETR 0x00400
+#define MU_CTYPE_ENDLN 0x00800
+#define MU_CTYPE_TSPEC 0x01000 /* tspecials: RFC 2045, section 5.1. */
+#define MU_CTYPE_IDENT 0x02000 /* Valid identifier consituent: alnum or _ */
+#define MU_CTYPE_HEADR 0x04000 /* Valid header name consituent: alnum, _,
or - */
+#define MU_CTYPE_IMSPC 0x08000 /* Internet Message Format Specials:
+ RFC2822, 3.2.1 */
+#define MU_CTYPE_NWCTL 0x10000 /* Internet Message NO-WS-CTL:
+ RFC2822, 3.2.1 */
+#define MU_CTYPE_IMATM 0x20000 /* Internet Message atom constituent */
#define MU_C_TAB_MAX 128
@@ -65,6 +70,9 @@ extern int mu_c_tab[MU_C_TAB_MAX];
#define mu_istspec(c) mu_c_is_class (c, MU_CTYPE_TSPEC)
#define mu_isident(c) mu_c_is_class (c, MU_CTYPE_IDENT)
#define mu_isheadr(c) mu_c_is_class (c, MU_CTYPE_HEADR)
+#define mu_isimspc(c) mu_c_is_class (c, MU_CTYPE_IMSPC)
+#define mu_isnwctl(c) mu_c_is_class (c, MU_CTYPE_NWCTL)
+#define mu_isimatm(c) mu_c_is_class (c, MU_CTYPE_IMATM)
#define mu_tolower(c) \
({ int __c = (c); \
diff --git a/include/mailutils/parse822.h b/include/mailutils/parse822.h
index 77da5dec0..f4712b9c5 100644
--- a/include/mailutils/parse822.h
+++ b/include/mailutils/parse822.h
@@ -25,6 +25,7 @@
#include <mailutils/types.h>
#include <mailutils/datetime.h>
+#include <mailutils/cctype.h>
#ifdef __cplusplus
extern "C" {
@@ -36,19 +37,95 @@ extern "C" {
*/
/* From RFC 822, 3.3 Lexical Tokens */
+/*
+ * Character Classification
+ *
+ * Note that all return values are:
+ * 1 -> TRUE
+ * 0 -> FALSE
+ * This may be appear different than the 0 == success return
+ * values of the other functions, but I was getting lost in
+ * boolean arithmetic.
+ */
+static inline int
+mu_parse822_is_char (char c)
+{
+ return mu_isascii (c);
+}
+
+static inline int
+mu_parse822_is_digit (char c)
+{
+ /* digit = <any ASCII decimal digit> */
+
+ return mu_isdigit (c);
+}
+
+static inline int
+mu_parse822_is_ctl (char c)
+{
+ return mu_isnwctl (c);
+}
+
+static inline int
+mu_parse822_is_space (char c)
+{
+ return c == ' ';
+}
+
+static inline int
+mu_parse822_is_htab (char c)
+{
+ return c == '\t';
+}
-extern int mu_parse822_is_char (char c);
-extern int mu_parse822_is_digit (char c);
-extern int mu_parse822_is_ctl (char c);
-extern int mu_parse822_is_space (char c);
-extern int mu_parse822_is_htab (char c);
-extern int mu_parse822_is_lwsp_char (char c);
-extern int mu_parse822_is_special (char c);
-extern int mu_parse822_is_atom_char (char c);
-extern int mu_parse822_is_q_text (char c);
-extern int mu_parse822_is_d_text (char c);
-extern int mu_parse822_is_smtp_q (char c);
+static inline int
+mu_parse822_is_lwsp_char (char c)
+{
+ return mu_isspace (c);
+}
+
+static inline int
+mu_parse822_is_special (char c)
+{
+ return mu_isimspc (c);
+}
+
+static inline int
+mu_parse822_is_atom_char (char c)
+{
+ return mu_isimatm (c);
+}
+
+static inline int
+mu_parse822_is_q_text (char c)
+{
+return mu_parse822_is_char (c)
+ && c != '"'
+ && c != '\\'
+ && c != '\r';
+}
+
+static inline int
+mu_parse822_is_d_text (char c)
+{
+ return mu_parse822_is_char (c)
+ && c != '['
+ && c != ']'
+ && c != '\\'
+ && c != '\r';
+}
+/*
+ * SMTP's version of qtext, called <q> in the RFC 821 syntax,
+ * also excludes <LF>.
+ */
+static inline int
+mu_parse822_is_smtp_q (char c)
+{
+ return mu_parse822_is_q_text (c) && c != '\n';
+}
+
extern int mu_parse822_skip_crlf (const char **p, const char *e);
extern int mu_parse822_skip_lwsp_char (const char **p, const char *e);
extern int mu_parse822_skip_lwsp (const char **p, const char *e);
diff --git a/libmailutils/address/parse822.c b/libmailutils/address/parse822.c
index 9a4ef48de..bb433da4c 100644
--- a/libmailutils/address/parse822.c
+++ b/libmailutils/address/parse822.c
@@ -174,108 +174,6 @@ str_free (char **s)
}
}
-/*
- * Character Classification - could be rewritten in a C library
- * independent way, my system's C library matches the RFC
- * definitions. I don't know if that's guaranteed.
- *
- * Note that all return values are:
- * 1 -> TRUE
- * 0 -> FALSE
- * This may be appear different than the 0 == success return
- * values of the other functions, but I was getting lost in
- * boolean arithmetic.
- */
-int
-mu_parse822_is_char (char c)
-{
- return mu_isascii (c);
-}
-
-int
-mu_parse822_is_digit (char c)
-{
- /* digit = <any ASCII decimal digit> */
-
- return mu_isdigit ((unsigned) c);
-}
-
-int
-mu_parse822_is_ctl (char c)
-{
- return mu_iscntrl ((unsigned) c) || c == 127 /* DEL */ ;
-}
-
-int
-mu_parse822_is_space (char c)
-{
- return c == ' ';
-}
-
-int
-mu_parse822_is_htab (char c)
-{
- return c == '\t';
-}
-
-int
-mu_parse822_is_lwsp_char (char c)
-{
- return mu_parse822_is_space (c) || mu_parse822_is_htab (c);
-}
-
-int
-mu_parse822_is_special (char c)
-{
- return strchr ("()<>@,;:\\\".[]", c) ? 1 : 0;
-}
-
-int
-parse822_is_atom_char_ex (char c)
-{
- return !mu_parse822_is_special (c)
- && !mu_parse822_is_space (c)
- && !mu_parse822_is_ctl (c);
-}
-
-int
-mu_parse822_is_atom_char (char c)
-{
- return mu_parse822_is_char (c) && parse822_is_atom_char_ex (c);
-}
-
-int
-mu_parse822_is_q_text (char c)
-{
- return
- mu_parse822_is_char (c) &&
- c != '"' &&
- c != '\\' &&
- c != '\r';
-}
-
-int
-mu_parse822_is_d_text (char c)
-{
- return
- mu_parse822_is_char (c) &&
- c != '[' &&
- c != ']' &&
- c != '\\' &&
- c != '\r';
-}
-/*
- * SMTP's version of qtext, called <q> in the RFC 821 syntax,
- * also excludes <LF>.
- */
-int
-mu_parse822_is_smtp_q (char c)
-{
- return
- mu_parse822_is_q_text (c) &&
- c != '\n';
-}
-
/***** From RFC 822, 3.3 Lexical Tokens *****/
int
@@ -500,7 +398,7 @@ parse822_atom_ex (const char **p, const char *e, char **atom)
mu_parse822_skip_comments (p, e);
- for (ptr = *p; (ptr != e) && parse822_is_atom_char_ex (*ptr); ptr++)
+ for (ptr = *p; (ptr != e) && mu_parse822_is_atom_char (*ptr); ptr++)
;
if (ptr - *p == 0)
return EPARSE;
diff --git a/libmailutils/string/muctype.c b/libmailutils/string/muctype.c
index bd24a2aa8..12262073c 100644
--- a/libmailutils/string/muctype.c
+++ b/libmailutils/string/muctype.c
@@ -21,132 +21,132 @@
#include <mailutils/cctype.h>
int mu_c_tab[MU_C_TAB_MAX] = {
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL|MU_CTYPE_SPACE|MU_CTYPE_BLANK,
- MU_CTYPE_CNTRL|MU_CTYPE_SPACE|MU_CTYPE_ENDLN,
- MU_CTYPE_CNTRL|MU_CTYPE_SPACE,
- MU_CTYPE_CNTRL|MU_CTYPE_SPACE,
- MU_CTYPE_CNTRL|MU_CTYPE_SPACE|MU_CTYPE_ENDLN,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_CNTRL,
- MU_CTYPE_PRINT|MU_CTYPE_SPACE|MU_CTYPE_BLANK,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_HEADR,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IDENT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT,
- MU_CTYPE_CNTRL
+ /* 000 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 001 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 002 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 003 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 004 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 005 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 006 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 007 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 010 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* \t */ MU_CTYPE_CNTRL|MU_CTYPE_SPACE|MU_CTYPE_BLANK,
+ /* \n */ MU_CTYPE_CNTRL|MU_CTYPE_SPACE|MU_CTYPE_ENDLN,
+ /* \v */ MU_CTYPE_CNTRL|MU_CTYPE_SPACE|MU_CTYPE_NWCTL,
+ /* \f */ MU_CTYPE_CNTRL|MU_CTYPE_SPACE|MU_CTYPE_NWCTL,
+ /* \r */ MU_CTYPE_CNTRL|MU_CTYPE_SPACE|MU_CTYPE_ENDLN,
+ /* 016 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 017 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 020 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 021 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 022 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 023 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 024 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 025 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 026 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 027 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 030 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 031 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 032 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 033 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 034 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 035 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 036 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* 037 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL,
+ /* ' ' */ MU_CTYPE_PRINT|MU_CTYPE_SPACE|MU_CTYPE_BLANK,
+ /* ! */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* " */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* # */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* $ */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* % */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* & */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* ' */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* ( */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* ) */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* * */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* + */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* , */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* - */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* . */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMSPC,
+ /* / */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMATM,
+ /* 0 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* 1 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* 2 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* 3 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* 4 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* 5 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* 6 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* 7 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* 8 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* 9 */ MU_CTYPE_DIGIT|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* : */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* ; */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* < */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* = */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMATM,
+ /* > */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* ? */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMATM,
+ /* @ */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* A */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* B */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* C */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* D */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* E */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* F */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* G */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* H */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* I */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* J */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* K */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* L */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* M */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* N */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* O */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* P */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* Q */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* R */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* S */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* T */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* U */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* V */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* W */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* X */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* Y */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* Z */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_UPPER|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* [ */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* \ */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* ] */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_TSPEC|MU_CTYPE_IMSPC,
+ /* ^ */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* _ */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IDENT|MU_CTYPE_IMATM,
+ /* ` */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* a */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* b */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* c */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* d */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* e */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* f */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_XLETR|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* g */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* h */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* i */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* j */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* k */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* l */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* m */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* n */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* o */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* p */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* q */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* r */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* s */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* t */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* u */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* v */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* w */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* x */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* y */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* z */ MU_CTYPE_ALPHA|MU_CTYPE_GRAPH|MU_CTYPE_LOWER|MU_CTYPE_PRINT|MU_CTYPE_IDENT|MU_CTYPE_HEADR|MU_CTYPE_IMATM,
+ /* { */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* | */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* } */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* ~ */ MU_CTYPE_GRAPH|MU_CTYPE_PRINT|MU_CTYPE_PUNCT|MU_CTYPE_IMATM,
+ /* 177 */ MU_CTYPE_CNTRL|MU_CTYPE_NWCTL
};

Return to:

Send suggestions and report system problems to the System administrator.