[BACK]Return to chars.in CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Annotation of mandoc/chars.in, Revision 1.24

1.24    ! kristaps    1: /*     $Id: chars.in,v 1.23 2010/05/16 01:35:37 schwarze Exp $ */
1.1       kristaps    2: /*
                      3:  * Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
                      4:  *
                      5:  * Permission to use, copy, modify, and distribute this software for any
                      6:  * purpose with or without fee is hereby granted, provided that the above
                      7:  * copyright notice and this permission notice appear in all copies.
                      8:  *
                      9:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                     10:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                     11:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                     12:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     13:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                     14:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
                     15:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                     16:  */
                     17:
                     18: /*
                     19:  * The ASCII translation tables.  STRING corresponds to predefined
                     20:  * strings (cf. mdoc_samples.7 and tmac/mdoc/doc-nroff).  CHAR
                     21:  * corresponds to special characters (cf. groff_char.7).  BOTH contains
                     22:  * sequences that are equivalent in both STRING and CHAR.
                     23:  *
                     24:  * Either way, the left-hand side corresponds to the input sequence (\x,
                     25:  * \(xx, \*(xx and so on) whose length is listed second element.  The
                     26:  * right-hand side is what's produced by the front-end, with the fourth
                     27:  * element being its length.
                     28:  *
                     29:  * XXX - C-escape strings!
                     30:  * XXX - update LINES_MAX if adding more!
                     31:  */
                     32:
1.19      kristaps   33: /* Non-breaking, non-collapsing space uses unit separator. */
1.23      schwarze   34: static const char ascii_nbrsp[2] = { ASCII_NBRSP, 0 };
1.19      kristaps   35:
                     36: CHAR_TBL_START
                     37:
1.17      kristaps   38: /* Spacing. */
                     39: CHAR("c",                      1,      "",             0,      "",             0)
1.18      kristaps   40: CHAR("0",                      1,      " ",            1,      "&#8194;",      7)
1.17      kristaps   41: CHAR(" ",                      1,      " ",            1,      "&#8194;",      7)
1.19      kristaps   42: CHAR("~",                      1,      ascii_nbrsp,    1,      "&#160;",       6)
1.15      kristaps   43: CHAR("%",                      1,      "",             0,      "",             0)
                     44: CHAR("&",                      1,      "",             0,      "",             0)
                     45: CHAR("^",                      1,      "",             0,      "",             0)
1.17      kristaps   46: CHAR("|",                      1,      "",             0,      "",             0)
1.24    ! kristaps   47: CHAR("}",                      1,      "",             0,      "",             0)
1.1       kristaps   48:
1.12      kristaps   49: /* Accents. */
                     50: CHAR("a\"",                    2,      "\"",           1,      "&#779;",       6)
                     51: CHAR("a-",                     2,      "-",            1,      "&#175;",       6)
                     52: CHAR("a.",                     2,      ".",            1,      "&#729;",       6)
                     53: CHAR("a^",                     2,      "^",            1,      "&#770;",       6)
1.21      kristaps   54: BOTH("\'",                     1,      "\'",           1,      "&#769;",       6)
1.12      kristaps   55: BOTH("aa",                     2,      "\'",           1,      "&#769;",       6)
                     56: BOTH("ga",                     2,      "`",            1,      "&#768;",       6)
1.21      kristaps   57: BOTH("`",                      1,      "`",            1,      "&#768;",       6)
1.12      kristaps   58: CHAR("ab",                     2,      "`",            1,      "&#774;",       6)
                     59: CHAR("ac",                     2,      ",",            1,      "&#807;",       6)
                     60: CHAR("ad",                     2,      "\"",           1,      "&#776;",       6)
                     61: CHAR("ah",                     2,      "v",            1,      "&#711;",       6)
                     62: CHAR("ao",                     2,      "o",            1,      "&#730;",       6)
                     63: CHAR("a~",                     2,      "~",            1,      "&#771;",       6)
                     64: CHAR("ho",                     2,      ",",            1,      "&#808;",       6)
                     65: CHAR("ha",                     2,      "^",            1,      "^",            1)
                     66: CHAR("ti",                     2,      "~",            1,      "~",            1)
1.11      kristaps   67:
1.13      kristaps   68: /* Quotes. */
                     69: CHAR("Bq",                     2,      ",,",           2,      "&#8222;",      7)
                     70: CHAR("bq",                     2,      ",",            1,      "&#8218;",      7)
