-/* $Id: chars.in,v 1.13 2009/09/23 00:03:45 kristaps Exp $ */
+/* $Id: chars.in,v 1.22 2010/03/30 19:20:33 kristaps Exp $ */
/*
* Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
*
* XXX - update LINES_MAX if adding more!
*/
-STRING("Am", 2, "&", 1, "&", 5)
-STRING("Ba", 2, "|", 1, "|", 0)
-STRING("Ge", 2, ">=", 2, "≥", 7)
-STRING("Gt", 2, ">", 1, ">", 4)
-STRING("If", 2, "infinity", 8, "infinity", 8)
-STRING("Le", 2, "<=", 2, "≤", 7)
-STRING("Lq", 2, "``", 2, "“", 7)
-STRING("Lt", 2, "<", 1, "<", 4)
-STRING("Na", 2, "NaN", 3, "NaN", 3)
-STRING("Ne", 2, "!=", 2, "≠", 7)
-STRING("Pi", 2, "pi", 2, "π", 6)
-STRING("Pm", 2, "+-", 2, "±", 6)
-STRING("R", 1, "(R)", 3, "®", 6)
-STRING("Rq", 2, "\'\'", 2, "”", 7)
-STRING("Tm", 2, "tm", 2, "™", 7)
-STRING("left-bracket", 12, "[", 1, "[", 1)
-STRING("left-parenthesis", 16, "(", 1, "(", 1)
-STRING("left-singlequote", 16, "`", 1, "‘", 7)
-STRING("lp", 2, "(", 1, "(", 1)
-STRING("q", 1, "\"", 1, """, 6)
-STRING("quote-left", 10, "`", 1, "‘", 7)
-STRING("quote-right", 11, "\'", 1, "’", 7)
-STRING("right-bracket", 13, "]", 1, "]", 1)
-STRING("right-parenthesis", 17, ")", 1, ")", 1)
-STRING("right-singlequote", 17, "\'", 1, "’", 7)
-STRING("rp", 2, ")", 1, ")", 1)
+/* Non-breaking, non-collapsing space uses unit separator. */
+static const char ascii_nbrsp[2] = { 31, 0 };
+
+CHAR_TBL_START
+
+/* Spacing. */
+CHAR("c", 1, "", 0, "", 0)
+CHAR("0", 1, " ", 1, " ", 7)
+CHAR(" ", 1, " ", 1, " ", 7)
+CHAR("~", 1, ascii_nbrsp, 1, " ", 6)
+CHAR("%", 1, "", 0, "", 0)
+CHAR("&", 1, "", 0, "", 0)
+CHAR("^", 1, "", 0, "", 0)
+CHAR("|", 1, "", 0, "", 0)
/* Accents. */
CHAR("a\"", 2, "\"", 1, "̋", 6)
CHAR("a-", 2, "-", 1, "¯", 6)
CHAR("a.", 2, ".", 1, "˙", 6)
CHAR("a^", 2, "^", 1, "̂", 6)
+BOTH("\'", 1, "\'", 1, "́", 6)
BOTH("aa", 2, "\'", 1, "́", 6)
BOTH("ga", 2, "`", 1, "̀", 6)
+BOTH("`", 1, "`", 1, "̀", 6)
CHAR("ab", 2, "`", 1, "̆", 6)
CHAR("ac", 2, ",", 1, "̧", 6)
CHAR("ad", 2, "\"", 1, "̈", 6)
CHAR("fo", 2, "<", 1, "‹", 7)
CHAR("fc", 2, ">", 1, "›", 7)
-
-BOTH("ua", 2, "^", 1, "", 0)
-
-/* Punctuation. */
-CHAR("-", 1, "-", 1, "-", 1)
-CHAR(".", 1, ".", 1, ".", 1)
-
-/* White-space. */
-CHAR("0", 1, " ", 1, " ", 6)
-CHAR(" ", 1, " ", 1, " ", 6)
-CHAR("%", 1, "", 0, "", 0)
-CHAR("&", 1, "", 0, "", 0)
+/* Brackets. */
+CHAR("lB", 2, "[", 1, "[", 1)
+CHAR("rB", 2, "]", 1, "]", 1)
+CHAR("lC", 2, "{", 1, "{", 1)
+CHAR("rC", 2, "}", 1, "}", 1)
+CHAR("la", 2, "<", 1, "⟨", 8)
+CHAR("ra", 2, ">", 1, "⟩", 8)
+CHAR("bv", 2, "|", 1, "⎪", 7)
+CHAR("braceex", 7, "|", 1, "⎪", 7)
+CHAR("bracketlefttp", 13, "|", 1, "⎡", 7)
+CHAR("bracketleftbp", 13, "|", 1, "⎣", 7)
+CHAR("bracketleftex", 13, "|", 1, "⎢", 7)
+CHAR("bracketrighttp", 14, "|", 1, "⎤", 7)
+CHAR("bracketrightbp", 14, "|", 1, "⎦", 7)
+CHAR("bracketrightex", 14, "|", 1, "⎥", 7)
+CHAR("lt", 2, ",-", 2, "⎧", 7)
+CHAR("bracelefttp", 11, ",-", 2, "⎧", 7)
+CHAR("lk", 2, "{", 1, "⎨", 7)
+CHAR("braceleftmid", 12, "{", 1, "⎨", 7)
+CHAR("lb", 2, ",-", 2, "⎩", 7)
+CHAR("braceleftbp", 11, "`-", 2, "⎩", 7)
+CHAR("braceleftex", 11, "|", 1, "⎪", 7)
+CHAR("rt", 2, "-.", 2, "⎫", 7)
+CHAR("bracerighttp", 12, "-.", 2, "⎫", 7)
+CHAR("rk", 2, "}", 1, "⎬", 7)
+CHAR("bracerightmid", 13, "}", 1, "⎬", 7)
+CHAR("rb", 2, "-\'", 2, "⎭", 7)
+CHAR("bracerightbp", 12, "-\'", 2, "⎭", 7)
+CHAR("bracerightex", 12, "|", 1, "⎪", 7)
+CHAR("parenlefttp", 11, "/", 1, "⎛", 7)
+CHAR("parenleftbp", 11, "\\", 1, "⎝", 7)
+CHAR("parenleftex", 11, "|", 1, "⎜", 7)
+CHAR("parenrighttp", 12, "\\", 1, "⎞", 7)
+CHAR("parenrightbp", 12, "/", 1, "⎠", 7)
+CHAR("parenrightex", 12, "|", 1, "⎟", 7)
/* Greek characters. */
CHAR("*A", 2, "A", 1, "Α", 6)
CHAR("+e", 2, "e", 1, "ϵ", 7)
CHAR("ts", 2, "s", 1, "ς", 6)
-/* Accented characters. */
+/* Accented letters. */
CHAR(",C", 2, "C", 1, "Ç", 6)
CHAR(",c", 2, "c", 1, "ç", 6)
-CHAR("-D", 2, "D", 1, "Ð", 6)
CHAR("/L", 2, "L", 1, "Ł", 6)
CHAR("/O", 2, "O", 1, "Ø", 6)
CHAR("/l", 2, "l", 1, "ł", 6)
CHAR("/o", 2, "o", 1, "ø", 6)
+CHAR("oA", 2, "A", 1, "Å", 6)
+CHAR("oa", 2, "a", 1, "å", 6)
CHAR(":A", 2, "A", 1, "Ä", 6)
CHAR(":E", 2, "E", 1, "Ë", 6)
CHAR(":I", 2, "I", 1, "Ï", 6)
CHAR("~n", 2, "n", 1, "ñ", 6)
CHAR("~o", 2, "o", 1, "õ", 6)
-CHAR("~", 1, " ", 1, "", 0)
-
-/* Arrows. */
-CHAR("->", 2, "->", 2, "→", 7)
+/* Arrows and lines. */
CHAR("<-", 2, "<-", 2, "←", 7)
+CHAR("->", 2, "->", 2, "→", 7)
CHAR("<>", 2, "<>", 2, "↔", 7)
+CHAR("da", 2, "v", 1, "↓", 7)
+BOTH("ua", 2, "^", 1, "↑", 7)
+BOTH("va", 2, "^v", 2, "↕", 7)
+CHAR("lA", 2, "<=", 2, "⇐", 7)
+CHAR("rA", 2, "=>", 2, "⇒", 7)
+CHAR("hA", 2, "<=>", 3, "⇔", 7)
+CHAR("dA", 2, "v", 1, "⇓", 7)
+CHAR("uA", 2, "^", 1, "⇑", 7)
+CHAR("vA", 2, "^=v", 3, "⇕", 7)
/* Logic. */
CHAR("AN", 2, "^", 1, "∧", 7)
/* Mathematicals. */
CHAR("pl", 2, "+", 1, "+", 5)
CHAR("mi", 2, "-", 1, "−", 7)
+CHAR("-", 1, "-", 1, "-", 1)
CHAR("-+", 2, "-+", 2, "∓", 7)
CHAR("+-", 2, "+-", 2, "±", 6)
CHAR("t+-", 3, "+-", 2, "±", 6)
CHAR("pd", 2, "a", 1, "∂", 7)
CHAR("-h", 2, "/h", 2, "ℏ", 7)
-CHAR("AE", 2, "AE", 2, "Æ", 6)
-CHAR("Cs", 2, "x", 1, "", 0)
-CHAR("Do", 2, "$", 1, "", 0)
-CHAR("Eu", 2, "EUR", 3, "", 0)
-CHAR("Fi", 2, "ffi", 3, "", 0)
-CHAR("Fl", 2, "ffl", 3, "", 0)
-CHAR("Fn", 2, "f", 1, "", 0)
-CHAR("OE", 2, "OE", 2, "", 0)
-CHAR("Po", 2, "L", 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("\\", 1, "\\", 1, "\\", 1)
-CHAR("^", 1, "", 0, "", 0)
-CHAR("`", 1, "`", 1, "", 0)
-CHAR("aa", 2, "\'", 1, "", 0)
-CHAR("ae", 2, "ae", 2, "", 0)
-CHAR("ba", 2, "|", 1, "", 0)
-CHAR("bb", 2, "|", 1, "", 0)
+/* Ligatures. */
+CHAR("ff", 2, "ff", 2, "ff", 8)
+CHAR("fi", 2, "fi", 2, "fi", 8)
+CHAR("fl", 2, "fl", 2, "fl", 8)
+CHAR("Fi", 2, "ffi", 3, "ffi", 8)
+CHAR("Fl", 2, "ffl", 3, "ffl", 8)
+BOTH("AE", 2, "AE", 2, "Æ", 6)
+BOTH("ae", 2, "ae", 2, "æ", 6)
+CHAR("OE", 2, "OE", 2, "Œ", 6)
+CHAR("oe", 2, "oe", 2, "œ", 6)
+CHAR("ss", 2, "ss", 2, "ß", 6)
+CHAR("IJ", 2, "IJ", 2, "IJ", 6)
+CHAR("ij", 2, "ij", 2, "ij", 6)
+
+/* Special letters. */
+CHAR("-D", 2, "D", 1, "Ð", 6)
+CHAR("Sd", 2, "o", 1, "ð", 6)
+CHAR("TP", 2, "b", 1, "Þ", 6)
+CHAR("Tp", 2, "b", 1, "þ", 6)
+CHAR(".i", 2, "i", 1, "ı", 6)
+CHAR(".j", 2, "j", 1, "ȷ", 6)
+
+/* Currency. */
+CHAR("Do", 2, "$", 1, "$", 1)
+CHAR("ct", 2, "c", 1, "¢", 6)
+CHAR("Eu", 2, "EUR", 3, "€", 7)
+CHAR("eu", 2, "EUR", 3, "€", 7)
+CHAR("Ye", 2, "Y", 1, "¥", 6)
+CHAR("Po", 2, "L", 1, "£", 6)
+CHAR("Cs", 2, "x", 1, "¤", 6)
+CHAR("Fn", 2, "f", 1, "ƒ", 6)
+
+/* pod2man holdovers. */
+STRING("--", 2, "--", 2, "—", 7)
+STRING("PI", 2, "pi", 2, "π", 6)
+STRING("L\"", 2, "``", 2, "“", 7)
+STRING("R\"", 2, "\'\'", 2, "”", 7)
+STRING("C+", 2, "C++", 3, "C++", 3)
+STRING("C`", 2, "`", 1, "‘", 7)
+STRING("C\'", 2, "\'", 1, "’", 7)
+STRING("Aq", 2, "\'", 1, "\'", 1)
+STRING("^", 1, "^", 1, "^", 1)
+STRING(",", 1, ",", 1, ",", 1)
+STRING("~", 1, "~", 1, "~", 1)
+STRING("/", 1, "/", 1, "/", 1)
+STRING(":", 1, "\"", 1, "̈", 6)
+STRING("8", 1, "B", 1, "β", 6)
+STRING("o", 1, "o", 1, "°", 6)
+STRING("D-", 2, "D", 1, "Ð", 6)
+STRING("d-", 2, "o", 1, "ð", 6)
+STRING("Th", 2, "b", 1, "Þ", 6)
+STRING("th", 2, "b", 1, "þ", 6)
+
+/* Old style. */
+STRING("Am", 2, "&", 1, "&", 5)
+STRING("Ba", 2, "|", 1, "|", 1)
+STRING("Ge", 2, ">=", 2, "≥", 7)
+STRING("Gt", 2, ">", 1, ">", 4)
+STRING("If", 2, "infinity", 8, "infinity", 8)
+STRING("Le", 2, "<=", 2, "≤", 7)
+STRING("Lq", 2, "``", 2, "“", 7)
+STRING("Lt", 2, "<", 1, "<", 4)
+STRING("Na", 2, "NaN", 3, "NaN", 3)
+STRING("Ne", 2, "!=", 2, "≠", 7)
+STRING("Pi", 2, "pi", 2, "π", 6)
+STRING("Pm", 2, "+-", 2, "±", 6)
+STRING("R", 1, "(R)", 3, "®", 6)
+STRING("Rq", 2, "\'\'", 2, "”", 7)
+STRING("Tm", 2, "tm", 2, "™", 7)
+STRING("left-bracket", 12, "[", 1, "[", 1)
+STRING("left-parenthesis", 16, "(", 1, "(", 1)
+STRING("left-singlequote", 16, "`", 1, "‘", 7)
+STRING("lp", 2, "(", 1, "(", 1)
+STRING("q", 1, "\"", 1, """, 6)
+STRING("quote-left", 10, "`", 1, "‘", 7)
+STRING("quote-right", 11, "\'", 1, "’", 7)
+STRING("right-bracket", 13, "]", 1, "]", 1)
+STRING("right-parenthesis", 17, ")", 1, ")", 1)
+STRING("right-singlequote", 17, "\'", 1, "’", 7)
+STRING("rp", 2, ")", 1, ")", 1)
+
+/* Lines. */
+CHAR("ba", 2, "|", 1, "|", 6)
+CHAR("br", 2, "|", 1, "│", 7)
+CHAR("ul", 2, "_", 1, "_", 5)
+CHAR("rl", 2, "-", 1, "‾", 7)
+CHAR("bb", 2, "|", 1, "¦", 6)
+CHAR("sl", 2, "/", 1, "/", 5)
+CHAR("rs", 2, "\\", 1, "\", 5)
+
+/* Text markers. */
+CHAR("ci", 2, "o", 1, "○", 7)
CHAR("bu", 2, "o", 1, "•", 7)
-CHAR("c", 1, "", 0, "", 0)
-CHAR("ci", 2, "O", 1, "", 0)
-CHAR("co", 2, "(C)", 3, "", 0)
-CHAR("ct", 2, "c", 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("e", 1, "\\", 1, "\\", 1)
+CHAR("dd", 2, "=", 1, "‡", 7)
+CHAR("dg", 2, "-", 1, "†", 7)
+CHAR("lz", 2, "<>", 2, "◊", 7)
+CHAR("sq", 2, "[]", 2, "□", 7)
+CHAR("ps", 2, "9|", 2, "¶", 6)
+CHAR("sc", 2, "S", 1, "§", 6)
+CHAR("lh", 2, "<=", 2, "☜", 7)
+CHAR("rh", 2, "=>", 2, "☞", 7)
+CHAR("at", 2, "@", 1, "@", 5)
+CHAR("sh", 2, "#", 1, "#", 5)
+CHAR("CR", 2, "_|", 2, "↵", 7)
+CHAR("OK", 2, "\\/", 2, "✓", 8)
+
+/* Legal symbols. */
+CHAR("co", 2, "(C)", 3, "©", 6)
+CHAR("rg", 2, "(R)", 3, "®", 6)
+CHAR("tm", 2, "tm", 2, "™", 7)
+
+/* Punctuation. */
+CHAR(".", 1, ".", 1, ".", 1)
+CHAR("r!", 2, "i", 1, "¡", 6)
+CHAR("r?", 2, "c", 1, "¿", 6)
CHAR("em", 2, "--", 2, "—", 7)
CHAR("en", 2, "-", 1, "–", 7)
-CHAR("eu", 2, "EUR", 3, "", 0)
-CHAR("ff", 2, "ff", 2, "", 0)
-CHAR("fi", 2, "fi", 2, "", 0)
-CHAR("fl", 2, "fl", 2, "", 0)
-CHAR("hA", 2, "<=>", 3, "", 0)
-CHAR("hy", 2, "-", 1, "", 0)
-CHAR("lA", 2, "<=", 2, "", 0)
-CHAR("lB", 2, "[", 1, "[", 1)
-CHAR("lC", 2, "{", 1, "{", 1)
-CHAR("la", 2, "<", 1, "<", 4)
-CHAR("lh", 2, "<=", 2, "", 0)
-CHAR("oA", 2, "A", 1, "", 0)
-CHAR("oa", 2, "a", 1, "", 0)
-CHAR("oe", 2, "oe", 2, "", 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, "}", 1)
-CHAR("ra", 2, ">", 1, ">", 4)
-CHAR("rg", 2, "(R)", 3, "", 0)
-CHAR("rh", 2, "=>", 2, "", 0)
-CHAR("sc", 2, "S", 1, "", 0)
-CHAR("ss", 2, "ss", 2, "", 0)
-CHAR("tm", 2, "tm", 2, "", 0)
-CHAR("uA", 2, "^", 1, "", 0)
-CHAR("ua", 2, "^", 1, "", 0)
-CHAR("|", 1, "", 0, "", 0)
+CHAR("hy", 2, "-", 1, "‐", 7)
+CHAR("e", 1, "\\", 1, "\\", 1)
+
+/* Units. */
+CHAR("de", 2, "o", 1, "°", 6)
+CHAR("%0", 2, "%o", 2, "‰", 7)
+CHAR("fm", 2, "\'", 1, "′", 7)
+CHAR("sd", 2, "\"", 1, "″", 7)
+CHAR("mc", 2, "mu", 2, "µ", 6)
+
+CHAR_TBL_END