]> git.cameronkatri.com Git - mandoc.git/blobdiff - chars.in
Back out lorder, which doesn't seem necessary (?). I think this means all
[mandoc.git] / chars.in
index e6a4e57433d63efec65024f3d7abaa8bf3b7173d..a4c45b3c43eba89f0420d529f0a808b431675753 100644 (file)
--- a/chars.in
+++ b/chars.in
@@ -1,6 +1,6 @@
-/*     $Id: chars.in,v 1.2 2009/09/17 08:21:42 kristaps Exp $ */
+/*     $Id: chars.in,v 1.42 2011/10/02 10:02:26 kristaps Exp $ */
 /*
- * Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
+ * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  */
 
 /*
- * The ASCII translation tables.  STRING corresponds to predefined
- * strings (cf. mdoc_samples.7 and tmac/mdoc/doc-nroff).  CHAR
- * corresponds to special characters (cf. groff_char.7).  BOTH contains
- * sequences that are equivalent in both STRING and CHAR.
+ * The ASCII translation tables.  
  *
- * Either way, the left-hand side corresponds to the input sequence (\x,
- * \(xx, \*(xx and so on) whose length is listed second element.  The
- * right-hand side is what's produced by the front-end, with the fourth
- * element being its length.
+ * The left-hand side corresponds to the input sequence (\x, \(xx, \*(xx
+ * and so on) whose length is listed second element.  The right-hand
+ * side is what's produced by the front-end, with the fourth element
+ * being its length.
  *
  * XXX - C-escape strings!
  * XXX - update LINES_MAX if adding more!
  */
 
-STRING("Am",                   2,      "&",            1,      "&amp;",        5)
-STRING("Ba",                   2,      "|",            1,      "|",            0)
-STRING("Ge",                   2,      ">=",           2,      "",     0)
-STRING("Gt",                   2,      ">",            1,      "",     0)
-STRING("If",                   2,      "infinity",     8,      "",     0)
-STRING("Le",                   2,      "<=",           2,      "",     0)
-STRING("Lq",                   2,      "``",           2,      "",     0)
-STRING("Lt",                   2,      "<",            1,      "",     0)
-STRING("Na",                   2,      "NaN",          3,      "",     0)
-STRING("Ne",                   2,      "!=",           2,      "",     0)
-STRING("Pi",                   2,      "pi",           2,      "",     0)
-STRING("Pm",                   2,      "+-",           2,      "",     0)
-STRING("R",                    1,      "(R)",          3,      "",     0)
-STRING("Rq",                   2,      "\'\'",         2,      "",     0)
-STRING("Tm",                   2,      "tm",           2,      "",     0)
-STRING("left-bracket",         12,     "[",            1,      "",     0)
-STRING("left-parenthesis",     16,     "(",            1,      "",     0)
-STRING("left-singlequote",     16,     "`",            1,      "",     0)
-STRING("lp",                   2,      "(",            1,      "",     0)
-STRING("q",                    1,      "\"",           1,      "",     0)
-STRING("quote-left",           10,     "`",            1,      "",     0)
-STRING("quote-right",          11,     "\'",           1,      "",     0)
-STRING("right-bracket",                13,     "]",            1,      "",     0)
-STRING("right-parenthesis",    17,     ")",            1,      "",     0)
-STRING("right-singlequote",    17,     "\'",           1,      "",     0)
-STRING("rp",                   2,      ")",            1,      "",     0)
+/* Non-breaking, non-collapsing space uses unit separator. */
+static const char ascii_nbrsp[2] = { ASCII_NBRSP, '\0' };
 
-BOTH("<=",                     2,      "<=",           2,      "",     0)
-BOTH(">=",                     2,      ">=",           2,      "",     0)
-BOTH("aa",                     2,      "\'",           1,      "",     0)
-BOTH("ga",                     2,      "`",            1,      "",     0)
-BOTH("lq",                     2,      "``",           2,      "",     0)
-BOTH("rq",                     2,      "\'\'",         2,      "",     0)
-BOTH("ua",                     2,      "^",            1,      "",     0)
+CHAR_TBL_START
 