1.3       kristaps   71: BOTH("lq",                     2,      "``",           2,      "&#8220;",      7)
                     72: BOTH("rq",                     2,      "\'\'",         2,      "&#8221;",      7)
1.13      kristaps   73: CHAR("oq",                     2,      "`",            1,      "&#8216;",      7)
                     74: CHAR("cq",                     2,      "\'",           1,      "&#8217;",      7)
                     75: CHAR("aq",                     2,      "\'",           1,      "\'",           1)
                     76: CHAR("dq",                     2,      "\"",           1,      "\"",           1)
                     77: CHAR("Fo",                     2,      "<<",           2,      "&#171;",       6)
                     78: CHAR("Fc",                     2,      ">>",           2,      "&#187;",       6)
                     79: CHAR("fo",                     2,      "<",            1,      "&#8249;",      7)
                     80: CHAR("fc",                     2,      ">",            1,      "&#8250;",      7)
                     81:
1.14      kristaps   82: /* Brackets. */
                     83: CHAR("lB",                     2,      "[",            1,      "[",            1)
                     84: CHAR("rB",                     2,      "]",            1,      "]",            1)
                     85: CHAR("lC",                     2,      "{",            1,      "{",            1)
                     86: CHAR("rC",                     2,      "}",            1,      "}",            1)
                     87: CHAR("la",                     2,      "<",            1,      "&#10216;",     8)
                     88: CHAR("ra",                     2,      ">",            1,      "&#10217;",     8)
                     89: CHAR("bv",                     2,      "|",            1,      "&#9130;",      7)
                     90: CHAR("braceex",                        7,      "|",            1,      "&#9130;",      7)
                     91: CHAR("bracketlefttp",          13,     "|",            1,      "&#9121;",      7)
                     92: CHAR("bracketleftbp",          13,     "|",            1,      "&#9123;",      7)
                     93: CHAR("bracketleftex",          13,     "|",            1,      "&#9122;",      7)
                     94: CHAR("bracketrighttp",         14,     "|",            1,      "&#9124;",      7)
                     95: CHAR("bracketrightbp",         14,     "|",            1,      "&#9126;",      7)
                     96: CHAR("bracketrightex",         14,     "|",            1,      "&#9125;",      7)
                     97: CHAR("lt",                     2,      ",-",           2,      "&#9127;",      7)
                     98: CHAR("bracelefttp",            11,     ",-",           2,      "&#9127;",      7)
                     99: CHAR("lk",                     2,      "{",            1,      "&#9128;",      7)
                    100: CHAR("braceleftmid",           12,     "{",            1,      "&#9128;",      7)
                    101: CHAR("lb",                     2,      ",-",           2,      "&#9129;",      7)
                    102: CHAR("braceleftbp",            11,     "`-",           2,      "&#9129;",      7)
                    103: CHAR("braceleftex",            11,     "|",            1,      "&#9130;",      7)
                    104: CHAR("rt",                     2,      "-.",           2,      "&#9131;",      7)
                    105: CHAR("bracerighttp",           12,     "-.",           2,      "&#9131;",      7)
                    106: CHAR("rk",                     2,      "}",            1,      "&#9132;",      7)
                    107: CHAR("bracerightmid",          13,     "}",            1,      "&#9132;",      7)
                    108: CHAR("rb",                     2,      "-\'",          2,      "&#9133;",      7)
                    109: CHAR("bracerightbp",           12,     "-\'",          2,      "&#9133;",      7)
                    110: CHAR("bracerightex",           12,     "|",            1,      "&#9130;",      7)
                    111: CHAR("parenlefttp",            11,     "/",            1,      "&#9115;",      7)
                    112: CHAR("parenleftbp",            11,     "\\",           1,      "&#9117;",      7)
                    113: CHAR("parenleftex",            11,     "|",            1,      "&#9116;",      7)
                    114: CHAR("parenrighttp",           12,     "\\",           1,      "&#9118;",      7)
                    115: CHAR("parenrightbp",           12,     "/",            1,      "&#9120;",      7)
                    116: CHAR("parenrightex",           12,     "|",            1,      "&#9119;",      7)
1.1       kristaps  117:
1.11      kristaps  118: /* Greek characters. */
1.8       kristaps  119: CHAR("*A",                     2,      "A",            1,      "&#913;",       6)
                    120: CHAR("*B",                     2,      "B",            1,      "&#914;",       6)
1.11      kristaps  121: CHAR("*G",                     2,      "|",            1,      "&#915;",       6)
1.8       kristaps  122: CHAR("*D",                     2,      "/\\",          2,      "&#916;",       6)
                    123: CHAR("*E",                     2,      "E",            1,      "&#917;",       6)
