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