# mds — A micro-display server
# Copyright © 2014 Mattias Andrée (maandree@member.fsf.org)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# Based on the Unicode Character Database 7.0
macro dead_ascii/1
[" " ] : "\1"
"\1" :
end macro
macro dead_ascii/2
[" " "\2" ] : "\1"
["\1" "\2"] :
end macro
macro composite/3
"\1" : "\3"
"\1" ["\2" ] : "\3"
end macro
macro composite/4
"\1" : "\4"
"\1" ["\2" "\3"] : "\4"
end macro
"u" "+" :
"U" "+" :
# TODO C0 Controls
# Basic Latin:
dead_ascii("^")
dead_ascii("`")
dead_ascii("~")
# TODO C1 Controls
# Latin-1 Supplement:
"!" "!" : "¡"
("/" "c") : "¢"
("|" ["c" "L"]) : "¢"
("-" ["l" "L"]) : "£"
(["o" "O"] ["x" "X"]) : "¤"
(["-" "="] ["y" "Y"]) : "¥"
("!" "|") : "¦"
(["o" "O"] ["s" "S"]) : "§"
dead_ascii("¨" "\"")
(["o" "O"] ["c" "C"]) : "©"
( ) "_" "a" : "ª"
"<" "<" : "«"
("-" ",") : "¬"
"-" "-" : ""
(["o" "O"] ["r" "R"]) : "®"
"-" :
"o" :
dead_ascii("°")
"+" "-" : "±"
"2" : "²"
"3" : "³"
dead_ascii("´" "'")
"m" "u" : "µ"
["p" "P"] ["p" "P" "!"] : "¶"
"!" ["p" "P"] : "¶"
"." "-" : "·"
dead_ascii("," ",")
"1" : "¹"
( ) "_" "o" : "º"
">" ">" : "»"
"1" "4" : "¼"
"1" "2" : "½"
"3" "4" : "¾"
"?" "?" : "¿"
composite("`" "A" "À")
composite("´" "'" "A" "Á")
composite("~" "A" "Ã")
composite("¨" "\"" "A" "Ä")
"A" : "Å"
"A" "E" : "Æ"
composite("¸" "," "C" "Ç")
composite("`" "E" "È")
composite("´" "'" "E" "É")
composite("^" "E" "Ê")
composite("¨" "\"" "E" "Ë")
composite("`" "I" "Ì")
composite("´" "'" "I" "Í")
composite("^" "I" "Î")
composite("¨" "\"" "I" "Ï")
"-" :
composite("-" "D" "Đ")
"/" :
composite("/" "D" "Đ")
composite("~" "N" "Ñ")
composite("`" "O" "Ò")
composite("´" "'" "O" "Ó")
composite("^" "O" "Ô")
composite("~" "O" "Õ")
composite("¨" "\"" "O" "Ö")
"x" "x" : "×"
composite("/" "O" "Ø")
composite("`" "U" "Ù")
composite("´" "'" "U" "Ú")
composite("^" "U" "Û")
composite("¨" "\"" "U" "Ü")
composite("´" "'" "Y" "Ý")
"T" "H" : "Þ"
"s" "s" : "ß"
"ſ" "s" : "ß"
composite("`" "a" "à")
composite("´" "'" "a" "á")
composite("~" "a" "ã")
composite("¨" "\"" "a" "ä")
"a" : "å"
"a" "e" : "æ"
composite("¸" "," "c" "ç")
composite("`" "e" "è")
composite("´" "'" "e" "é")
composite("^" "e" "ê")
composite("¨" "\"" "e" "ë")
composite("`" "i" "ì")
composite("´" "'" "i" "í")
composite("^" "i" "î")
composite("¨" "\"" "i" "ï")
composite("/" "d" "ð")
composite("~" "n" "ñ")
composite("`" "o" "ò")
composite("´" "'" "o" "ó")
composite("^" "o" "ô")
composite("~" "o" "õ")
composite("¨" "\"" "o" "ö")
":" "-" : "÷"
composite("/" "o" "ø")
composite("`" "u" "ù")
composite("´" "'" "u" "ú")
composite("^" "u" "û")
composite("¨" "\"" "u" "ü")
composite("´" "'" "y" "ý")
"t" "h" : "þ"
composite("¨" "\"" "y" "ÿ")
# TODO Latin Extended-A
# TODO Latin Extended-B
# TODO IPA Extensions
# TODO Spacing Modifier Letter
# TODO Combining Diacritical Marks
# TODO Greek and Coptic
# TODO Cyrillic
# TODO Cyrillic Supplement
# TODO Armenian
# TODO Hebrew
# TODO Arabic
# TODO Syriac
# TODO Arabic Supplement
# TODO Thaana
# TODO NKo
# TODO Samaritan
# TODO Mandaic
# TODO Arabic Extended-A
# TODO Devanagari
# TODO Bengali
# TODO Gurmukhi
# TODO Gujarati
# TODO Oriya
# TODO Tamil
# TODO Telugu
# TODO Kannada
# TODO Malayalam
# TODO Sinhala
# TODO Thai
# TODO Lao
# TODO Tibetan
# TODO Myanmar
# TODO Georgian
# TODO Hangul Jamo
# TODO Ethiopic
# TODO Ethiopic Supplement
# TODO Cherokee
# TODO Unified Canadian Aboriginal Syllabics
# TODO Ogham
# TODO Runic
# TODO Tagalog
# TODO Hanunoo
# TODO Buhid
# TODO Tagbanwa
# TODO Khmer
# TODO Mongolian
# TODO Unified Canadian Aboriginal Syllabics Extended
# TODO Limbu
# TODO Tai Le
# TODO New Tai Lue
# TODO Khmer Symbols
# TODO Buginese
# TODO Tai Tham
# TODO Combining Diacritical Marks Extended
# TODO Balinese
# TODO Sundanese
# TODO Batak
# TODO Lepcha
# TODO Ol Chiki
# TODO Sundanese Supplement
# TODO Vedic Extensions
# TODO Phonetic Extensions
# TODO Phonetic Extensions Supplement
# TODO Combining Diacritical Marks Supplement
# TODO Latin Extended Additional
# TODO Greek Extended
# General Punctuation:
"_" "." : "\u2000" # en quad
"_" "_" : "\u2001" # em quad
"-" "." : "\u2002" # en space
"-" "-" : "\u2003" # em space
"3" : "\u2004" # three-per-em space
"4" : "\u2005" # four-per-em space
"6" : "\u2006" # six-per-em space
"f" : "\u2007" # figure space
"." : "\u2008" # punctuation space
"t" : "\u2009" # thin space
"h" : "\u200A" # hairspace
"0" : "\u200B" # zero width space
"J" : "\u200C" # zero width non-joiner
"j" : "\u200D" # zero width joiner
"l" : "\u200E" # left-to-right mark
"r" : "\u200F" # right-to-left mark
"-" : "\u2010" # hyphen
"-" " " : "\u2011" # non-breaking hyphen
"-" "-" "f" : "\u2012" # figure dash
"-" "-" "." : "\u2013" # en dash
"-" "-" "-" : "\u2014" # em dash
"-" "-" "_" : "\u2015" # horizontal bar
"|" "|" : "\u2016" # double verical line
"-" "_" : "\u2017" # double low line
("(" "'") : "‘"
(")" "'") : "’"
("(" ",") : "‚"
(")" ",") : "‛"
("(" "\"") : "“"
(")" "\"") : "”"
("(" ";") : "„"
(")" ";") : "‟"
"+" "T" : "†"
"+" "+" "T" : "‡"
"." "." : "•"
"|" ">" : "‣"
"." "," : "\u2024" # one dot leader
"." ";" : "\u2025" # two dot leader
"." "." : "…"
"-" "." : "\u2027" # hyphenation point
"l" : "\u2028" # line separator
"p" : "\u2029" # paragraph separator
"e" "l" : "\u202A" # left-to-right embedding
"e" "r" : "\u202B" # right-to-left embedding
"e" "p" : "\u202C" # pop directional formatting
"o" "l" : "\u202D" # left-to-right override
"o" "r" : "\u202E" # right-to-left override
"m" " " : "\u202F" # narrow no-break space
"%" ["o" "."] : "‰"
"%" ["O" ":"] : "‱"
("1" ["'" "´"]) : "′"
("2" ["'" "´"]) : "″"
("3" ["'" "´"]) : "‴"
("1" "`") : "‵"
("2" "`") : "‶"
("3" "`") : "‷"
("." "^") : "‸"
("." "<") : "‹"
("." ">") : "›"
("x" "+") : "※"
"!" "!" : "‼"
"!" "?" : "‽"
"^" "_" : "‾"
("_" "u") : "‿"
("^" "u") : "⁀"
"/" "/" "." : "⁁"
"*" "*" : "⁂"
"-" "-" : "⁃"
"/" "/" : "⁄"
("[" "-") : "⁅"
("]" "-") : "⁆"
"?" "?" : "⁇"
"?" "!" : "⁈"
"!" "?" : "⁉"
("/" "7"): "⁊"
"¶" "¶" : "⁋"
("?" ["p" "P"]) : "⁋"
"(" "|" : "⁌"
"|" ")" : "⁍"
("*" ".") : "⁎"
"|" ";" : "⁏"
"(" ")": "⁐"
("*" ":") : "⁑"
"%" "%" : "⁒"
"~" ["-" "~"] : "⁓"
"-" "~" : "⁓"
("_" "U") : "⁔"
("x" "*") : "⁕"
"." ":" : "⁖"
("4" ["'" "´"]) : "⁗"
"." ":" "." : "⁘"
":" "." ":" : "⁙"
"|" "." "." : "⁚"
"." ":" "." : "⁛"
("x" ":") : "⁜"
"|" ":" "." : "⁝"
"|" ":" ":" : "⁞"
"m" : "\u205F" # medium mathematical space
"w" : "\u2060" # word joiner
("f" " ") : "\u2061" # function application
(["x" "×" "*"] " ") : "\u2062" # invisible times
(["," "."] " ") : "\u2063" # invisible separator
("+" " ") : "\u2064" # invisible plus
"i" "l" : "\u2066" # left-to-right isolate
"i" "r" : "\u2067" # right-to-left isolate
"i" "s" : "\u2068" # first strong isolate
"i" "p" : "\u2069" # pop directional isolate
# U+206A through U+206C are deprecated
# Superscripts and Subscripts:
"0" : "⁰"
["^" ] "i" : "ⁱ"
"4" : "⁴"
"5" : "⁵"
"6" : "⁶"
"7" : "⁷"
"8" : "⁸"
"9" : "⁹"
"+" : "⁺"
"-" : "⁻"
"=" : "⁼"
"(" : "⁽"
")" : "⁾"
["^" ] "n" : "ⁿ"
dead_ascii("ˇ")
"0" : "₀"
"1" : "₁"
"2" : "₂"
"3" : "₃"
"4" : "₄"
"5" : "₅"
"6" : "₆"
"7" : "₇"
"8" : "₈"
"9" : "₉"
"+" : "₊"
"-" : "₋"
"=" : "₌"
"(" : "₍"
")" : "₎"
["ˇ" ] "a" : "ₐ"
["ˇ" ] "e" : "ₑ"
["ˇ" ] "o" : "ₒ"
["ˇ" ] "x" : "ₓ"
["ˇ" ] "ə" : "ₔ"
["ˇ" ] "h" : "ₕ"
["ˇ" ] "k" : "ₖ"
["ˇ" ] "l" : "ₗ"
["ˇ" ] "m" : "ₘ"
["ˇ"