1.11      kristaps  124: CHAR("*Z",                     2,      "Z",            1,      "&#918;",       6)
                    125: CHAR("*Y",                     2,      "H",            1,      "&#919;",       6)
1.8       kristaps  126: CHAR("*H",                     2,      "O",            1,      "&#920;",       6)
                    127: CHAR("*I",                     2,      "I",            1,      "&#921;",       6)
                    128: CHAR("*K",                     2,      "K",            1,      "&#922;",       6)
                    129: CHAR("*L",                     2,      "/\\",          2,      "&#923;",       6)
                    130: CHAR("*M",                     2,      "M",            1,      "&#924;",       6)
                    131: CHAR("*N",                     2,      "N",            1,      "&#925;",       6)
1.11      kristaps  132: CHAR("*C",                     2,      "H",            1,      "&#926;",       6)
1.8       kristaps  133: CHAR("*O",                     2,      "O",            1,      "&#927;",       6)
                    134: CHAR("*P",                     2,      "TT",           2,      "&#928;",       6)
                    135: CHAR("*R",                     2,      "P",            1,      "&#929;",       6)
                    136: CHAR("*S",                     2,      ">",            1,      "&#931;",       6)
                    137: CHAR("*T",                     2,      "T",            1,      "&#932;",       6)
                    138: CHAR("*U",                     2,      "Y",            1,      "&#933;",       6)
1.11      kristaps  139: CHAR("*F",                     2,      "O_",           1,      "&#934;",       6)
                    140: CHAR("*X",                     2,      "X",            1,      "&#935;",       6)
                    141: CHAR("*Q",                     2,      "Y",            1,      "&#936;",       6)
1.8       kristaps  142: CHAR("*W",                     2,      "O",            1,      "&#937;",       6)
1.9       kristaps  143: CHAR("*a",                     2,      "a",            1,      "&#945;",       6)
                    144: CHAR("*b",                     2,      "B",            1,      "&#946;",       6)
1.11      kristaps  145: CHAR("*g",                     2,      "y",            1,      "&#947;",       6)
1.9       kristaps  146: CHAR("*d",                     2,      "d",            1,      "&#948;",       6)
                    147: CHAR("*e",                     2,      "e",            1,      "&#949;",       6)
1.11      kristaps  148: CHAR("*z",                     2,      "C",            1,      "&#950;",       6)
                    149: CHAR("*y",                     2,      "n",            1,      "&#951;",       6)
1.9       kristaps  150: CHAR("*h",                     2,      "0",            1,      "&#952;",       6)
                    151: CHAR("*i",                     2,      "i",            1,      "&#953;",       6)
                    152: CHAR("*k",                     2,      "k",            1,      "&#954;",       6)
                    153: CHAR("*l",                     2,      "\\",           1,      "&#955;",       6)
                    154: CHAR("*m",                     2,      "u",            1,      "&#956;",       6)
                    155: CHAR("*n",                     2,      "v",            1,      "&#957;",       6)
1.11      kristaps  156: CHAR("*c",                     2,      "E",            1,      "&#958;",       6)
1.9       kristaps  157: CHAR("*o",                     2,      "o",            1,      "&#959;",       6)
                    158: CHAR("*p",                     2,      "n",            1,      "&#960;",       6)
1.10      kristaps  159: CHAR("*r",                     2,      "p",            1,      "&#961;",       6)
                    160: CHAR("*s",                     2,      "o",            1,      "&#963;",       6)
                    161: CHAR("*t",                     2,      "t",            1,      "&#964;",       6)
                    162: CHAR("*u",                     2,      "u",            1,      "&#965;",       6)
1.11      kristaps  163: CHAR("*f",                     2,      "o",            1,      "&#981;",       6)
                    164: CHAR("*x",                     2,      "x",            1,      "&#967;",       6)
                    165: CHAR("*q",                     2,      "u",            1,      "&#968;",       6)
1.10      kristaps  166: CHAR("*w",                     2,      "w",            1,      "&#969;",       6)
1.8       kristaps  167: CHAR("+h",                     2,      "0",            1,      "&#977;",       6)
1.11      kristaps  168: CHAR("+f",                     2,      "o",            1,      "&#966;",       6)
1.8       kristaps  169: CHAR("+p",                     2,      "w",            1,      "&#982;",       6)
1.11      kristaps  170: CHAR("+e",                     2,      "e",            1,      "&#1013;",      7)
                    171: CHAR("ts",                     2,      "s",            1,      "&#962;",       6)
                    172:
1.17      kristaps  173: /* Accented letters. */
1.10      kristaps  174: CHAR(",C",                     2,      "C",            1,      "&#199;",       6)
                    175: CHAR(",c",                     2,      "c",            1,      "&#231;",       6)
1.11      kristaps  176: CHAR("/L",                     2,      "L",            1,      "&#321;",       6)
                    177: CHAR("/O",                     2,      "O",            1,      "&#216;",       6)
                    178: CHAR("/l",                     2,      "l",            1,      "&#322;",       6)
                    179: CHAR("/o",                     2,      "o",            1,      "&#248;",       6)
1.17      kristaps  180: CHAR("oA",                     2,      "A",            1,      "&#197;",       6)
                    181: CHAR("oa",                     2,      "a",            1,      "&#229;",       6)
1.11      kristaps  182: CHAR(":A",                     2,      "A",            1,      "&#196;",       6)
                    183: CHAR(":E",                     2,      "E",            1,      "&#203;",       6)
                    184: CHAR(":I",                     2,      "I",            1,      "&#207;",       6)
                    185: CHAR(":O",                     2,      "O",            1,      "&#214;",       6)
                    186: CHAR(":U",                     2,      "U",            1,      "&#220;",       6)
                    187: CHAR(":a",                     2,      "a",            1,      "&#228;",       6)
                    188: CHAR(":e",                     2,      "e",            1,      "&#235;",       6)
                    189: CHAR(":i",                     2,      "i",            1,      "&#239;",       6)
                    190: CHAR(":o",                     2,      "o",            1,      "&#245;",       6)
                    191: CHAR(":u",                     2,      "u",            1,      "&#252;",       6)
                    192: CHAR(":y",                     2,      "y",            1,      "&#255;",       6)
                    193: CHAR("\'A",                    2,      "A",            1,      "&#193;",       6)
                    194: CHAR("\'E",                    2,      "E",            1,      "&#201;",       6)
                    195: CHAR("\'I",                    2,      "I",            1,      "&#205;",       6)
                    196: CHAR("\'O",                    2,      "O",            1,      "&#211;",       6)
                    197: CHAR("\'U",                    2,      "U",            1,      "&#218;",       6)
                    198: CHAR("\'a",                    2,      "a",            1,      "&#225;",       6)
                    199: CHAR("\'e",                    2,      "e",            1,      "&#233;",       6)
                    200: CHAR("\'i",                    2,      "i",            1,      "&#237;",       6)
                    201: CHAR("\'o",                    2,      "o",            1,      "&#243;",       6)
                    202: CHAR("\'u",                    2,      "u",            1,      "&#250;",       6)
                    203: CHAR("^A",                     2,      "A",            1,      "&#194;",       6)
                    204: CHAR("^E",                     2,      "E",            1,      "&#202;",       6)
                    205: CHAR("^I",                     2,      "I",            1,      "&#206;",       6)
                    206: CHAR("^O",                     2,      "O",            1,      "&#212;",       6)
                    207: CHAR("^U",                     2,      "U",            1,      "&#219;",       6)
                    208: CHAR("^a",                     2,      "a",            1,      "&#226;",       6)
                    209: CHAR("^e",                     2,      "e",            1,      "&#234;",       6)
                    210: CHAR("^i",                     2,      "i",            1,      "&#238;",       6)
                    211: CHAR("^o",                     2,      "o",            1,      "&#244;",       6)
                    212: CHAR("^u",                     2,      "u",            1,      "&#251;",       6)
                    213: CHAR("`A",                     2,      "A",            1,      "&#192;",       6)
                    214: CHAR("`E",                     2,      "E",            1,      "&#200;",       6)
                    215: CHAR("`I",                     2,      "I",            1,      "&#204;",       6)
                    216: CHAR("`O",                     2,      "O",            1,      "&#210;",       6)
                    217: CHAR("`U",                     2,      "U",            1,      "&#217;",       6)
                    218: CHAR("`a",                     2,      "a",            1,      "&#224;",       6)
                    219: CHAR("`e",                     2,      "e",            1,      "&#232;",       6)
                    220: CHAR("`i",                     2,      "i",            1,      "&#236;",       6)
                    221: CHAR("`o",                     2,      "o",            1,      "&#242;",       6)
                    222: CHAR("`u",                     2,      "u",            1,      "&#249;",       6)
                    223: CHAR("~A",                     2,      "A",            1,      "&#195;",       6)
                    224: CHAR("~N",                     2,      "N",            1,      "&#209;",       6)
                    225: CHAR("~O",                     2,      "O",            1,      "&#213;",       6)
                    226: CHAR("~a",                     2,      "a",            1,      "&#227;",       6)
                    227: CHAR("~n",                     2,      "n",            1,      "&#241;",       6)
                    228: CHAR("~o",                     2,      "o",            1,      "&#245;",       6)
                    229:
1.17      kristaps  230: /* Arrows and lines. */
1.14      kristaps  231: CHAR("<-",                     2,      "<-",           2,      "&#8592;",      7)
1.11      kristaps  232: CHAR("->",                     2,      "->",           2,      "&#8594;",      7)
                    233: CHAR("<>",                     2,      "<>",           2,      "&#8596;",      7)
1.14      kristaps  234: CHAR("da",                     2,      "v",            1,      "&#8595;",      7)
                    235: BOTH("ua",                     2,      "^",            1,      "&#8593;",      7)
                    236: BOTH("va",                     2,      "^v",           2,      "&#8597;",      7)
                    237: CHAR("lA",                     2,      "<=",           2,      "&#8656;",      7)
                    238: CHAR("rA",                     2,      "=>",           2,      "&#8658;",      7)
                    239: CHAR("hA",                     2,      "<=>",          3,      "&#8660;",      7)
                    240: CHAR("dA",                     2,      "v",            1,      "&#8659;",      7)
                    241: CHAR("uA",                     2,      "^",            1,      "&#8657;",      7)
                    242: CHAR("vA",                     2,      "^=v",          3,      "&#8661;",      7)
1.11      kristaps  243:
                    244: /* Logic. */
                    245: CHAR("AN",                     2,      "^",            1,      "&#8743;",      7)
                    246: CHAR("OR",                     2,      "v",            1,      "&#8744;",      7)
                    247: CHAR("no",                     2,      "~",            1,      "&#172;",       6)
                    248: CHAR("tno",                    3,      "~",            1,      "&#172;",       6)
                    249: CHAR("te",                     2,      "3",            1,      "&#8707;",      7)
                    250: CHAR("fa",                     2,      "V",            1,      "&#8704;",      7)
                    251: CHAR("st",                     2,      "-)",           2,      "&#8715;",      7)
                    252: CHAR("tf",                     2,      ".:.",          3,      "&#8756;",      7)
                    253: CHAR("3d",                     2,      ".:.",          3,      "&#8756;",      7)
                    254: CHAR("or",                     2,      "|",            1,      "|",            1)
                    255:
                    256: /* Mathematicals. */
                    257: CHAR("pl",                     2,      "+",            1,      "&#43;",        5)
                    258: CHAR("mi",                     2,      "-",            1,      "&#8722;",      7)