-CHAR(" ",                      1,      " ",            1,      " ",            1)
-CHAR("!=",                     2,      "!=",           2,      "",     0)
-CHAR("%",                      1,      "",             0,      "",     0)
-CHAR("&",                      1,      "",             0,      "",     0)
-CHAR("(=",                     2,      "(=",           2,      "",     0)
-CHAR("**",                     2,      "*",            1,      "",     0)
-CHAR("*A",                     2,      "A",            1,      "",     0)
-CHAR("*B",                     2,      "B",            1,      "",     0)
-CHAR("*C",                     2,      "H",            1,      "",     0)
-CHAR("*D",                     2,      "/\\",          2,      "",     0)
-CHAR("*E",                     2,      "E",            1,      "",     0)
-CHAR("*F",                     2,      "O_",           1,      "",     0)
-CHAR("*G",                     2,      "|",            1,      "",     0)
-CHAR("*H",                     2,      "O",            1,      "",     0)
-CHAR("*I",                     2,      "I",            1,      "",     0)
-CHAR("*K",                     2,      "K",            1,      "",     0)
-CHAR("*L",                     2,      "/\\",          2,      "",     0)
-CHAR("*M",                     2,      "M",            1,      "",     0)
-CHAR("*N",                     2,      "N",            1,      "",     0)
-CHAR("*O",                     2,      "O",            1,      "",     0)
-CHAR("*P",                     2,      "TT",           2,      "",     0)
-CHAR("*Q",                     2,      "Y",            1,      "",     0)
-CHAR("*R",                     2,      "P",            1,      "",     0)
-CHAR("*S",                     2,      ">",            1,      "",     0)
-CHAR("*T",                     2,      "T",            1,      "",     0)
-CHAR("*U",                     2,      "Y",            1,      "",     0)
-CHAR("*W",                     2,      "O",            1,      "",     0)
-CHAR("*X",                     2,      "X",            1,      "",     0)
-CHAR("*Y",                     2,      "H",            1,      "",     0)
-CHAR("*Z",                     2,      "Z",            1,      "",     0)
-CHAR("*a",                     2,      "a",            1,      "",     0)
-CHAR("*b",                     2,      "B",            1,      "",     0)
-CHAR("*c",                     2,      "E",            1,      "",     0)
-CHAR("*d",                     2,      "d",            1,      "",     0)
-CHAR("*e",                     2,      "e",            1,      "",     0)
-CHAR("*f",                     2,      "o",            1,      "",     0)
-CHAR("*g",                     2,      "y",            1,      "",     0)
-CHAR("*h",                     2,      "0",            1,      "",     0)
-CHAR("*i",                     2,      "i",            1,      "",     0)
-CHAR("*k",                     2,      "k",            1,      "",     0)
-CHAR("*l",                     2,      "\\",           1,      "",     0)
-CHAR("*m",                     2,      "u",            1,      "",     0)
-CHAR("*n",                     2,      "v",            1,      "",     0)
-CHAR("*o",                     2,      "o",            1,      "",     0)
-CHAR("*p",                     2,      "n",            1,      "",     0)
-CHAR("*q",                     2,      "u",            1,      "",     0)
-CHAR("*r",                     2,      "p",            1,      "",     0)
-CHAR("*s",                     2,      "o",            1,      "",     0)
-CHAR("*t",                     2,      "t",            1,      "",     0)
-CHAR("*u",                     2,      "u",            1,      "",     0)
-CHAR("*w",                     2,      "w",            1,      "",     0)
-CHAR("*x",                     2,      "x",            1,      "",     0)
-CHAR("*y",                     2,      "n",            1,      "",     0)
-CHAR("*z",                     2,      "C",            1,      "",     0)
-CHAR("+-",                     2,      "+-",           2,      "",     0)
-CHAR("+f",                     2,      "o",            1,      "",     0)
-CHAR("+h",                     2,      "0",            1,      "",     0)
-CHAR("+p",                     2,      "w",            1,      "",     0)
-CHAR(",C",                     2,      "C",            1,      "",     0)
-CHAR(",c",                     2,      "c",            1,      "",     0)
-CHAR("-",                      1,      "-",            1,      "-",            1)
-CHAR("->",                     2,      "->",           2,      "",     0)
-CHAR("-D",                     2,      "D",            1,      "",     0)
-CHAR(".",                      1,      ".",            1,      "",     0)
-CHAR("/L",                     2,      "L",            1,      "",     0)
-CHAR("/O",                     2,      "O",            1,      "",     0)
-CHAR("/l",                     2,      "l",            1,      "",     0)
-CHAR("/o",                     2,      "o",            1,      "",     0)
-CHAR("0",                      1,      " ",            1,      "",     0)
-CHAR(":A",                     2,      "A",            1,      "",     0)
-CHAR(":E",                     2,      "E",            1,      "",     0)
-CHAR(":I",                     2,      "I",            1,      "",     0)
-CHAR(":O",                     2,      "O",            1,      "",     0)
-CHAR(":U",                     2,      "U",            1,      "",     0)
-CHAR(":a",                     2,      "a",            1,      "",     0)
-CHAR(":e",                     2,      "e",            1,      "",     0)
-CHAR(":i",                     2,      "i",            1,      "",     0)
-CHAR(":o",                     2,      "o",            1,      "",     0)
-CHAR(":u",                     2,      "u",            1,      "",     0)
-CHAR(":y",                     2,      "y",            1,      "",     0)
-CHAR("<-",                     2,      "<-",           2,      "",     0)
-CHAR("<=",                     2,      "<=",           2,      "",     0)
-CHAR("<>",                     2,      "<>",           2,      "",     0)
-CHAR("=)",                     2,      "=)",           2,      "",     0)
-CHAR("==",                     2,      "==",           2,      "",     0)
-CHAR("=~",                     2,      "=~",           2,      "",     0)
-CHAR(">=",                     2,      ">=",           2,      "",     0)
-CHAR("AE",                     2,      "AE",           2,      "",     0)
-CHAR("AN",                     2,      "^",            1,      "",     0)
-CHAR("Ah",                     2,      "N",            1,      "",     0)
-CHAR("Bq",                     2,      ",,",           2,      "",     0)
-CHAR("Cs",                     2,      "x",            1,      "",     0)
-CHAR("Do",                     2,      "$",            1,      "",     0)
-CHAR("Eu",                     2,      "EUR",          3,      "",     0)
-CHAR("Fc",                     2,      ">>",           2,      "",     0)
-CHAR("Fi",                     2,      "ffi",          3,      "",     0)
-CHAR("Fl",                     2,      "ffl",          3,      "",     0)
-CHAR("Fn",                     2,      "f",            1,      "",     0)
-CHAR("Fo",                     2,      "<<",           2,      "",     0)
-CHAR("Im",                     2,      "I",            1,      "",     0)
-CHAR("OE",                     2,      "OE",           2,      "",     0)
-CHAR("OR",                     2,      "v",            1,      "",     0)
-CHAR("Po",                     2,      "L",            1,      "",     0)
-CHAR("Re",                     2,      "R",            1,      "",     0)
-CHAR("Sd",                     2,      "o",            1,      "",     0)
-CHAR("TP",                     2,      "b",            1,      "",     0)
-CHAR("Tp",                     2,      "b",            1,      "",     0)
-CHAR("Ye",                     2,      "Y",            1,      "",     0)
-CHAR("\'",                     1,      "\'",           1,      "",     0)
-CHAR("\'A",                    2,      "A",            1,      "",     0)
-CHAR("\'E",                    2,      "E",            1,      "",     0)
-CHAR("\'I",                    2,      "I",            1,      "",     0)
-CHAR("\'O",                    2,      "O",            1,      "",     0)
-CHAR("\'U",                    2,      "U",            1,      "",     0)
-CHAR("\'a",                    2,      "a",            1,      "",     0)
-CHAR("\'e",                    2,      "e",            1,      "",     0)
-CHAR("\'i",                    2,      "i",            1,      "",     0)
-CHAR("\'o",                    2,      "o",            1,      "",     0)
-CHAR("\'u",                    2,      "u",            1,      "",     0)
-CHAR("\\",                     1,      "\\",           1,      "",     0)
-CHAR("^",                      1,      "",             0,      "",     0)
-CHAR("^A",                     2,      "A",            1,      "",     0)
-CHAR("^E",                     2,      "E",            1,      "",     0)
-CHAR("^I",                     2,      "I",            1,      "",     0)
-CHAR("^O",                     2,      "O",            1,      "",     0)
-CHAR("^U",                     2,      "U",            1,      "",     0)
-CHAR("^a",                     2,      "a",            1,      "",     0)
-CHAR("^e",                     2,      "e",            1,      "",     0)
-CHAR("^i",                     2,      "i",            1,      "",     0)
-CHAR("^o",                     2,      "o",            1,      "",     0)
-CHAR("^u",                     2,      "u",            1,      "",     0)
-CHAR("`",                      1,      "`",            1,      "",     0)
-CHAR("`A",                     2,      "A",            1,      "",     0)
-CHAR("`E",                     2,      "E",            1,      "",     0)
-CHAR("`I",                     2,      "I",            1,      "",     0)
-CHAR("`O",                     2,      "O",            1,      "",     0)
-CHAR("`U",                     2,      "U",            1,      "",     0)
-CHAR("`a",                     2,      "a",            1,      "",     0)
-CHAR("`e",                     2,      "e",            1,      "",     0)
-CHAR("`i",                     2,      "i",            1,      "",     0)
-CHAR("`o",                     2,      "o",            1,      "",     0)
-CHAR("`u",                     2,      "u",            1,      "",     0)
-CHAR("a-",                     2,      "-",            1,      "",     0)
-CHAR("a\"",                    2,      "\"",           1,      "",     0)
-CHAR("a^",                     2,      "^",            1,      "",     0)
-CHAR("aa",                     2,      "\'",           1,      "",     0)
-CHAR("ab",                     2,      "`",            1,      "",     0)
-CHAR("ac",                     2,      ",",            1,      "",     0)
-CHAR("ad",                     2,      "\"",           1,      "",     0)
-CHAR("ae",                     2,      "ae",           2,      "",     0)
-CHAR("ah",                     2,      "v",            1,      "",     0)
-CHAR("ao",                     2,      "o",            1,      "",     0)
-CHAR("ap",                     2,      "~",            1,      "",     0)
-CHAR("aq",                     2,      "\'",           1,      "",     0)
-CHAR("a~",                     2,      "~",            1,      "",     0)
-CHAR("ba",                     2,      "|",            1,      "",     0)
-CHAR("bb",                     2,      "|",            1,      "",     0)
-CHAR("bq",                     2,      ",",            1,      "",     0)
-CHAR("bu",                     2,      "o",            1,      "",     0)
-CHAR("c",                      1,      "",             0,      "",     0)
-CHAR("ca",                     2,      "(^)",          3,      "",     0)
-CHAR("ci",                     2,      "O",            1,      "",     0)
-CHAR("co",                     2,      "(C)",          3,      "",     0)
-CHAR("ct",                     2,      "c",            1,      "",     0)
-CHAR("cu",                     2,      "U",            1,      "",     0)
-CHAR("dA",                     2,      "v",            1,      "",     0)
-CHAR("da",                     2,      "v",            1,      "",     0)
-CHAR("dd",                     2,      "=",            1,      "",     0)
-CHAR("de",                     2,      "o",            1,      "",     0)
-CHAR("dg",                     2,      "-",            1,      "",     0)
-CHAR("di",                     2,      "-:-",          3,      "",     0)
-CHAR("e",                      1,      "\\",           1,      "",     0)
-CHAR("em",                     2,      "--",           2,      "&#8212;",      7)
-CHAR("en",                     2,      "-",            1,      "&#8211;",      7)
-CHAR("eq",                     2,      "=",            1,      "",     0)
-CHAR("es",                     2,      "{}",           2,      "",     0)
-CHAR("eu",                     2,      "EUR",          3,      "",     0)
-CHAR("fa",                     2,      "V",            1,      "",     0)
-CHAR("fc",                     2,      ">",            1,      "",     0)
-CHAR("ff",                     2,      "ff",           2,      "",     0)
-CHAR("fi",                     2,      "fi",           2,      "",     0)
-CHAR("fl",                     2,      "fl",           2,      "",     0)
-CHAR("fo",                     2,      "<",            1,      "",     0)
-CHAR("ga",                     2,      "`",            1,      "",     0)
-CHAR("gr",                     2,      "V",            1,      "",     0)
-CHAR("hA",                     2,      "<=>",          3,      "",     0)
-CHAR("ho",                     2,      ",",            1,      "",     0)
-CHAR("hy",                     2,      "-",            1,      "",     0)
-CHAR("if",                     2,      "oo",           2,      "",     0)
-CHAR("lA",                     2,      "<=",           2,      "",     0)
-CHAR("lB",                     2,      "[",            1,      "[",            1)
-CHAR("lC",                     2,      "{",            1,      "",     0)
-CHAR("la",                     2,      "<",            1,      "",     0)
-CHAR("lh",                     2,      "<=",           2,      "",     0)
-CHAR("mo",                     2,      "E",            1,      "",     0)
-CHAR("mu",                     2,      "x",            1,      "",     0)
-CHAR("na",                     2,      "NaN",          3,      "",     0)
-CHAR("nm",                     2,      "E",            1,      "",     0)
-CHAR("no",                     2,      "~",            1,      "",     0)
-CHAR("oA",                     2,      "A",            1,      "",     0)
-CHAR("oa",                     2,      "a",            1,      "",     0)
-CHAR("oe",                     2,      "oe",           2,      "",     0)
-CHAR("oq",                     2,      "`",            1,      "",     0)
-CHAR("pd",                     2,      "a",            1,      "",     0)
-CHAR("pl",                     2,      "+",            1,      "",     0)
-CHAR("ps",                     2,      "9|",           2,      "",     0)
-CHAR("r!",                     2,      "i",            1,      "",     0)
-CHAR("r?",                     2,      "c",            1,      "",     0)
-CHAR("rA",                     2,      "=>",           2,      "",     0)
-CHAR("rB",                     2,      "]",            1,      "]",            1)
-CHAR("rC",                     2,      "}",            1,      "",     0)
-CHAR("ra",                     2,      ">",            1,      "",     0)
-CHAR("rg",                     2,      "(R)",          3,      "",     0)
-CHAR("rh",                     2,      "=>",           2,      "",     0)
-CHAR("sc",                     2,      "S",            1,      "",     0)
-CHAR("ss",                     2,      "ss",           2,      "",     0)
-CHAR("st",                     2,      "-)",           2,      "",     0)
-CHAR("te",                     2,      "3",            1,      "",     0)
-CHAR("tf",                     2,      ".:.",          3,      "",     0)
-CHAR("tm",                     2,      "tm",           2,      "",     0)
-CHAR("ts",                     2,      "s",            1,      "",     0)
-CHAR("uA",                     2,      "^",            1,      "",     0)
-CHAR("ua",                     2,      "^",            1,      "",     0)
-CHAR("|",                      1,      "",             0,      "",     0)
-CHAR("~",                      1,      " ",            1,      "",     0)
-CHAR("~=",                     2,      "~=",           2,      "",     0)
-CHAR("~A",                     2,      "A",            1,      "",     0)
-CHAR("~N",                     2,      "N",            1,      "",     0)
-CHAR("~O",                     2,      "O",            1,      "",     0)
-CHAR("~a",                     2,      "a",            1,      "",     0)
-CHAR("~n",                     2,      "n",            1,      "",     0)
-CHAR("~o",                     2,      "o",            1,      "",     0)
-CHAR("~~",                     2,      "~~",           2,      "",     0)
+/* Spacing. */
+CHAR("c",                      "",             0)
+CHAR("0",                      " ",            8194)
+CHAR(" ",                      ascii_nbrsp,    160)
+CHAR("~",                      ascii_nbrsp,    160)
+CHAR("%",                      "",             0)
+CHAR("&",                      "",             0)
+CHAR("^",                      "",             0)
+CHAR("|",                      "",             0)
+CHAR("}",                      "",             0)
+
+/* Accents. */
+CHAR("a\"",                    "\"",           779)
+CHAR("a-",                     "-",            175)
+CHAR("a.",                     ".",            729)
+CHAR("a^",                     "^",            770)
+CHAR("\'",                     "\'",           769)
+CHAR("aa",                     "\'",           769)
+CHAR("ga",                     "`",            768)
+CHAR("`",                      "`",            768)
+CHAR("ab",                     "`",            774)
+CHAR("ac",                     ",",            807)
+CHAR("ad",                     "\"",           776)
+CHAR("ah",                     "v",            711)
+CHAR("ao",                     "o",            730)
+CHAR("a~",                     "~",            771)
+CHAR("ho",                     ",",            808)
+CHAR("ha",                     "^",            94)
+CHAR("ti",                     "~",            126)
+
+/* Quotes. */
+CHAR("Bq",                     ",,",           8222)
+CHAR("bq",                     ",",            8218)
+CHAR("lq",                     "``",           8220)
+CHAR("rq",                     "\'\'",         8221)
+CHAR("oq",                     "`",            8216)
+CHAR("cq",                     "\'",           8217)
+CHAR("aq",                     "\'",           39)
+CHAR("dq",                     "\"",           34)
+CHAR("Fo",                     "<<",           171)
+CHAR("Fc",                     ">>",           187)
+CHAR("fo",                     "<",            8249)
+CHAR("fc",                     ">",            8250)
+
+/* Brackets. */
+CHAR("lB",                     "[",            91)
+CHAR("rB",                     "]",            93)
+CHAR("lC",                     "{",            123)
+CHAR("rC",                     "}",            125)
+CHAR("la",                     "<",            60)
+CHAR("ra",                     ">",            62)
+CHAR("bv",                     "|",            9130)
+CHAR("braceex",                        "|",            9130)
+CHAR("bracketlefttp",          "|",            9121)
+CHAR("bracketleftbp",          "|",            9123)
+CHAR("bracketleftex",          "|",            9122)
+CHAR("bracketrighttp",         "|",            9124)
+CHAR("bracketrightbp",         "|",            9126)
+CHAR("bracketrightex",         "|",            9125)
+CHAR("lt",                     ",-",           9127)
+CHAR("bracelefttp",            ",-",           9127)
+CHAR("lk",                     "{",            9128)
+CHAR("braceleftmid",           "{",            9128)
+CHAR("lb",                     ",-",           9129)
+CHAR("braceleftbp",            "`-",           9129)
+CHAR("braceleftex",            "|",            9130)
+CHAR("rt",                     "-.",           9131)
+CHAR("bracerighttp",           "-.",           9131)
+CHAR("rk",                     "}",            9132)
+CHAR("bracerightmid",          "}",            9132)
+CHAR("rb",                     "-\'",          9133)
+CHAR("bracerightbp",           "-\'",          9133)
+CHAR("bracerightex",           "|",            9130)
+CHAR("parenlefttp",            "/",            9115)
+CHAR("parenleftbp",            "\\",           9117)
+CHAR("parenleftex",            "|",            9116)
+CHAR("parenrighttp",           "\\",           9118)
+CHAR("parenrightbp",           "/",            9120)
+CHAR("parenrightex",           "|",            9119)
+
+/* Greek characters. */
+CHAR("*A",                     "A",            913)
+CHAR("*B",                     "B",            914)
+CHAR("*G",                     "|",            915)
+CHAR("*D",                     "/\\",          916)
+CHAR("*E",                     "E",            917)
+CHAR("*Z",                     "Z",            918)
+CHAR("*Y",                     "H",            919)
+CHAR("*H",                     "O",            920)
+CHAR("*I",                     "I",            921)
+CHAR("*K",                     "K",            922)
+CHAR("*L",                     "/\\",          923)
+CHAR("*M",                     "M",            924)
+CHAR("*N",                     "N",            925)
+CHAR("*C",                     "H",            926)
+CHAR("*O",                     "O",            927)
+CHAR("*P",                     "TT",           928)
+CHAR("*R",                     "P",            929)
+CHAR("*S",                     ">",            931)
+CHAR("*T",                     "T",            932)
+CHAR("*U",                     "Y",            933)
+CHAR("*F",                     "O_",           934)
+CHAR("*X",                     "X",            935)
+CHAR("*Q",                     "Y",            936)
+CHAR("*W",                     "O",            937)
+CHAR("*a",                     "a",            945)
+CHAR("*b",                     "B",            946)
+CHAR("*g",                     "y",            947)
+CHAR("*d",                     "d",            948)
+CHAR("*e",                     "e",            949)
+CHAR("*z",                     "C",            950)
+CHAR("*y",                     "n",            951)
+CHAR("*h",                     "0",            952)
+CHAR("*i",                     "i",            953)
+CHAR("*k",                     "k",            954)
+CHAR("*l",                     "\\",           955)
+CHAR("*m",                     "u",            956)
+CHAR("*n",                     "v",            957)
+CHAR("*c",                     "E",            958)
+CHAR("*o",                     "o",            959)
+CHAR("*p",                     "n",            960)
+CHAR("*r",                     "p",            961)
+CHAR("*s",                     "o",            963)
+CHAR("*t",                     "t",            964)
+CHAR("*u",                     "u",            965)
+CHAR("*f",                     "o",            981)
+CHAR("*x",                     "x",            967)
+CHAR("*q",                     "u",            968)
+CHAR("*w",                     "w",            969)
+CHAR("+h",                     "0",            977)
+CHAR("+f",                     "o",            966)
+CHAR("+p",                     "w",            982)
+CHAR("+e",                     "e",            1013)
+CHAR("ts",                     "s",            962)
+
+/* Accented letters. */
+CHAR(",C",                     "C",            199)
+CHAR(",c",                     "c",            231)
+CHAR("/L",                     "L",            321)
+CHAR("/O",                     "O",            216)
+CHAR("/l",                     "l",            322)
+CHAR("/o",                     "o",            248)
+CHAR("oA",                     "A",            197)
+CHAR("oa",                     "a",            229)
+CHAR(":A",                     "A",            196)
+CHAR(":E",                     "E",            203)
+CHAR(":I",                     "I",            207)
+CHAR(":O",                     "O",            214)
+CHAR(":U",                     "U",            220)
+CHAR(":a",                     "a",            228)
+CHAR(":e",                     "e",            235)
+CHAR(":i",                     "i",            239)
+CHAR(":o",                     "o",            246)
+CHAR(":u",                     "u",            252)
+CHAR(":y",                     "y",            255)
+CHAR("\'A",                    "A",            193)
+CHAR("\'E",                    "E",            201)
+CHAR("\'I",                    "I",            205)
+CHAR("\'O",                    "O",            211)
+CHAR("\'U",                    "U",            218)
+CHAR("\'a",                    "a",            225)
+CHAR("\'e",                    "e",            233)
+CHAR("\'i",                    "i",            237)
+CHAR("\'o",                    "o",            243)
+CHAR("\'u",                    "u",            250)
+CHAR("^A",                     "A",            194)
+CHAR("^E",                     "E",            202)
+CHAR("^I",                     "I",            206)
+CHAR("^O",                     "O",            212)
+CHAR("^U",                     "U",            219)
+CHAR("^a",                     "a",            226)
+CHAR("^e",                     "e",            234)
+CHAR("^i",                     "i",            238)
+CHAR("^o",                     "o",            244)
+CHAR("^u",                     "u",            251)
+CHAR("`A",                     "A",            192)
+CHAR("`E",                     "E",            200)
+CHAR("`I",                     "I",            204)
+CHAR("`O",                     "O",            210)
+CHAR("`U",                     "U",            217)
+CHAR("`a",                     "a",            224)
+CHAR("`e",                     "e",            232)
+CHAR("`i",                     "i",            236)
+CHAR("`o",                     "o",            242)
+CHAR("`u",                     "u",            249)
+CHAR("~A",                     "A",            195)
+CHAR("~N",                     "N",            209)
+CHAR("~O",                     "O",            213)
+CHAR("~a",                     "a",            227)
+CHAR("~n",                     "n",            241)
+CHAR("~o",                     "o",            245)
+
+/* Arrows and lines. */
+CHAR("<-",                     "<-",           8592)
+CHAR("->",                     "->",           8594)
+CHAR("<>",                     "<>",           8596)
+CHAR("da",                     "v",            8595)
+CHAR("ua",                     "^",            8593)
+CHAR("va",                     "^v",           8597)
+CHAR("lA",                     "<=",           8656)
+CHAR("rA",                     "=>",           8658)
+CHAR("hA",                     "<=>",          8660)
+CHAR("dA",                     "v",            8659)
+CHAR("uA",                     "^",            8657)
+CHAR("vA",                     "^=v",          8661)
+
+/* Logic. */
+CHAR("AN",                     "^",            8743)
+CHAR("OR",                     "v",            8744)
+CHAR("no",                     "~",            172)
+CHAR("tno",                    "~",            172)
+CHAR("te",                     "3",            8707)
+CHAR("fa",                     "V",            8704)
+CHAR("st",                     "-)",           8715)
+CHAR("tf",                     ".:.",          8756)
+CHAR("3d",                     ".:.",          8756)
+CHAR("or",                     "|",            124)
+
+/* Mathematicals. */
+CHAR("pl",                     "+",            43)
+CHAR("mi",                     "-",            8722)
+CHAR("-",                      "-",            45)
+CHAR("-+",                     "-+",           8723)
+CHAR("+-",                     "+-",           177)
+CHAR("t+-",                    "+-",           177)
+CHAR("pc",                     ".",            183)
+CHAR("md",                     ".",            8901)
+CHAR("mu",                     "x",            215)
+CHAR("tmu",                    "x",            215)
+CHAR("c*",                     "x",            8855)
+CHAR("c+",                     "+",            8853)
+CHAR("di",                     "-:-",          247)
+CHAR("tdi",                    "-:-",          247)
+CHAR("f/",                     "/",            8260)
+CHAR("**",                     "*",            8727)
+CHAR("<=",                     "<=",           8804)
+CHAR(">=",                     ">=",           8805)
+CHAR("<<",                     "<<",           8810)
+CHAR(">>",                     ">>",           8811)
+CHAR("eq",                     "=",            61)
+CHAR("!=",                     "!=",           8800)
+CHAR("==",                     "==",           8801)
+CHAR("ne",                     "!==",          8802)
+CHAR("=~",                     "=~",           8773)
+CHAR("-~",                     "-~",           8771)
+CHAR("ap",                     "~",            8764)
+CHAR("~~",                     "~~",           8776)
+CHAR("~=",                     "~=",           8780)
+CHAR("pt",                     "oc",           8733)
+CHAR("es",                     "{}",           8709)
+CHAR("mo",                     "E",            8712)
+CHAR("nm",                     "!E",           8713)
+CHAR("sb",                     "(=",           8834)
+CHAR("nb",                     "(!=",          8836)
+CHAR("sp",                     "=)",           8835)
+CHAR("nc",                     "!=)",          8837)
+CHAR("ib",                     "(=",           8838)
+CHAR("ip",                     "=)",           8839)
+CHAR("ca",                     "(^)",          8745)
+CHAR("cu",                     "U",            8746)
+CHAR("/_",                     "/_",           8736)
+CHAR("pp",                     "_|_",          8869)
+CHAR("is",                     "I",            8747)
+CHAR("integral",               "I",            8747)
+CHAR("sum",                    "E",            8721)
+CHAR("product",                        "TT",           8719)
+CHAR("coproduct",              "U",            8720)
+CHAR("gr",                     "V",            8711)
+CHAR("sr",                     "\\/",          8730)
+CHAR("sqrt",                   "\\/",          8730)
+CHAR("lc",                     "|~",           8968)
+CHAR("rc",                     "~|",           8969)
+CHAR("lf",                     "|_",           8970)
+CHAR("rf",                     "_|",           8971)
+CHAR("if",                     "oo",           8734)
+CHAR("Ah",                     "N",            8501)
+CHAR("Im",                     "I",            8465)
+CHAR("Re",                     "R",            8476)
+CHAR("pd",                     "a",            8706)
+CHAR("-h",                     "/h",           8463)
+CHAR("12",                     "1/2",          189)
+CHAR("14",                     "1/4",          188)
+CHAR("34",                     "3/4",          190)
+
+/* Ligatures. */
+CHAR("ff",                     "ff",           64256)
+CHAR("fi",                     "fi",           64257)
+CHAR("fl",                     "fl",           64258)
+CHAR("Fi",                     "ffi",          64259)
+CHAR("Fl",                     "ffl",          64260)
+CHAR("AE",                     "AE",           198)
+CHAR("ae",                     "ae",           230)
+CHAR("OE",                     "OE",           338)
+CHAR("oe",                     "oe",           339)
+CHAR("ss",                     "ss",           223)
+CHAR("IJ",                     "IJ",           306)
+CHAR("ij",                     "ij",           307)
+
+/* Special letters. */
+CHAR("-D",                     "D",            208)
+CHAR("Sd",                     "o",            240)
+CHAR("TP",                     "b",            222)
+CHAR("Tp",                     "b",            254)
+CHAR(".i",                     "i",            305)
+CHAR(".j",                     "j",            567)
+
+/* Currency. */
+CHAR("Do",                     "$",            36)
+CHAR("ct",                     "c",            162)
+CHAR("Eu",                     "EUR",          8364)
+CHAR("eu",                     "EUR",          8364)
+CHAR("Ye",                     "Y",            165)
+CHAR("Po",                     "L",            163)
+CHAR("Cs",                     "x",            164)
+CHAR("Fn",                     "f",            402)
+
+/* Lines. */
+CHAR("ba",                     "|",            124)
+CHAR("br",                     "|",            9474)
+CHAR("ul",                     "_",            95)
+CHAR("rl",                     "-",            8254)
+CHAR("bb",                     "|",            166)
+CHAR("sl",                     "/",            47)
+CHAR("rs",                     "\\",           92)
+
+/* Text markers. */
+CHAR("ci",                     "o",            9675)
+CHAR("bu",                     "o",            8226)
+CHAR("dd",                     "=",            8225)
+CHAR("dg",                     "-",            8224)
+CHAR("lz",                     "<>",           9674)
+CHAR("sq",                     "[]",           9633)
+CHAR("ps",                     "9|",           182)
+CHAR("sc",                     "S",            167)
+CHAR("lh",                     "<=",           9756)
+CHAR("rh",                     "=>",           9758)
+CHAR("at",                     "@",            64)
+CHAR("sh",                     "#",            35)
+CHAR("CR",                     "_|",           8629)
+CHAR("OK",                     "\\/",          10003)
+
+/* Legal symbols. */
+CHAR("co",                     "(C)",          169)
+CHAR("rg",                     "(R)",          174)
+CHAR("tm",                     "tm",           8482)
+
+/* Punctuation. */
+CHAR(".",                      ".",            46)
+CHAR("r!",                     "i",            161)
+CHAR("r?",                     "c",            191)
+CHAR("em",                     "--",           8212)
+CHAR("en",                     "-",            8211)
+CHAR("hy",                     "-",            8208)
+CHAR("e",                      "\\",           92)
+
+/* Units. */
+CHAR("de",                     "o",            176)
+CHAR("%0",                     "%o",           8240)
+CHAR("fm",                     "\'",           8242)
+CHAR("sd",                     "\"",           8243)
+CHAR("mc",                     "mu",           181)
+
+CHAR_TBL_END