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