1.17      kristaps  259: CHAR("-",                      1,      "-",            1,      "-",            1)
1.11      kristaps  260: CHAR("-+",                     2,      "-+",           2,      "&#8723;",      7)
                    261: CHAR("+-",                     2,      "+-",           2,      "&#177;",       6)
                    262: CHAR("t+-",                    3,      "+-",           2,      "&#177;",       6)
                    263: CHAR("pc",                     2,      ".",            1,      "&#183;",       6)
                    264: CHAR("md",                     2,      ".",            1,      "&#8901;",      7)
                    265: CHAR("mu",                     2,      "x",            1,      "&#215;",       6)
                    266: CHAR("tmu",                    3,      "x",            1,      "&#215;",       6)
                    267: CHAR("c*",                     2,      "x",            1,      "&#8855;",      7)
                    268: CHAR("c+",                     2,      "+",            1,      "&#8853;",      7)
                    269: CHAR("di",                     2,      "-:-",          3,      "&#247;",       6)
                    270: CHAR("tdi",                    3,      "-:-",          3,      "&#247;",       6)
                    271: CHAR("f/",                     2,      "/",            1,      "&#8260;",      7)
                    272: CHAR("**",                     2,      "*",            1,      "&#8727;",      7)
                    273: BOTH("<=",                     2,      "<=",           2,      "&#8804;",      7)
                    274: BOTH(">=",                     2,      ">=",           2,      "&#8805;",      7)
                    275: CHAR("<<",                     2,      "<<",           2,      "&#8810;",      7)
                    276: CHAR(">>",                     2,      ">>",           2,      "&#8811;",      7)
                    277: CHAR("eq",                     2,      "=",            1,      "&#61;",        5)
                    278: CHAR("!=",                     2,      "!=",           2,      "&#8800;",      7)
                    279: CHAR("==",                     2,      "==",           2,      "&#8801;",      7)
                    280: CHAR("ne",                     2,      "!==",          3,      "&#8802;",      7)
                    281: CHAR("=~",                     2,      "=~",           2,      "&#8773;",      7)
                    282: CHAR("-~",                     2,      "-~",           2,      "&#8771;",      7)
                    283: CHAR("ap",                     2,      "~",            1,      "&#8764;",      7)
                    284: CHAR("~~",                     2,      "~~",           2,      "&#8776;",      7)
                    285: CHAR("~=",                     2,      "~=",           2,      "&#8780;",      7)
                    286: CHAR("pt",                     2,      "oc",           2,      "&#8733;",      7)
                    287: CHAR("es",                     2,      "{}",           2,      "&#8709;",      7)
                    288: CHAR("mo",                     2,      "E",            1,      "&#8712;",      7)
                    289: CHAR("nm",                     2,      "!E",           2,      "&#8713;",      7)
                    290: CHAR("sb",                     2,      "(=",           2,      "&#8834;",      7)
                    291: CHAR("nb",                     2,      "(!=",          3,      "&#8836;",      7)
                    292: CHAR("sp",                     2,      "=)",           2,      "&#8835;",      7)
                    293: CHAR("nc",                     2,      "!=)",          3,      "&#8837;",      7)
                    294: CHAR("ib",                     2,      "(=",           2,      "&#8838;",      7)
                    295: CHAR("ip",                     2,      "=)",           2,      "&#8839;",      7)
                    296: CHAR("ca",                     2,      "(^)",          3,      "&#8745;",      7)
                    297: CHAR("cu",                     2,      "U",            1,      "&#8746;",      7)
                    298: CHAR("/_",                     2,      "/_",           2,      "&#8736;",      7)
                    299: CHAR("pp",                     2,      "_|_",          3,      "&#8869;",      7)
                    300: CHAR("is",                     2,      "I",            1,      "&#8747;",      7)
                    301: CHAR("integral",               8,      "I",            1,      "&#8747;",      7)
                    302: CHAR("sum",                    3,      "E",            1,      "&#8721;",      7)
                    303: CHAR("product",                        7,      "TT",           2,      "&#8719;",      7)
                    304: CHAR("coproduct",              9,      "U",            1,      "&#8720;",      7)
                    305: CHAR("gr",                     2,      "V",            1,      "&#8711;",      7)
                    306: CHAR("sr",                     2,      "\\/",          2,      "&#8730;",      7)
                    307: CHAR("sqrt",                   4,      "\\/",          2,      "&#8730;",      7)
                    308: CHAR("lc",                     2,      "|~",           2,      "&#8968;",      7)
                    309: CHAR("rc",                     2,      "~|",           2,      "&#8969;",      7)
                    310: CHAR("lf",                     2,      "|_",           2,      "&#8970;",      7)
                    311: CHAR("rf",                     2,      "_|",           2,      "&#8971;",      7)
                    312: CHAR("if",                     2,      "oo",           2,      "&#8734;",      7)
                    313: CHAR("Ah",                     2,      "N",            1,      "&#8501;",      7)
                    314: CHAR("Im",                     2,      "I",            1,      "&#8465;",      7)
                    315: CHAR("Re",                     2,      "R",            1,      "&#8476;",      7)
                    316: CHAR("pd",                     2,      "a",            1,      "&#8706;",      7)
                    317: CHAR("-h",                     2,      "/h",           2,      "&#8463;",      7)
                    318:
1.15      kristaps  319: /* Ligatures. */
                    320: CHAR("ff",                     2,      "ff",           2,      "&#64256;",     8)
                    321: CHAR("fi",                     2,      "fi",           2,      "&#64257;",     8)
                    322: CHAR("fl",                     2,      "fl",           2,      "&#64258;",     8)
                    323: CHAR("Fi",                     2,      "ffi",          3,      "&#64259;",     8)
                    324: CHAR("Fl",                     2,      "ffl",          3,      "&#64260;",     8)
1.21      kristaps  325: BOTH("AE",                     2,      "AE",           2,      "&#198;",       6)
                    326: BOTH("ae",                     2,      "ae",           2,      "&#230;",       6)
1.15      kristaps  327: CHAR("OE",                     2,      "OE",           2,      "&#338;",       6)
                    328: CHAR("oe",                     2,      "oe",           2,      "&#339;",       6)
                    329: CHAR("ss",                     2,      "ss",           2,      "&#223;",       6)
                    330: CHAR("IJ",                     2,      "IJ",           2,      "&#306;",       6)
                    331: CHAR("ij",                     2,      "ij",           2,      "&#307;",       6)
                    332:
                    333: /* Special letters. */
                    334: CHAR("-D",                     2,      "D",            1,      "&#208;",       6)
                    335: CHAR("Sd",                     2,      "o",            1,      "&#240;",       6)
                    336: CHAR("TP",                     2,      "b",            1,      "&#222;",       6)
                    337: CHAR("Tp",                     2,      "b",            1,      "&#254;",       6)
                    338: CHAR(".i",                     2,      "i",            1,      "&#305;",       6)
                    339: CHAR(".j",                     2,      "j",            1,      "&#567;",       6)
1.16      kristaps  340:
                    341: /* Currency. */
                    342: CHAR("Do",                     2,      "$",            1,      "$",            1)
                    343: CHAR("ct",                     2,      "c",            1,      "&#162;",       6)
                    344: CHAR("Eu",                     2,      "EUR",          3,      "&#8364;",      7)
                    345: CHAR("eu",                     2,      "EUR",          3,      "&#8364;",      7)
                    346: CHAR("Ye",                     2,      "Y",            1,      "&#165;",       6)
                    347: CHAR("Po",                     2,      "L",            1,      "&#163;",       6)
                    348: CHAR("Cs",                     2,      "x",            1,      "&#164;",       6)
                    349: CHAR("Fn",                     2,      "f",            1,      "&#402;",       6)
1.21      kristaps  350:
                    351: /* pod2man holdovers. */
                    352: STRING("--",                   2,      "--",           2,      "&#8212;",      7)
                    353: STRING("PI",                   2,      "pi",           2,      "&#960;",       6)
                    354: STRING("L\"",                  2,      "``",           2,      "&#8220;",      7)
                    355: STRING("R\"",                  2,      "\'\'",         2,      "&#8221;",      7)
                    356: STRING("C+",                   2,      "C++",          3,      "C++",          3)
                    357: STRING("C`",                   2,      "`",            1,      "&#8216;",      7)
                    358: STRING("C\'",                  2,      "\'",           1,      "&#8217;",      7)
                    359: STRING("Aq",                   2,      "\'",           1,      "\'",           1)
                    360: STRING("^",                    1,      "^",            1,      "^",            1)
                    361: STRING(",",                    1,      ",",            1,      ",",            1)
                    362: STRING("~",                    1,      "~",            1,      "~",            1)
                    363: STRING("/",                    1,      "/",            1,      "/",            1)
                    364: STRING(":",                    1,      "\"",           1,      "&#776;",       6)
                    365: STRING("8",                    1,      "B",            1,      "&#946;",       6)
                    366: STRING("o",                    1,      "o",            1,      "&#176;",       6)
                    367: STRING("D-",                   2,      "D",            1,      "&#208;",       6)
                    368: STRING("d-",                   2,      "o",            1,      "&#240;",       6)
1.22      kristaps  369: STRING("Th",                   2,      "b",            1,      "&#222;",       6)
1.21      kristaps  370: STRING("th",                   2,      "b",            1,      "&#254;",       6)
1.17      kristaps  371:
                    372: /* Old style. */
                    373: STRING("Am",                   2,      "&",            1,      "&amp;",        5)
                    374: STRING("Ba",                   2,      "|",            1,      "|",            1)
                    375: STRING("Ge",                   2,      ">=",           2,      "&#8805;",      7)
                    376: STRING("Gt",                   2,      ">",            1,      "&gt;",         4)
                    377: STRING("If",                   2,      "infinity",     8,      "infinity",     8)
                    378: STRING("Le",                   2,      "<=",           2,      "&#8804;",      7)
                    379: STRING("Lq",                   2,      "``",           2,      "&#8220;",      7)
                    380: STRING("Lt",                   2,      "<",            1,      "&lt;",         4)
                    381: STRING("Na",                   2,      "NaN",          3,      "NaN",          3)
                    382: STRING("Ne",                   2,      "!=",           2,      "&#8800;",      7)
                    383: STRING("Pi",                   2,      "pi",           2,      "&#960;",       6)
                    384: STRING("Pm",                   2,      "+-",           2,      "&#177;",       6)
                    385: STRING("R",                    1,      "(R)",          3,      "&#174;",       6)
                    386: STRING("Rq",                   2,      "\'\'",         2,      "&#8221;",      7)
                    387: STRING("Tm",                   2,      "tm",           2,      "&#8482;",      7)
                    388: STRING("left-bracket",         12,     "[",            1,      "[",            1)
                    389: STRING("left-parenthesis",     16,     "(",            1,      "(",            1)
                    390: STRING("left-singlequote",     16,     "`",            1,      "&#8216;",      7)
                    391: STRING("lp",                   2,      "(",            1,      "(",            1)
                    392: STRING("q",                    1,      "\"",           1,      "&quot;",       6)
                    393: STRING("quote-left",           10,     "`",            1,      "&#8216;",      7)
                    394: STRING("quote-right",          11,     "\'",           1,      "&#8217;",      7)
                    395: STRING("right-bracket",                13,     "]",            1,      "]",            1)
                    396: STRING("right-parenthesis",    17,     ")",            1,      ")",            1)
                    397: STRING("right-singlequote",    17,     "\'",           1,      "&#8217;",      7)
                    398: STRING("rp",                   2,      ")",            1,      ")",            1)
                    399:
                    400: /* Lines. */
                    401: CHAR("ba",                     2,      "|",            1,      "&#124;",       6)
                    402: CHAR("br",                     2,      "|",            1,      "&#9474;",      7)
                    403: CHAR("ul",                     2,      "_",            1,      "&#95;",        5)
                    404: CHAR("rl",                     2,      "-",            1,      "&#8254;",      7)
                    405: CHAR("bb",                     2,      "|",            1,      "&#166;",       6)
                    406: CHAR("sl",                     2,      "/",            1,      "&#47;",        5)
                    407: CHAR("rs",                     2,      "\\",           1,      "&#92;",        5)
                    408:
                    409: /* Text markers. */
                    410: CHAR("ci",                     2,      "o",            1,      "&#9675;",      7)
                    411: CHAR("bu",                     2,      "o",            1,      "&#8226;",      7)
                    412: CHAR("dd",                     2,      "=",            1,      "&#8225;",      7)
                    413: CHAR("dg",                     2,      "-",            1,      "&#8224;",      7)
                    414: CHAR("lz",                     2,      "<>",           2,      "&#9674;",      7)
                    415: CHAR("sq",                     2,      "[]",           2,      "&#9633;",      7)
                    416: CHAR("ps",                     2,      "9|",           2,      "&#182;",       6)
                    417: CHAR("sc",                     2,      "S",            1,      "&#167;",       6)
                    418: CHAR("lh",                     2,      "<=",           2,      "&#9756;",      7)
                    419: CHAR("rh",                     2,      "=>",           2,      "&#9758;",      7)
                    420: CHAR("at",                     2,      "@",            1,      "&#64;",        5)
                    421: CHAR("sh",                     2,      "#",            1,      "&#35;",        5)
                    422: CHAR("CR",                     2,      "_|",           2,      "&#8629;",      7)
                    423: CHAR("OK",                     2,      "\\/",          2,      "&#10003;",     8)
                    424:
                    425: /* Legal symbols. */
                    426: CHAR("co",                     2,      "(C)",          3,      "&#169;",       6)
                    427: CHAR("rg",                     2,      "(R)",          3,      "&#174;",       6)
                    428: CHAR("tm",                     2,      "tm",           2,      "&#8482;",      7)
                    429:
                    430: /* Punctuation. */
                    431: CHAR(".",                      1,      ".",            1,      ".",            1)
                    432: CHAR("r!",                     2,      "i",            1,      "&#161;",       6)
                    433: CHAR("r?",                     2,      "c",            1,      "&#191;",       6)
                    434: CHAR("em",                     2,      "--",           2,      "&#8212;",      7)
                    435: CHAR("en",                     2,      "-",            1,      "&#8211;",      7)
                    436: CHAR("hy",                     2,      "-",            1,      "&#8208;",      7)
                    437: CHAR("e",                      1,      "\\",           1,      "\\",           1)
                    438:
                    439: /* Units. */
                    440: CHAR("de",                     2,      "o",            1,      "&#176;",       6)
                    441: CHAR("%0",                     2,      "%o",           2,      "&#8240;",      7)
                    442: CHAR("fm",                     2,      "\'",           1,      "&#8242;",      7)
                    443: CHAR("sd",                     2,      "\"",           1,      "&#8243;",      7)
                    444: CHAR("mc",                     2,      "mu",           2,      "&#181;",       6)
1.19      kristaps  445:
                    446: CHAR_TBL_END

CVSweb