miniwi

tiny 4x8 bitmapped font
Log | Files | Refs | README | LICENSE

commit 4df65f9433bd0bfdf56af2f628c9c148bbe3d67d
parent 64509fa2f39967a359a7146b30fddbb432844af5
Author: Josuah Demangeon <josuah.demangeon>
Date:   Wed, 24 Feb 2016 22:27:24 +0100

Updated the repo, removed psf version

Diffstat:
AREADME.md | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DREADME.org | 78------------------------------------------------------------------------------
Dbdf2psf/arabic.equivalents | 596-------------------------------------------------------------------------------
Dbdf2psf/bdf2psf | 777-------------------------------------------------------------------------------
Dbdf2psf/miniwi.set | 583-------------------------------------------------------------------------------
Dbdf2psf/standard.equivalents | 519-------------------------------------------------------------------------------
Dminiwi.psfu | 0
7 files changed, 76 insertions(+), 2553 deletions(-)

diff --git a/README.md b/README.md @@ -0,0 +1,76 @@ +Miniwi font +================================================================================ + +This is a font in a 8x4 format (including spaces), made from scratch, but with +inspiration from the [tom +thumb](http://robey.lag.net/2010/01/23/tiny-monospace-font.html) font (thank +you, Robey!). + +![](./preview.png) + +On a 320x240 raspberry screen, it can display 80x30 (2400) characters. + +Then on my laptop screen... + +![](./screenshot.png) + +It support the characters from these encodings: + +- ASCII characters (easy!) +- ISO 8859-{1, 2, 3, 4, 9, 10, 13, 14} (Latin 0 to 8) +- ISO 8859-5 and KOI8-R (Cyrilic) +- ISO 8859-6 (Arabic) +- ISO 8859-7 (Greek) +- ISO 8859-8 (Hebrew) + +... as well as box-drawing characters, all braille characters to make +it suitable for [drawille](https://github.com/asciimoo/drawille) and +mincellaneous symbols (math, punctuation, all circled numbers and +letters ...). + +More? +-------------------------------------------------------------------------------- + +I have mosts of the glyph I need, and if you want some more, ask me +and I may add them! + +Contributions are welcome as well. + +Build +-------------------------------------------------------------------------------- + +The psf tty font is generated by the bdf-to-psf (aka bdf2psf) script. +Ask me if you want explainations, I wauld be glad to explain. + +Otherwise, I build the font with fontforge and maybe some day I will switch to +gbdfed. + +To generate the font set comments from the characters code, I used +this emacs macro: + +```elisp +(setq last-kbd-macro + "\C-f\C-f\C-@\C-e\C-[w # \C-u\C-[:(char-to-string #x\C-y)\C-m\C-?\C-b\C-?\C-u\C-x=\C-xo\C-[ssE\C-?C-x 8\C-s\C-m\C-f\C-@\C-e\C-b\C-[wq\C-y\C-d\C-a\C-n") +``` + +And this vim macro using the unicode.vim plugin: + +``` VimL +nnoremap <leader>c I# U+<esc>lyeA: <esc>"=unicode#UnicodeName(0x<c-f>pA) +``` + +License +-------------------------------------------------------------------------------- + +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 <http://www.gnu.org/licenses/>. diff --git a/README.org b/README.org @@ -1,78 +0,0 @@ -#+title: Miniwi font - -This is a font in a 8x4 format (including spaces), made from scratch, -but with inspiration from the -[[http://robey.lag.net/2010/01/23/tiny-monospace-font.html][tom -thumb]] font (thank you, Robey!). - -[[./preview.png]] - -On a 320x240 raspberry screen, it can display 80x30 (2400) characters. - -Then on my laptop screen... - -[[./screenshot.png]] - -It support the characters from these encodings: - -- ASCII characters (easy!) -- ISO 8859-{1, 2, 3, 4, 9, 10, 13, 14} (Latin 0 to 8) -- ISO 8859-5 and KOI8-R (Cyrilic) -- ISO 8859-6 (Arabic) -- ISO 8859-7 (Greek) -- ISO 8859-8 (Hebrew) - -... as well as box-drawing characters, all braille characters to make -it suitable for [[https://github.com/asciimoo/drawille][drawille]] and -mincellaneous symbols (math, punctuation, all circled numbers and -letters ...). - -* More? - -I have mosts of the glyph I need, and if you want some more, ask me -and I may add them! - -Contributions are welcome as well. - -* Build - -The psf tty font is generated by a slightly modified version of -=bdf2psf= (to prevent a bug, I hardcoded the font width): - -#+begin_src sh - ./bdf2psf --fb\ - ../miniwi.bdf\ - ./standard.equivalents\ - ./miniwi.set\ - 512\ - ../miniwi.psfu -#+end_src - -Otherwise, I build the font with fontforge. - -To generate the font set comments from the characters code, I used -this emacs macro: - -#+begin_src elisp -(global-set-key (kbd "M-s s") 'isearch-forward) -(setq last-kbd-macro - "\C-f\C-f\C-@\C-e\C-[w # \C-u\C-[:(char-to-string #x\C-y)\C-m\C-?\C-b\C-?\C-u\C-x=\C-xo\C-[ssE\C-?C-x 8\C-s\C-m\C-f\C-@\C-e\C-b\C-[wq\C-y\C-d\C-a\C-n") -#+end_src - -And to count the number of characters that will be included in the -font, I used this regex: =^[0-9ABCDEFabcdef]\{4\}= - -* License - -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 <http://www.gnu.org/licenses/>. diff --git a/bdf2psf/arabic.equivalents b/bdf2psf/arabic.equivalents @@ -1,596 +0,0 @@ -# History: -# -# 2005-07-04 Initial version based on arabic_forms.fallback - - -U+FEF4 U+064A -# U+FEF4: ARABIC LETTER YEH MEDIAL FORM -# U+064A: ARABIC LETTER YEH -U+FEF3 U+064A -# U+FEF3: ARABIC LETTER YEH INITIAL FORM -# U+064A: ARABIC LETTER YEH -U+FEF2 U+064A -# U+FEF2: ARABIC LETTER YEH FINAL FORM -# U+064A: ARABIC LETTER YEH -U+FEF1 U+064A -# U+FEF1: ARABIC LETTER YEH ISOLATED FORM -# U+064A: ARABIC LETTER YEH -U+FEEE U+0648 -# U+FEEE: ARABIC LETTER WAW FINAL FORM -# U+0648: ARABIC LETTER WAW -U+FEED U+0648 -# U+FEED: ARABIC LETTER WAW ISOLATED FORM -# U+0648: ARABIC LETTER WAW -U+FEEC U+0647 -# U+FEEC: ARABIC LETTER HEH MEDIAL FORM -# U+0647: ARABIC LETTER HEH -U+FEEB U+0647 -# U+FEEB: ARABIC LETTER HEH INITIAL FORM -# U+0647: ARABIC LETTER HEH -U+FEEA U+0647 -# U+FEEA: ARABIC LETTER HEH FINAL FORM -# U+0647: ARABIC LETTER HEH -U+FEE9 U+0647 -# U+FEE9: ARABIC LETTER HEH ISOLATED FORM -# U+0647: ARABIC LETTER HEH -U+FEE8 U+0646 -# U+FEE8: ARABIC LETTER NOON MEDIAL FORM -# U+0646: ARABIC LETTER NOON -U+FEE7 U+0646 -# U+FEE7: ARABIC LETTER NOON INITIAL FORM -# U+0646: ARABIC LETTER NOON -U+FEE6 U+0646 -# U+FEE6: ARABIC LETTER NOON FINAL FORM -# U+0646: ARABIC LETTER NOON -U+FEE5 U+0646 -# U+FEE5: ARABIC LETTER NOON ISOLATED FORM -# U+0646: ARABIC LETTER NOON -U+FEE4 U+0645 -# U+FEE4: ARABIC LETTER MEEM MEDIAL FORM -# U+0645: ARABIC LETTER MEEM -U+FEE3 U+0645 -# U+FEE3: ARABIC LETTER MEEM INITIAL FORM -# U+0645: ARABIC LETTER MEEM -U+FEE2 U+0645 -# U+FEE2: ARABIC LETTER MEEM FINAL FORM -# U+0645: ARABIC LETTER MEEM -U+FEE1 U+0645 -# U+FEE1: ARABIC LETTER MEEM ISOLATED FORM -# U+0645: ARABIC LETTER MEEM -U+FEE0 U+0644 -# U+FEE0: ARABIC LETTER LAM MEDIAL FORM -# U+0644: ARABIC LETTER LAM -U+FEDF U+0644 -# U+FEDF: ARABIC LETTER LAM INITIAL FORM -# U+0644: ARABIC LETTER LAM -U+FEDE U+0644 -# U+FEDE: ARABIC LETTER LAM FINAL FORM -# U+0644: ARABIC LETTER LAM -U+FEDD U+0644 -# U+FEDD: ARABIC LETTER LAM ISOLATED FORM -# U+0644: ARABIC LETTER LAM -U+FEDC U+0643 -# U+FEDC: ARABIC LETTER KAF MEDIAL FORM -# U+0643: ARABIC LETTER KAF -U+FEDB U+0643 -# U+FEDB: ARABIC LETTER KAF INITIAL FORM -# U+0643: ARABIC LETTER KAF -U+FEDA U+0643 -# U+FEDA: ARABIC LETTER KAF FINAL FORM -# U+0643: ARABIC LETTER KAF -U+FED9 U+0643 -# U+FED9: ARABIC LETTER KAF ISOLATED FORM -# U+0643: ARABIC LETTER KAF -U+FED8 U+0642 -# U+FED8: ARABIC LETTER QAF MEDIAL FORM -# U+0642: ARABIC LETTER QAF -U+FED7 U+0642 -# U+FED7: ARABIC LETTER QAF INITIAL FORM -# U+0642: ARABIC LETTER QAF -U+FED6 U+0642 -# U+FED6: ARABIC LETTER QAF FINAL FORM -# U+0642: ARABIC LETTER QAF -U+FED5 U+0642 -# U+FED5: ARABIC LETTER QAF ISOLATED FORM -# U+0642: ARABIC LETTER QAF -U+FED4 U+0641 -# U+FED4: ARABIC LETTER FEH MEDIAL FORM -# U+0641: ARABIC LETTER FEH -U+FED3 U+0641 -# U+FED3: ARABIC LETTER FEH INITIAL FORM -# U+0641: ARABIC LETTER FEH -U+FED2 U+0641 -# U+FED2: ARABIC LETTER FEH FINAL FORM -# U+0641: ARABIC LETTER FEH -U+FED1 U+0641 -# U+FED1: ARABIC LETTER FEH ISOLATED FORM -# U+0641: ARABIC LETTER FEH -U+FED0 U+063A -# U+FED0: ARABIC LETTER GHAIN MEDIAL FORM -# U+063A: ARABIC LETTER GHAIN -U+FECF U+063A -# U+FECF: ARABIC LETTER GHAIN INITIAL FORM -# U+063A: ARABIC LETTER GHAIN -U+FECE U+063A -# U+FECE: ARABIC LETTER GHAIN FINAL FORM -# U+063A: ARABIC LETTER GHAIN -U+FECD U+063A -# U+FECD: ARABIC LETTER GHAIN ISOLATED FORM -# U+063A: ARABIC LETTER GHAIN -U+FECC U+0639 -# U+FECC: ARABIC LETTER AIN MEDIAL FORM -# U+0639: ARABIC LETTER AIN -U+FECB U+0639 -# U+FECB: ARABIC LETTER AIN INITIAL FORM -# U+0639: ARABIC LETTER AIN -U+FECA U+0639 -# U+FECA: ARABIC LETTER AIN FINAL FORM -# U+0639: ARABIC LETTER AIN -U+FEC9 U+0639 -# U+FEC9: ARABIC LETTER AIN ISOLATED FORM -# U+0639: ARABIC LETTER AIN -U+FEC8 U+0638 -# U+FEC8: ARABIC LETTER ZAH MEDIAL FORM -# U+0638: ARABIC LETTER ZAH -U+FEC7 U+0638 -# U+FEC7: ARABIC LETTER ZAH INITIAL FORM -# U+0638: ARABIC LETTER ZAH -U+FEC6 U+0638 -# U+FEC6: ARABIC LETTER ZAH FINAL FORM -# U+0638: ARABIC LETTER ZAH -U+FEC5 U+0638 -# U+FEC5: ARABIC LETTER ZAH ISOLATED FORM -# U+0638: ARABIC LETTER ZAH -U+FEC4 U+0637 -# U+FEC4: ARABIC LETTER TAH MEDIAL FORM -# U+0637: ARABIC LETTER TAH -U+FEC3 U+0637 -# U+FEC3: ARABIC LETTER TAH INITIAL FORM -# U+0637: ARABIC LETTER TAH -U+FEC2 U+0637 -# U+FEC2: ARABIC LETTER TAH FINAL FORM -# U+0637: ARABIC LETTER TAH -U+FEC1 U+0637 -# U+FEC1: ARABIC LETTER TAH ISOLATED FORM -# U+0637: ARABIC LETTER TAH -U+FEC0 U+0636 -# U+FEC0: ARABIC LETTER DAD MEDIAL FORM -# U+0636: ARABIC LETTER DAD -U+FEBF U+0636 -# U+FEBF: ARABIC LETTER DAD INITIAL FORM -# U+0636: ARABIC LETTER DAD -U+FEBE U+0636 -# U+FEBE: ARABIC LETTER DAD FINAL FORM -# U+0636: ARABIC LETTER DAD -U+FEBD U+0636 -# U+FEBD: ARABIC LETTER DAD ISOLATED FORM -# U+0636: ARABIC LETTER DAD -U+FEBC U+0635 -# U+FEBC: ARABIC LETTER SAD MEDIAL FORM -# U+0635: ARABIC LETTER SAD -U+FEBB U+0635 -# U+FEBB: ARABIC LETTER SAD INITIAL FORM -# U+0635: ARABIC LETTER SAD -U+FEBA U+0635 -# U+FEBA: ARABIC LETTER SAD FINAL FORM -# U+0635: ARABIC LETTER SAD -U+FEB9 U+0635 -# U+FEB9: ARABIC LETTER SAD ISOLATED FORM -# U+0635: ARABIC LETTER SAD -U+FEB8 U+0634 -# U+FEB8: ARABIC LETTER SHEEN MEDIAL FORM -# U+0634: ARABIC LETTER SHEEN -U+FEB7 U+0634 -# U+FEB7: ARABIC LETTER SHEEN INITIAL FORM -# U+0634: ARABIC LETTER SHEEN -U+FEB6 U+0634 -# U+FEB6: ARABIC LETTER SHEEN FINAL FORM -# U+0634: ARABIC LETTER SHEEN -U+FEB5 U+0634 -# U+FEB5: ARABIC LETTER SHEEN ISOLATED FORM -# U+0634: ARABIC LETTER SHEEN -U+FEB4 U+0633 -# U+FEB4: ARABIC LETTER SEEN MEDIAL FORM -# U+0633: ARABIC LETTER SEEN -U+FEB3 U+0633 -# U+FEB3: ARABIC LETTER SEEN INITIAL FORM -# U+0633: ARABIC LETTER SEEN -U+FEB2 U+0633 -# U+FEB2: ARABIC LETTER SEEN FINAL FORM -# U+0633: ARABIC LETTER SEEN -U+FEB1 U+0633 -# U+FEB1: ARABIC LETTER SEEN ISOLATED FORM -# U+0633: ARABIC LETTER SEEN -U+FEB0 U+0632 -# U+FEB0: ARABIC LETTER ZAIN FINAL FORM -# U+0632: ARABIC LETTER ZAIN -U+FEAF U+0632 -# U+FEAF: ARABIC LETTER ZAIN ISOLATED FORM -# U+0632: ARABIC LETTER ZAIN -U+FEAE U+0631 -# U+FEAE: ARABIC LETTER REH FINAL FORM -# U+0631: ARABIC LETTER REH -U+FEAD U+0631 -# U+FEAD: ARABIC LETTER REH ISOLATED FORM -# U+0631: ARABIC LETTER REH -U+FEAC U+0630 -# U+FEAC: ARABIC LETTER THAL FINAL FORM -# U+0630: ARABIC LETTER THAL -U+FEAB U+0630 -# U+FEAB: ARABIC LETTER THAL ISOLATED FORM -# U+0630: ARABIC LETTER THAL -U+FEAA U+062F -# U+FEAA: ARABIC LETTER DAL FINAL FORM -# U+062F: ARABIC LETTER DAL -U+FEA9 U+062F -# U+FEA9: ARABIC LETTER DAL ISOLATED FORM -# U+062F: ARABIC LETTER DAL -U+FEA8 U+062E -# U+FEA8: ARABIC LETTER KHAH MEDIAL FORM -# U+062E: ARABIC LETTER KHAH -U+FEA7 U+062E -# U+FEA7: ARABIC LETTER KHAH INITIAL FORM -# U+062E: ARABIC LETTER KHAH -U+FEA6 U+062E -# U+FEA6: ARABIC LETTER KHAH FINAL FORM -# U+062E: ARABIC LETTER KHAH -U+FEA5 U+062E -# U+FEA5: ARABIC LETTER KHAH ISOLATED FORM -# U+062E: ARABIC LETTER KHAH -U+FEA4 U+062D -# U+FEA4: ARABIC LETTER HAH MEDIAL FORM -# U+062D: ARABIC LETTER HAH -U+FEA3 U+062D -# U+FEA3: ARABIC LETTER HAH INITIAL FORM -# U+062D: ARABIC LETTER HAH -U+FEA2 U+062D -# U+FEA2: ARABIC LETTER HAH FINAL FORM -# U+062D: ARABIC LETTER HAH -U+FEA1 U+062D -# U+FEA1: ARABIC LETTER HAH ISOLATED FORM -# U+062D: ARABIC LETTER HAH -U+FEA0 U+062C -# U+FEA0: ARABIC LETTER JEEM MEDIAL FORM -# U+062C: ARABIC LETTER JEEM -U+FE9F U+062C -# U+FE9F: ARABIC LETTER JEEM INITIAL FORM -# U+062C: ARABIC LETTER JEEM -U+FE9E U+062C -# U+FE9E: ARABIC LETTER JEEM FINAL FORM -# U+062C: ARABIC LETTER JEEM -U+FE9D U+062C -# U+FE9D: ARABIC LETTER JEEM ISOLATED FORM -# U+062C: ARABIC LETTER JEEM -U+FE9C U+062B -# U+FE9C: ARABIC LETTER THEH MEDIAL FORM -# U+062B: ARABIC LETTER THEH -U+FE9B U+062B -# U+FE9B: ARABIC LETTER THEH INITIAL FORM -# U+062B: ARABIC LETTER THEH -U+FE9A U+062B -# U+FE9A: ARABIC LETTER THEH FINAL FORM -# U+062B: ARABIC LETTER THEH -U+FE99 U+062B -# U+FE99: ARABIC LETTER THEH ISOLATED FORM -# U+062B: ARABIC LETTER THEH -U+FE98 U+062A -# U+FE98: ARABIC LETTER TEH MEDIAL FORM -# U+062A: ARABIC LETTER TEH -U+FE97 U+062A -# U+FE97: ARABIC LETTER TEH INITIAL FORM -# U+062A: ARABIC LETTER TEH -U+FE96 U+062A -# U+FE96: ARABIC LETTER TEH FINAL FORM -# U+062A: ARABIC LETTER TEH -U+FE95 U+062A -# U+FE95: ARABIC LETTER TEH ISOLATED FORM -# U+062A: ARABIC LETTER TEH -U+FE92 U+0628 -# U+FE92: ARABIC LETTER BEH MEDIAL FORM -# U+0628: ARABIC LETTER BEH -U+FE91 U+0628 -# U+FE91: ARABIC LETTER BEH INITIAL FORM -# U+0628: ARABIC LETTER BEH -U+FE90 U+0628 -# U+FE90: ARABIC LETTER BEH FINAL FORM -# U+0628: ARABIC LETTER BEH -U+FE8F U+0628 -# U+FE8F: ARABIC LETTER BEH ISOLATED FORM -# U+0628: ARABIC LETTER BEH -U+FE8E U+0627 -# U+FE8E: ARABIC LETTER ALEF FINAL FORM -# U+0627: ARABIC LETTER ALEF -U+FE8D U+0627 -# U+FE8D: ARABIC LETTER ALEF ISOLATED FORM -# U+0627: ARABIC LETTER ALEF -U+FE80 U+0621 -# U+FE80: ARABIC LETTER HAMZA ISOLATED FORM -# U+0621: ARABIC LETTER HAMZA -U+FBE7 U+06D0 -# U+FBE7: ARABIC LETTER E MEDIAL FORM -# U+06D0: ARABIC LETTER E -U+FBE6 U+06D0 -# U+FBE6: ARABIC LETTER E INITIAL FORM -# U+06D0: ARABIC LETTER E -U+FBE5 U+06D0 -# U+FBE5: ARABIC LETTER E FINAL FORM -# U+06D0: ARABIC LETTER E -U+FBE4 U+06D0 -# U+FBE4: ARABIC LETTER E ISOLATED FORM -# U+06D0: ARABIC LETTER E -U+FBDF U+06CB -# U+FBDF: ARABIC LETTER VE FINAL FORM -# U+06CB: ARABIC LETTER VE -U+FBDE U+06CB -# U+FBDE: ARABIC LETTER VE ISOLATED FORM -# U+06CB: ARABIC LETTER VE -U+FBDC U+06C8 -# U+FBDC: ARABIC LETTER YU FINAL FORM -# U+06C8: ARABIC LETTER YU -U+FBDB U+06C8 -# U+FBDB: ARABIC LETTER YU ISOLATED FORM -# U+06C8: ARABIC LETTER YU -U+FBDA U+06C6 -# U+FBDA: ARABIC LETTER OE FINAL FORM -# U+06C6: ARABIC LETTER OE -U+FBD9 U+06C6 -# U+FBD9: ARABIC LETTER OE ISOLATED FORM -# U+06C6: ARABIC LETTER OE -U+FBD8 U+06C7 -# U+FBD8: ARABIC LETTER U FINAL FORM -# U+06C7: ARABIC LETTER U -U+FBD7 U+06C7 -# U+FBD7: ARABIC LETTER U ISOLATED FORM -# U+06C7: ARABIC LETTER U -U+FBD6 U+06AD -# U+FBD6: ARABIC LETTER NG MEDIAL FORM -# U+06AD: ARABIC LETTER NG -U+FBD5 U+06AD -# U+FBD5: ARABIC LETTER NG INITIAL FORM -# U+06AD: ARABIC LETTER NG -U+FBD4 U+06AD -# U+FBD4: ARABIC LETTER NG FINAL FORM -# U+06AD: ARABIC LETTER NG -U+FBD3 U+06AD -# U+FBD3: ARABIC LETTER NG ISOLATED FORM -# U+06AD: ARABIC LETTER NG -U+FBA3 U+06BB -# U+FBA3: ARABIC LETTER RNOON MEDIAL FORM -# U+06BB: ARABIC LETTER RNOON -U+FBA2 U+06BB -# U+FBA2: ARABIC LETTER RNOON INITIAL FORM -# U+06BB: ARABIC LETTER RNOON -U+FBA1 U+06BB -# U+FBA1: ARABIC LETTER RNOON FINAL FORM -# U+06BB: ARABIC LETTER RNOON -U+FBA0 U+06BB -# U+FBA0: ARABIC LETTER RNOON ISOLATED FORM -# U+06BB: ARABIC LETTER RNOON -U+FB9D U+06B1 -# U+FB9D: ARABIC LETTER NGOEH MEDIAL FORM -# U+06B1: ARABIC LETTER NGOEH -U+FB9C U+06B1 -# U+FB9C: ARABIC LETTER NGOEH INITIAL FORM -# U+06B1: ARABIC LETTER NGOEH -U+FB9B U+06B1 -# U+FB9B: ARABIC LETTER NGOEH FINAL FORM -# U+06B1: ARABIC LETTER NGOEH -U+FB9A U+06B1 -# U+FB9A: ARABIC LETTER NGOEH ISOLATED FORM -# U+06B1: ARABIC LETTER NGOEH -U+FB99 U+06B3 -# U+FB99: ARABIC LETTER GUEH MEDIAL FORM -# U+06B3: ARABIC LETTER GUEH -U+FB98 U+06B3 -# U+FB98: ARABIC LETTER GUEH INITIAL FORM -# U+06B3: ARABIC LETTER GUEH -U+FB97 U+06B3 -# U+FB97: ARABIC LETTER GUEH FINAL FORM -# U+06B3: ARABIC LETTER GUEH -U+FB96 U+06B3 -# U+FB96: ARABIC LETTER GUEH ISOLATED FORM -# U+06B3: ARABIC LETTER GUEH -U+FB95 U+06AF -# U+FB95: ARABIC LETTER GAF MEDIAL FORM -# U+06AF: ARABIC LETTER GAF -U+FB94 U+06AF -# U+FB94: ARABIC LETTER GAF INITIAL FORM -# U+06AF: ARABIC LETTER GAF -U+FB93 U+06AF -# U+FB93: ARABIC LETTER GAF FINAL FORM -# U+06AF: ARABIC LETTER GAF -U+FB92 U+06AF -# U+FB92: ARABIC LETTER GAF ISOLATED FORM -# U+06AF: ARABIC LETTER GAF -U+FB91 U+06A9 -# U+FB91: ARABIC LETTER KEHEH MEDIAL FORM -# U+06A9: ARABIC LETTER KEHEH -U+FB90 U+06A9 -# U+FB90: ARABIC LETTER KEHEH INITIAL FORM -# U+06A9: ARABIC LETTER KEHEH -U+FB8F U+06A9 -# U+FB8F: ARABIC LETTER KEHEH FINAL FORM -# U+06A9: ARABIC LETTER KEHEH -U+FB8E U+06A9 -# U+FB8E: ARABIC LETTER KEHEH ISOLATED FORM -# U+06A9: ARABIC LETTER KEHEH -U+FB8D U+0691 -# U+FB8D: ARABIC LETTER RREH FINAL FORM -# U+0691: ARABIC LETTER RREH -U+FB8C U+0691 -# U+FB8C: ARABIC LETTER RREH ISOLATED FORM -# U+0691: ARABIC LETTER RREH -U+FB8B U+0698 -# U+FB8B: ARABIC LETTER JEH FINAL FORM -# U+0698: ARABIC LETTER JEH -U+FB8A U+0698 -# U+FB8A: ARABIC LETTER JEH ISOLATED FORM -# U+0698: ARABIC LETTER JEH -U+FB89 U+0688 -# U+FB89: ARABIC LETTER DDAL FINAL FORM -# U+0688: ARABIC LETTER DDAL -U+FB88 U+0688 -# U+FB88: ARABIC LETTER DDAL ISOLATED FORM -# U+0688: ARABIC LETTER DDAL -U+FB87 U+068E -# U+FB87: ARABIC LETTER DUL FINAL FORM -# U+068E: ARABIC LETTER DUL -U+FB86 U+068E -# U+FB86: ARABIC LETTER DUL ISOLATED FORM -# U+068E: ARABIC LETTER DUL -U+FB85 U+068C -# U+FB85: ARABIC LETTER DAHAL FINAL FORM -# U+068C: ARABIC LETTER DAHAL -U+FB84 U+068C -# U+FB84: ARABIC LETTER DAHAL ISOLATED FORM -# U+068C: ARABIC LETTER DAHAL -U+FB83 U+068D -# U+FB83: ARABIC LETTER DDAHAL FINAL FORM -# U+068D: ARABIC LETTER DDAHAL -U+FB82 U+068D -# U+FB82: ARABIC LETTER DDAHAL ISOLATED FORM -# U+068D: ARABIC LETTER DDAHAL -U+FB81 U+0687 -# U+FB81: ARABIC LETTER TCHEHEH MEDIAL FORM -# U+0687: ARABIC LETTER TCHEHEH -U+FB80 U+0687 -# U+FB80: ARABIC LETTER TCHEHEH INITIAL FORM -# U+0687: ARABIC LETTER TCHEHEH -U+FB7F U+0687 -# U+FB7F: ARABIC LETTER TCHEHEH FINAL FORM -# U+0687: ARABIC LETTER TCHEHEH -U+FB7E U+0687 -# U+FB7E: ARABIC LETTER TCHEHEH ISOLATED FORM -# U+0687: ARABIC LETTER TCHEHEH -U+FB7D U+0686 -# U+FB7D: ARABIC LETTER TCHEH MEDIAL FORM -# U+0686: ARABIC LETTER TCHEH -U+FB7C U+0686 -# U+FB7C: ARABIC LETTER TCHEH INITIAL FORM -# U+0686: ARABIC LETTER TCHEH -U+FB7B U+0686 -# U+FB7B: ARABIC LETTER TCHEH FINAL FORM -# U+0686: ARABIC LETTER TCHEH -U+FB7A U+0686 -# U+FB7A: ARABIC LETTER TCHEH ISOLATED FORM -# U+0686: ARABIC LETTER TCHEH -U+FB79 U+0683 -# U+FB79: ARABIC LETTER NYEH MEDIAL FORM -# U+0683: ARABIC LETTER NYEH -U+FB78 U+0683 -# U+FB78: ARABIC LETTER NYEH INITIAL FORM -# U+0683: ARABIC LETTER NYEH -U+FB77 U+0683 -# U+FB77: ARABIC LETTER NYEH FINAL FORM -# U+0683: ARABIC LETTER NYEH -U+FB76 U+0683 -# U+FB76: ARABIC LETTER NYEH ISOLATED FORM -# U+0683: ARABIC LETTER NYEH -U+FB75 U+0684 -# U+FB75: ARABIC LETTER DYEH MEDIAL FORM -# U+0684: ARABIC LETTER DYEH -U+FB74 U+0684 -# U+FB74: ARABIC LETTER DYEH INITIAL FORM -# U+0684: ARABIC LETTER DYEH -U+FB73 U+0684 -# U+FB73: ARABIC LETTER DYEH FINAL FORM -# U+0684: ARABIC LETTER DYEH -U+FB72 U+0684 -# U+FB72: ARABIC LETTER DYEH ISOLATED FORM -# U+0684: ARABIC LETTER DYEH -U+FB71 U+06A6 -# U+FB71: ARABIC LETTER PEHEH MEDIAL FORM -# U+06A6: ARABIC LETTER PEHEH -U+FB70 U+06A6 -# U+FB70: ARABIC LETTER PEHEH INITIAL FORM -# U+06A6: ARABIC LETTER PEHEH -U+FB6F U+06A6 -# U+FB6F: ARABIC LETTER PEHEH FINAL FORM -# U+06A6: ARABIC LETTER PEHEH -U+FB6E U+06A6 -# U+FB6E: ARABIC LETTER PEHEH ISOLATED FORM -# U+06A6: ARABIC LETTER PEHEH -U+FB6D U+06A4 -# U+FB6D: ARABIC LETTER VEH MEDIAL FORM -# U+06A4: ARABIC LETTER VEH -U+FB6C U+06A4 -# U+FB6C: ARABIC LETTER VEH INITIAL FORM -# U+06A4: ARABIC LETTER VEH -U+FB6B U+06A4 -# U+FB6B: ARABIC LETTER VEH FINAL FORM -# U+06A4: ARABIC LETTER VEH -U+FB6A U+06A4 -# U+FB6A: ARABIC LETTER VEH ISOLATED FORM -# U+06A4: ARABIC LETTER VEH -U+FB69 U+0679 -# U+FB69: ARABIC LETTER TTEH MEDIAL FORM -# U+0679: ARABIC LETTER TTEH -U+FB68 U+0679 -# U+FB68: ARABIC LETTER TTEH INITIAL FORM -# U+0679: ARABIC LETTER TTEH -U+FB67 U+0679 -# U+FB67: ARABIC LETTER TTEH FINAL FORM -# U+0679: ARABIC LETTER TTEH -U+FB66 U+0679 -# U+FB66: ARABIC LETTER TTEH ISOLATED FORM -# U+0679: ARABIC LETTER TTEH -U+FB65 U+067F -# U+FB65: ARABIC LETTER TEHEH MEDIAL FORM -# U+067F: ARABIC LETTER TEHEH -U+FB64 U+067F -# U+FB64: ARABIC LETTER TEHEH INITIAL FORM -# U+067F: ARABIC LETTER TEHEH -U+FB63 U+067F -# U+FB63: ARABIC LETTER TEHEH FINAL FORM -# U+067F: ARABIC LETTER TEHEH -U+FB62 U+067F -# U+FB62: ARABIC LETTER TEHEH ISOLATED FORM -# U+067F: ARABIC LETTER TEHEH -U+FB61 U+067A -# U+FB61: ARABIC LETTER TTEHEH MEDIAL FORM -# U+067A: ARABIC LETTER TTEHEH -U+FB60 U+067A -# U+FB60: ARABIC LETTER TTEHEH INITIAL FORM -# U+067A: ARABIC LETTER TTEHEH -U+FB5F U+067A -# U+FB5F: ARABIC LETTER TTEHEH FINAL FORM -# U+067A: ARABIC LETTER TTEHEH -U+FB5E U+067A -# U+FB5E: ARABIC LETTER TTEHEH ISOLATED FORM -# U+067A: ARABIC LETTER TTEHEH -U+FB5D U+0680 -# U+FB5D: ARABIC LETTER BEHEH MEDIAL FORM -# U+0680: ARABIC LETTER BEHEH -U+FB5C U+0680 -# U+FB5C: ARABIC LETTER BEHEH INITIAL FORM -# U+0680: ARABIC LETTER BEHEH -U+FB5B U+0680 -# U+FB5B: ARABIC LETTER BEHEH FINAL FORM -# U+0680: ARABIC LETTER BEHEH -U+FB5A U+0680 -# U+FB5A: ARABIC LETTER BEHEH ISOLATED FORM -# U+0680: ARABIC LETTER BEHEH -U+FB59 U+067E -# U+FB59: ARABIC LETTER PEH MEDIAL FORM -# U+067E: ARABIC LETTER PEH -U+FB58 U+067E -# U+FB58: ARABIC LETTER PEH INITIAL FORM -# U+067E: ARABIC LETTER PEH -U+FB57 U+067E -# U+FB57: ARABIC LETTER PEH FINAL FORM -# U+067E: ARABIC LETTER PEH -U+FB56 U+067E -# U+FB56: ARABIC LETTER PEH ISOLATED FORM -# U+067E: ARABIC LETTER PEH -U+FB55 U+067B -# U+FB55: ARABIC LETTER BEEH MEDIAL FORM -# U+067B: ARABIC LETTER BEEH -U+FB54 U+067B -# U+FB54: ARABIC LETTER BEEH INITIAL FORM -# U+067B: ARABIC LETTER BEEH -U+FB53 U+067B -# U+FB53: ARABIC LETTER BEEH FINAL FORM -# U+067B: ARABIC LETTER BEEH -U+FB52 U+067B -# U+FB52: ARABIC LETTER BEEH ISOLATED FORM -# U+067B: ARABIC LETTER BEEH diff --git a/bdf2psf/bdf2psf b/bdf2psf/bdf2psf @@ -1,777 +0,0 @@ -#!/usr/bin/perl - -# bdf2psf -- convert unicode BDF fonts to Linux console fonts -# Copyright © 2005 Anton Zinoviev <anton@lml.bas.bg> -# Contains code from the bdftopsf.pl utility (Terminus font suite) -# Copyright © 2004 Dimitar Toshkov Zhekov - -# 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 2 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. - -# If you have not received a copy of the GNU General Public License -# along with this program, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -use warnings 'all'; -use strict; - -##################################################################### - -# The following positions are used by the mouse driver of FreeBSD. -# They should not be used for any important symbols in the raw fonts. -# Notice: these depend on the way the kernel has been compiled and -# correspond to the option "SC_MOUSE_CHAR=0x03" in the configuration file. -my %freebsd_mouse = (0x03 => 1, 0x04 => 1, 0x05 => 1, 0x06 => 1); - -my $embeded_sfm = 1; # 1 = make font with sfm table, 0 = do not embed sfm table - -sub debug { - if (1) { - print STDERR "@_"; - } -} - -########### ARGUMENTS ############################################### - -if ($ARGV[0] eq "--help" || $ARGV[0] eq "-h") { - print STDERR <<EOT; -Usage: -bdf2psf [--fb|--raw][--log LOG] BDF{+BDF} EQUIV{+EQUIV} SYMB{+[:]SYMB} SIZE PSF [SFM] - ---fb Create font for framebuffer. ---raw Create a raw font (SIZE*8 bytes) ---log A log file for warnings. -BDF{+BDF} A list of BDF fonts. The fonts listed first take precedence - when several fonts define glyphs for same unicode. -EQUIV{+EQUIV} A list of equivalents files. Each non-empty line in these files - contains a list of unicodes to be considered equal (for all of - them only one position number in the PSF will be reserved). -SYMB{+SYMB} Files containing lists of symbols to include in the PSF font. - Unicodes listed first take precedence. When a file name is - preceeded by a colon, no warnings about missing symbols in - the BDF fonts will be issued. -SIZE Create PSF font with how many character positions - (usually 256 or 512). -PSF The new font. If a file with this name already exists, - it will be overwritten -SFM The SFM table of the PSF font. If a file with this name already - exists, it will be overwritten. Optional. -EOT - exit 0 -} - -my $font_type; # 0=framebuffer, 1=text video mode, 2=raw -if ($ARGV[0] eq "--fb") { - $font_type = 0; - shift @ARGV; -} elsif ($ARGV[0] eq "--raw") { - $font_type = 2; - shift @ARGV; -} else { - $font_type = 1; -} - -my $log; # the log file for issued warnings -if ($ARGV[0] eq "--log") { - shift @ARGV; - $ARGV[0] ne "" or die "$0: --log requires a non-empty argument\n"; - $log = $ARGV[0]; - shift @ARGV; -} else { - $log = ""; -} - -open LOG, ">$log" or die "$0: $log: $!\n" if ($log); - -my @bdfs = split /\+/, $ARGV[0]; -my @equivalents = split /\+/, $ARGV[1]; -my @symbols = split /\+/, $ARGV[2]; -my $font_size = $ARGV[3]; -my $psf = $ARGV[4]; -my $sfm = $#ARGV >= 5 ? $ARGV[5] : ""; - -if ($font_size <= 256) { - $font_size = 256; -} elsif ($font_size <= 512) { - $font_size = 512; -} - -$font_size > 0 && $font_size <= 2048 - or die ("$0: zero or too many characters in the PSF font ($font_size)\n"); - -if ($font_type == 1 && $font_size > 512) { - die ("$0: too many characters in " - ."non-framebuffer PSF font ($font_size)\n"); -} - -if ($font_type == 2 && $font_size > 256) { - die ("$0: too many characters in in a raw font ($font_size)\n"); -} - - -########### GLOBAL VARIABLES ######################################### - -my $current_line; # when reading input files (used for error messages) - -my $width; # The width of the font in pixels -my $height; # The height of the font in pixels - -my %glyphs; # unicode -> [the bytes of the glyph matrix] - -my $copy_8th = 1; # copy the 8th column on the 9th -my $dont_copy_8th = 2; # do not copy the 8th column on the 9th -my $doesnt_matter_8th = 3; # it doesn't matter - -my @position_type; # font position -> one of $copy_8th or $dont_copy_8th or 0 - # remembers whether the the graphics adapter copies the - # 8th column to the 9th. 0 means the position is ocupied - -my %types; # unicode -> the type of the glyph (one of $copy_8th, - # $dont_copy_8th or $doesnt_matter_8th) - # Defined only for unicodes in the BDF fonts - -my %broken_pixels; # unicode -> how many pixels in the font matrix of the PSF - # font will not correspond to the original font - -my %equiv; # $u:unicode -> [ the equivalence class containing $u ] - # Used only through &equivalence_class - -my @sfm_table; # $c:font positon -> [ the equivalence class at $c ] - -my @unicode; # position in the PSF font -> unicode in the BDF fonts - -# cp437 -> unicode -my @ascii2u = ( 0xfffd, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, - 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, - 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, - 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, - 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, - 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, - 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, - 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, - 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, - 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 - ); - -# unicode -> cp437 -my %u2ascii; -for my $i (0..255) { - $u2ascii{$ascii2u[$i]} = $i; -} - -########### FUNCTIONS ############################################### - -sub warning { - print STDERR "WARNING: @_"; - print LOG "WARNING: @_" if ("$log"); -} - -# How many bytes takes one row of the font matrix -sub matrix_row_size { - return ($width + 7) >> 3; -} - -# How many bytes takes the whole matrix of one glyph -sub matrix_size { - return matrix_row_size() * $height; -} - -# $u:unicode -> $u is printable symbol -sub printable { - my $u = $_[0]; - return (($u >= 0x20 && $u <= 0x7e) - || $u >= 0xa0); -} - -# $u:unicode -> [ the equivalence class containing $u ] -# If $u doesn't belong to any class yet create a singleton class -sub equivalence_class { - my $u = $_[0]; - if (! defined $equiv{$u}) { - $equiv{$u} = [ $u ]; - } - return $equiv{$u}; -} - -# $u:unicode -> $u (or equivalent to $u symbol) belongs to the BOX -# DRAWINGS area (hence it probably requires to duplicate the pixels -# from the 8-th column to the 9-th one) -sub is_box_drawings { - my $u = $_[0]; - foreach my $v (@{equivalence_class ($u)}) { - if (($v >= 0x2500 && $v <= 0x2590) || ($v >= 0x2594 && $v <= 0x259f)) { - return 1; - } - } - return 0; -} - -# $u:unicode -> the CP437 code if $u or equivalent to $u symbol is -# a CP437 symbol; 0 otherwise -sub ascii { - my $u = $_[0]; - foreach my $v (@{equivalence_class ($u)}) { - if ($u2ascii{$v}) { - return $u2ascii{$v}; - } - } - return 0; -} - -for my $c (0 ... $font_size - 1) { - $position_type[$c] = $dont_copy_8th; -} -for my $c (0xc0 ... 0xdf) { - $position_type[$c] = $copy_8th; -} -for my $c (0x1c0 ... 0x1df) { - $position_type[$c] = $copy_8th; -} - -# returns a position in the PSF font for a "$dont_copy_8th"-glyph -sub dont_copy_8th_position { - my $u = $_[0]; - if ($broken_pixels{$u}) { - warning sprintf ("U+%04X: %u broken pixel(s)\n", - $u, $broken_pixels{$u}); - } - my $a = ascii($u); - if ($a && $position_type[$a] != 0) { - $position_type[$a] = 0; - return $a; - } - for my $c (0 ... $font_size - 1) { - next if ($font_type == 2 && defined $freebsd_mouse{$c}); - if ($position_type[$c] == $dont_copy_8th) { - $position_type[$c] = 0; - return $c; - } - } - warning sprintf ("U+%04X: can not be positioned properly\n", $u); - for my $c (0 ... $font_size - 1) { - next if ($font_type == 2 && defined $freebsd_mouse{$c}); - if ($position_type[$c] != 0) { - $position_type[$c] = 0; - return $c; - } - } - for my $c (0 ... $font_size - 1) { - if ($position_type[$c] != 0) { - $position_type[$c] = 0; - return $c; - } - } - die "Internal error\n"; -} - -# returns a position in the PSF font for a "$copy_8th"-glyph -sub copy_8th_position { - my $u = $_[0]; - if ($broken_pixels{$u}) { - warning sprintf ("U+%04X: %u broken pixel(s)\n", - $u, $broken_pixels{$u}); - } - my $a = ascii($u); - if ($a && $position_type[$a] != 0) { - $position_type[$a] = 0; - return $a; - } - for my $c (0 ... $font_size - 1) { - next if ($font_type == 2 && defined $freebsd_mouse{$c}); - if ($position_type[$c] == $copy_8th) { - $position_type[$c] = 0; - return $c; - } - } - warning sprintf ("U+%04X: can not be positioned properly\n", $u); - for my $c (0 ... $font_size - 1) { - next if ($font_type == 2 && defined $freebsd_mouse{$c}); - if ($position_type[$c] != 0) { - $position_type[$c] = 0; - return $c; - } - } - for my $c (0 ... $font_size - 1) { - if ($position_type[$c] != 0) { - $position_type[$c] = 0; - return $c; - } - } - die "Internal error\n"; -} - -# returns a position in the PSF font for a "$doesnt_matter_8th"-glyph -sub doesnt_matter_8th_position { - my $u = $_[0]; - if ($broken_pixels{$u}) { - warning sprintf ("U+%04X: %u broken pixel(s)\n", - $u, $broken_pixels{$u}); - } - my $a = ascii($u); - if ($a && $position_type[$a] != 0) { - $position_type[$a] = 0; - return $a; - } - for my $c (0 ... $font_size - 1) { - next if ($font_type == 2 && defined $freebsd_mouse{$c}); - if ($position_type[$c] != 0) { - $position_type[$c] = 0; - return $c; - } - } - for my $c (0 ... $font_size - 1) { - if ($position_type[$c] != 0) { - $position_type[$c] = 0; - return $c; - } - } - die "Internal error\n"; -} - -# how many free positions are left the PSF font -sub free_positions { - my $free = 0; - for my $c (0 ... $font_size - 1) { - if ($position_type[$c] != 0) { - $free++; - } - } - return $free; -} - -# which version of the PSF font format to use -sub version { - return ($width != 8 - || $height >= 256 - || ($font_size != 256 && $font_size != 512)); -} - -########### READ BDFs ################################################ - -for my $bdf (@bdfs) { - my $ascent = 0; - my $descent = 0; - my $averagewidth = 0; - - $current_line = 0; - open (BDF, "$bdf") or die "$0: $bdf: $!\n"; - while (<BDF>) { - $current_line++; - s/^\s*//; - s/\s*$//; - if (/^FONT_ASCENT\s+\"?([0-9]+)\"?$/) { - $ascent = $1; - } - if (/^FONT_DESCENT\s+\"?([0-9]+)\"?$/) { - $descent = $1; - } - if (/^AVERAGE_WIDTH\s+\"?([0-9]+)\"?$/) { - $averagewidth = $1; - } - if (/^CHARS\s+\"?([0-9]+)\"?$/) { - last; - } - } - - if ($height) { - $height == $ascent + $descent - or die ("$0: $bdf: the height is not the same " - ."as in the previous font.\n"); - } else { - $height = $ascent + $descent; - $height > 0 && $height <= 2400 - or die ("$0: $bdf: height $height zero or too big\n"); - } - - $width = 4; - - my @glyph_bytes; - my $u; - my $rows; - my $bbx; - my $beforebox; - my $afterbox; - my $shiftbits; - while (<BDF>) { - $current_line++; - s/^\s*//; - s/\s*$//; - if (/^STARTCHAR/) { - @glyph_bytes = (); - $u = -123456; - $rows = 0; - $bbx = 0; - next; - } - if (/^BBX\s+(-?[0-9]+)\s+(-?[0-9]+)\s+(-?[0-9]+)\s+(-?[0-9]+)$/) { - $beforebox = ($ascent - $4 - $2) * matrix_row_size (); - $afterbox = ($descent + $4) * matrix_row_size (); - $shiftbits = (matrix_row_size () - (($1 + 7) >> 3) ) * 8 - $3; - $bbx = 1; - next; - } - if (/^ENCODING +(.*)/) { - $u = $1; - next; - } - - if (/^(([0-9a-fA-F]{2})+)$/) { - $bbx or die "$0: $bdf: no BBX at line $current_line\n"; - if (length($1) <= 2 * matrix_row_size ()) { - my $row = hex ($1); - if ($shiftbits > 0) { - $row <<= $shiftbits; - } else { - $row >>= -$shiftbits; - } - for my $i (1 ... matrix_row_size ()) { - push (@glyph_bytes, - ($row >> 8 * (matrix_row_size () - $i)) & 0xff); - } - $rows++; - } else { - $rows = -123456; - } - next; - } - if (/^ENDCHAR/) { - if ($rows >= 0) { - $rows == $height - ($beforebox + $afterbox) / matrix_row_size () - or die ("$0: $bdf: invalid number of rows $rows " - ."at line $current_line\n"); - if ($u == -123456) { - die ("$0: $bdf: missing ENCODING before ENDCHAR " - ."at line $current_line\n"); - } - if (! defined $glyphs{$u}) { - if ($beforebox < 0) { - @glyph_bytes = @glyph_bytes[-$beforebox..$#glyph_bytes]; - } - if ($afterbox < 0) { - @glyph_bytes = @glyph_bytes[0 .. $#glyph_bytes+$afterbox]; - } - $glyphs{$u} = [ (0) x $beforebox, - @glyph_bytes, - (0) x $afterbox]; - } - } - } - if (/^ENDFONT$/) { - last; - } - } - - close BDF; -} - -########### COMPUTE THE TYPE OF EACH GLYPH ########################## - -if ($font_type == 0) { - foreach my $u (keys %glyphs) { - $types{$u} = $doesnt_matter_8th; - } -} elsif ($font_type == 2) { - foreach my $u (keys %glyphs) { - # not the best possible assignment - $types{$u} = $dont_copy_8th; - } -} elsif ($width == 7) { - foreach my $u (keys %glyphs) { - $types{$u} = $doesnt_matter_8th; - if (is_box_drawings ($u)) { - for my $i (0 ... $height - 1) { - if ($glyphs{$u}[$i] & 0x02) { - $glyphs{$u}[$i] = $glyphs{$u}[$i] | 0x01; - $types{$u} = $copy_8th; - } - } - } - } - $width = 8; -} elsif ($width == 8) { - foreach my $u (keys %glyphs) { - $types{$u} = $doesnt_matter_8th; - for my $i (0 ... $height - 1) { - if ($glyphs{$u}[$i] & 0x01) { - if (is_box_drawings ($u)) { - $types{$u} = $copy_8th; - } else { - $types{$u} = $dont_copy_8th; - } - } - } - } -} elsif ($width == 9) { - foreach my $u (keys %glyphs) { - my $pixels9 = 0; - my $copyed = 0; - my $different = 0; - for my $i (0 ... $height - 1) { - if (($glyphs{$u}[2 * $i] & 0x01) - && ! ($glyphs{$u}[2 * $i + 1] & 0x80)) { - $different++; - } - if ($glyphs{$u}[2 * $i + 1] & 0x80) { - $pixels9++; - if (! ($glyphs{$u}[2 * $i] & 0x01)) { - $glyphs{$u}[2 * $i] = $glyphs{$u}[2 * $i] | 0x01; - $copyed++; - } - } - } - if ($different < $pixels9) { - $types{$u} = $copy_8th; - $broken_pixels{$u} = $different + $copyed; - } elsif ($different > $pixels9) { - $types{$u} = $dont_copy_8th; - $broken_pixels{$u} = $pixels9 + $copyed; - } else { - $types{$u} = $doesnt_matter_8th; - $broken_pixels{$u} = $pixels9 + $copyed; - } - for my $i (0 ... $height - 1) { - $glyphs{$u}[$i] = $glyphs{$u}[2 * $i]; - } - } - $width = 8; -} else { - die "$0: Bad symbols width for non-framebuffer font: $width\n"; -} - -########### COMPUTE EQUIVALENCE CLASSES ################################### - -for my $equivalent (@equivalents) { - $current_line = 0; - open EQUIVALENT, $equivalent or die "$0: $equivalent: $!\n"; - while (<EQUIVALENT>) { - $current_line++; - s/#.*//; - s/^[[:space:]]*//; - next if /^$/; - my $u = 0; - while (/^U\+([0-9a-fA-F]{1,4})[[:space:]]+(.*)/) { - if (printable (hex($1))) { - $u = hex ($1); - $_ = $2; - last; - } - $_ = $2; - } - next if $u == 0; - - if (! defined $equiv{$u}) { - $equiv{$u} = [ $u ]; - } - while (/^U\+([0-9a-fA-F]+)[[:space:]]*(.*)/) { - my $v = hex ($1); - next if (! printable ($v)); - if (! defined $equiv{$v}) { - unshift @{$equiv{$u}}, $v; - $equiv{$v} = $equiv{$u}; - } elsif ($equiv{$u} != $equiv{$v}) { - my @vv = @{$equiv{$v}}; - while (my $w = shift @vv) { - unshift @{$equiv{$u}}, $w; - $equiv{$w} = $equiv{$u}; - } - } else { - unshift @{$equiv{$u}}, $v; - } - $_ = $2; - } - if (/./) { - die "$0: $equivalent: syntax error on line $current_line: $_\n"; - } - } - close EQUIVALENT; -} - -########### COMPUTE SFM ################################################ - -my @requested; -my %issue_warnings; -my @delayed; -my %positioned; - -for my $symbolfile (@symbols) { - my $warnings = ! ($symbolfile =~ s/^://); - $current_line = 0; - open SYMBOLS, $symbolfile or die "$0: $symbolfile: $!\n"; - while (<SYMBOLS>) { - $current_line++; - s/#.*//; - s/^[[:space:]]*//; - next if /^$/; - /^U\+([0-9a-fA-F]+)[[:space:]]*$/ - or die "$0: $symbolfile: syntax error on line $current_line: $_\n"; - my $u = hex ($1); - push @requested, $u; - $issue_warnings{$u} = 1 if ($warnings); - } - close SYMBOLS; -} - -for my $u (@requested) { - next if ($positioned{$u}); - next if (! printable ($u)); - my $defined_glyph = 0; - if (@delayed < free_positions ()) { - foreach my $v (@{equivalence_class ($u)}) { - next if ! defined $glyphs{$v}; - $defined_glyph = 1; - if ($types{$v} == $dont_copy_8th) { - my $position = dont_copy_8th_position ($v); - $sfm_table[$position] = equivalence_class ($v); - } elsif ($types{$v} == $copy_8th) { - my $position = copy_8th_position ($v); - $sfm_table[$position] = equivalence_class ($v); - } elsif (ascii($v)) { - my $position = doesnt_matter_8th_position ($v); - $sfm_table[$position] = equivalence_class ($v); - } else { - push @delayed, $v; - } - foreach my $w (@{equivalence_class ($u)}) { - $positioned{$w} = 1; - } - last; - } - if (! $defined_glyph && $font_type == 2) { - my $position = dont_copy_8th_position ($u); - $sfm_table[$position] = equivalence_class ($u); - foreach my $w (@{equivalence_class ($u)}) { - $positioned{$w} = 1; - } - } - } - if (defined $issue_warnings{$u} && ! $positioned{$u}) { - if ($defined_glyph) { - warning sprintf ("U+%04X: no space in the font\n", $u); - } else { - warning sprintf ("U+%04X: no glyph defined\n", $u); - } - } -} - -foreach my $u (@delayed) { - my $position = doesnt_matter_8th_position ($u); - $sfm_table[$position] = equivalence_class ($u); -} - -if ($sfm) { - open SFM, ">$sfm" or die "$0: $sfm: $!\n"; - for my $c (0 ... $font_size - 1) { - printf SFM "0x%02x ", $c; - foreach my $u (@{$sfm_table[$c]}) { - printf SFM " U+%04x", $u; - } - print SFM "\n"; - } - close SFM; -} - -######### WRITE PSF ############################################## - -for my $c (0 ... $font_size - 1) { - foreach my $u (@{$sfm_table[$c]}) { - if (! defined $unicode[$c] && defined $glyphs{$u}) { - $unicode[$c] = $u; - last; - } - } -} - -open (PSF, ">$psf") || die ("$0: $psf: $!\n"); -binmode (PSF) || die ("$0: $psf: $!\n"); - -if ($font_type != 2) { - if (version () == 0) { - printf PSF "%c%c", 0x36, 0x04; - printf PSF "%c%c", ($font_size == 512) + $embeded_sfm * 2, $height; - } else { - printf PSF "%c%c%c%c", 0x72, 0xB5, 0x4A, 0x86; - printf PSF "%c%c%c%c", 0x00, 0x00, 0x00, 0x00; - printf PSF "%c%c%c%c", 0x20, 0x00, 0x00, 0x00; - printf PSF "%c", $embeded_sfm; - printf PSF "%c%c%c", 0x00, 0x00, 0x00; - printf PSF "%c%c", $font_size & 0xFF, $font_size >> 8; - printf PSF "%c%c", 0x00, 0x00; - printf PSF "%c%c%c", matrix_size () & 0xFF, - (matrix_size () >> 8) - & 0xFF, matrix_size () >> 16; - printf PSF "%c", 0x00; - printf PSF "%c%c", $height & 0xFF, $height >> 8; - printf PSF "%c%c", 0x00, 0x00; - printf PSF "%c%c", $width & 0xFF, $width >> 8; - printf PSF "%c%c", 0x00, 0x00; - } -} - -for my $c (0 ... $font_size - 1) { - for my $i (0 ... matrix_size () - 1) { - if (defined $unicode[$c]) { - printf PSF "%c", $glyphs{$unicode[$c]}[$i]; - } else { - printf PSF "%c", int(rand(256)); - } - } -} - -if ($font_type != 2 && $embeded_sfm) { - for my $c (0 ... $font_size - 1) { - if (defined $sfm_table[$c]) { - foreach (@{$sfm_table[$c]}) { - if (version () == 0) { - printf PSF "%c%c", $_ & 0xFF, $_ >> 8; - } elsif ($_ <= 0x7F) { - printf PSF "%c", $_; - } else { - if ($_ <= 0x7FF) { - printf PSF "%c", 0xC0 + ($_ >> 6); - } else { - printf PSF "%c", 0xE0 + ($_ >> 12); - printf PSF "%c", 0x80 + (($_ >> 6) & 0x3F); - } - printf PSF "%c", 0x80 + ($_ & 0x3F); - } - } - } - printf PSF "%c", 0xFF; - if (version () == 0) { - printf PSF "%c", 0xFF; - } - } -} - -close PSF; - -close LOG; diff --git a/bdf2psf/miniwi.set b/bdf2psf/miniwi.set @@ -1,583 +0,0 @@ -# ASCII -U+0020 # SPACE -U+0021 # EXCLAMATION MARK -U+0022 # QUOTATION MARK -U+0023 # NUMBER SIGN -U+0024 # DOLLAR SIGN -U+0025 # PERCENT SIGN -U+0026 # AMPERSAND -U+0027 # APOSTROPHE -U+0028 # LEFT PARENTHESIS -U+0029 # RIGHT PARENTHESIS -U+002A # ASTERISK -U+002B # PLUS SIGN -U+002C # COMMA -U+002D # HYPHEN-MINUS -U+002E # FULL STOP -U+002F # SOLIDUS -U+0030 # DIGIT ZERO -U+0031 # DIGIT ONE -U+0032 # DIGIT TWO -U+0033 # DIGIT THREE -U+0034 # DIGIT FOUR -U+0035 # DIGIT FIVE -U+0036 # DIGIT SIX -U+0037 # DIGIT SEVEN -U+0038 # DIGIT EIGHT -U+0039 # DIGIT NINE -U+003A # COLON -U+003B # SEMICOLON -U+003C # LESS-THAN SIGN -U+003D # EQUALS SIGN -U+003E # GREATER-THAN SIGN -U+003F # QUESTION MARK -U+0040 # COMMERCIAL AT -U+0041 # LATIN CAPITAL LETTER A -U+0042 # LATIN CAPITAL LETTER B -U+0043 # LATIN CAPITAL LETTER C -U+0044 # LATIN CAPITAL LETTER D -U+0045 # LATIN CAPITAL LETTER E -U+0046 # LATIN CAPITAL LETTER F -U+0047 # LATIN CAPITAL LETTER G -U+0048 # LATIN CAPITAL LETTER H -U+0049 # LATIN CAPITAL LETTER I -U+004A # LATIN CAPITAL LETTER J -U+004B # LATIN CAPITAL LETTER K - -U+004C # LATIN CAPITAL LETTER L -U+004D # LATIN CAPITAL LETTER M -U+004E # LATIN CAPITAL LETTER N -U+004F # LATIN CAPITAL LETTER O -U+0050 # LATIN CAPITAL LETTER P -U+0051 # LATIN CAPITAL LETTER Q -U+0052 # LATIN CAPITAL LETTER R -U+0053 # LATIN CAPITAL LETTER S -U+0054 # LATIN CAPITAL LETTER T -U+0055 # LATIN CAPITAL LETTER U -U+0056 # LATIN CAPITAL LETTER V -U+0057 # LATIN CAPITAL LETTER W -U+0058 # LATIN CAPITAL LETTER X -U+0059 # LATIN CAPITAL LETTER Y -U+005A # LATIN CAPITAL LETTER Z -U+005B # LEFT SQUARE BRACKET -U+005C # REVERSE SOLIDUS -U+005D # RIGHT SQUARE BRACKET -U+005E # CIRCUMFLEX ACCENT -U+005F # LOW LINE -U+0060 # GRAVE ACCENT -U+0061 # LATIN SMALL LETTER A -U+0062 # LATIN SMALL LETTER B -U+0063 # LATIN SMALL LETTER C -U+0064 # LATIN SMALL LETTER D -U+0065 # LATIN SMALL LETTER E -U+0066 # LATIN SMALL LETTER F -U+0067 # LATIN SMALL LETTER G -U+0068 # LATIN SMALL LETTER H -U+0069 # LATIN SMALL LETTER I -U+006A # LATIN SMALL LETTER J -U+006B # LATIN SMALL LETTER K -U+006C # LATIN SMALL LETTER L -U+006D # LATIN SMALL LETTER M -U+006E # LATIN SMALL LETTER N -U+006F # LATIN SMALL LETTER O -U+0070 # LATIN SMALL LETTER P -U+0071 # LATIN SMALL LETTER Q -U+0072 # LATIN SMALL LETTER R -U+0073 # LATIN SMALL LETTER S -U+0074 # LATIN SMALL LETTER T -U+0075 # LATIN SMALL LETTER U -U+0076 # LATIN SMALL LETTER V -U+0077 # LATIN SMALL LETTER W -U+0078 # LATIN SMALL LETTER X -U+0079 # LATIN SMALL LETTER Y -U+007A # LATIN SMALL LETTER Z -U+007B # LEFT CURLY BRACKET -U+007C # VERTICAL LINE -U+007D # RIGHT CURLY BRACKET -U+007E # TILDE - -# MISC - -U+2320 # RET TOP HALF INTEGRAL -U+25A0 # RET BLACK SQUARE -U+2022 # RET BULLET -U+221A # RET SQUARE ROOT -U+2248 # RET ALMOST EQUAL TO -U+2264 # RET LESS-THAN OR EQUAL TO -U+2265 # RET GREATER-THAN OR EQUAL TO -U+00A0 # RET NO-BREAK SPACE -U+2321 # RET BOTTOM HALF INTEGRAL -U+00B0 # RET DEGREE SIGN -U+00B2 # RET SUPERSCRIPT TWO -U+00B7 # RET MIDDLE DOT -U+00F7 # RET DIVISION SIGN -U+00A9 # RET COPYRIGHT SIGN - -# CYRILLIC - -U+0451 # RET CYRILLIC SMALL LETTER IO -U+0454 # RET CYRILLIC SMALL LETTER UKRAINIAN IE -U+0456 # RET CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -U+0457 # RET CYRILLIC SMALL LETTER YI -U+0491 # RET CYRILLIC SMALL LETTER GHE WITH UPTURN -U+044E # RET CYRILLIC SMALL LETTER YU -U+0430 # RET CYRILLIC SMALL LETTER A -U+0431 # RET CYRILLIC SMALL LETTER BE -U+0446 # RET CYRILLIC SMALL LETTER TSE -U+0434 # RET CYRILLIC SMALL LETTER DE -U+0435 # RET CYRILLIC SMALL LETTER IE -U+0444 # RET CYRILLIC SMALL LETTER EF -U+0433 # RET CYRILLIC SMALL LETTER GHE -U+0445 # RET CYRILLIC SMALL LETTER HA -U+0438 # RET CYRILLIC SMALL LETTER I -U+0439 # RET CYRILLIC SMALL LETTER SHORT I -U+043A # RET CYRILLIC SMALL LETTER KA -U+043B # RET CYRILLIC SMALL LETTER EL -U+043C # RET CYRILLIC SMALL LETTER EM -U+043D # RET CYRILLIC SMALL LETTER EN -U+043E # RET CYRILLIC SMALL LETTER O -U+043F # RET CYRILLIC SMALL LETTER PE -U+044F # RET CYRILLIC SMALL LETTER YA -U+0440 # RET CYRILLIC SMALL LETTER ER -U+0441 # RET CYRILLIC SMALL LETTER ES -U+0442 # RET CYRILLIC SMALL LETTER TE -U+0443 # RET CYRILLIC SMALL LETTER U -U+0436 # RET CYRILLIC SMALL LETTER ZHE -U+0432 # RET CYRILLIC SMALL LETTER VE -U+044C # RET CYRILLIC SMALL LETTER SOFT SIGN -U+044B # RET CYRILLIC SMALL LETTER YERU -U+0437 # RET CYRILLIC SMALL LETTER ZE -U+0448 # RET CYRILLIC SMALL LETTER SHA -U+044D # RET CYRILLIC SMALL LETTER E -U+0449 # RET CYRILLIC SMALL LETTER SHCHA -U+0447 # RET CYRILLIC SMALL LETTER CHE -U+044A # RET CYRILLIC SMALL LETTER HARD SIGN -U+0401 # RET CYRILLIC CAPITAL LETTER IO -U+0404 # RET CYRILLIC CAPITAL LETTER UKRAINIAN IE -U+0406 # RET CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -U+0407 # RET CYRILLIC CAPITAL LETTER YI -U+0490 # RET CYRILLIC CAPITAL LETTER GHE WITH UPTURN -U+042E # RET CYRILLIC CAPITAL LETTER YU -U+0410 # RET CYRILLIC CAPITAL LETTER A -U+0411 # RET CYRILLIC CAPITAL LETTER BE -U+0426 # RET CYRILLIC CAPITAL LETTER TSE -U+0414 # RET CYRILLIC CAPITAL LETTER DE -U+0415 # RET CYRILLIC CAPITAL LETTER IE -U+0424 # RET CYRILLIC CAPITAL LETTER EF -U+0413 # RET CYRILLIC CAPITAL LETTER GHE -U+0425 # RET CYRILLIC CAPITAL LETTER HA -U+0418 # RET CYRILLIC CAPITAL LETTER I -U+0419 # RET CYRILLIC CAPITAL LETTER SHORT I -U+041A # RET CYRILLIC CAPITAL LETTER KA -U+041B # RET CYRILLIC CAPITAL LETTER EL -U+041C # RET CYRILLIC CAPITAL LETTER EM -U+041D # RET CYRILLIC CAPITAL LETTER EN -U+041E # RET CYRILLIC CAPITAL LETTER O -U+041F # RET CYRILLIC CAPITAL LETTER PE -U+042F # RET CYRILLIC CAPITAL LETTER YA -U+0420 # RET CYRILLIC CAPITAL LETTER ER -U+0421 # RET CYRILLIC CAPITAL LETTER ES -U+0422 # RET CYRILLIC CAPITAL LETTER TE -U+0423 # RET CYRILLIC CAPITAL LETTER U -U+0416 # RET CYRILLIC CAPITAL LETTER ZHE -U+0412 # RET CYRILLIC CAPITAL LETTER VE -U+042C # RET CYRILLIC CAPITAL LETTER SOFT SIGN -U+042B # RET CYRILLIC CAPITAL LETTER YERU -U+0417 # RET CYRILLIC CAPITAL LETTER ZE -U+0428 # RET CYRILLIC CAPITAL LETTER SHA -U+042D # RET CYRILLIC CAPITAL LETTER E -U+0429 # RET CYRILLIC CAPITAL LETTER SHCHA -U+0427 # RET CYRILLIC CAPITAL LETTER CHE -U+042A # RET CYRILLIC CAPITAL LETTER HARD SIGN - -# GREEK - -U+0384 # RET GREEK TONOS -U+0385 # RET GREEK DIALYTIKA TONOS -U+0386 # RET GREEK CAPITAL LETTER ALPHA WITH TONOS -U+0388 # RET GREEK CAPITAL LETTER EPSILON WITH TONOS -U+0389 # RET GREEK CAPITAL LETTER ETA WITH TONOS -U+038A # RET GREEK CAPITAL LETTER IOTA WITH TONOS -U+038C # RET GREEK CAPITAL LETTER OMICRON WITH TONOS -U+038E # RET GREEK CAPITAL LETTER UPSILON WITH TONOS -U+038F # RET GREEK CAPITAL LETTER OMEGA WITH TONOS -U+0390 # RET GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -U+0393 # RET GREEK CAPITAL LETTER GAMMA -U+0398 # RET GREEK CAPITAL LETTER THETA -U+039B # RET GREEK CAPITAL LETTER LAMDA -U+039E # RET GREEK CAPITAL LETTER XI -U+03A3 # RET GREEK CAPITAL LETTER SIGMA -U+03A6 # RET GREEK CAPITAL LETTER PHI -U+03A8 # RET GREEK CAPITAL LETTER PSI -U+03A9 # RET GREEK CAPITAL LETTER OMEGA -U+03AC # RET GREEK SMALL LETTER ALPHA WITH TONOS -U+03AD # RET GREEK SMALL LETTER EPSILON WITH TONOS -U+03AE # RET GREEK SMALL LETTER ETA WITH TONOS -U+03AF # RET GREEK SMALL LETTER IOTA WITH TONOS -U+03B0 # RET GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -U+03B1 # RET GREEK SMALL LETTER ALPHA -U+03B2 # RET GREEK SMALL LETTER BETA -U+03B4 # RET GREEK SMALL LETTER DELTA -U+03B5 # RET GREEK SMALL LETTER EPSILON -U+03B6 # RET GREEK SMALL LETTER ZETA -U+03B7 # RET GREEK SMALL LETTER ETA -U+03B8 # RET GREEK SMALL LETTER THETA -U+03B9 # RET GREEK SMALL LETTER IOTA -U+03BB # RET GREEK SMALL LETTER LAMDA -U+03BE # RET GREEK SMALL LETTER XI -U+03C1 # RET GREEK SMALL LETTER RHO -U+03C2 # RET GREEK SMALL LETTER FINAL SIGMA -U+03C3 # RET GREEK SMALL LETTER SIGMA -U+03C4 # RET GREEK SMALL LETTER TAU -U+03C5 # RET GREEK SMALL LETTER UPSILON -U+03C6 # RET GREEK SMALL LETTER PHI -U+03C7 # RET GREEK SMALL LETTER CHI -U+03C8 # RET GREEK SMALL LETTER PSI -U+03C9 # RET GREEK SMALL LETTER OMEGA -U+03CA # RET GREEK SMALL LETTER IOTA WITH DIALYTIKA -U+03CB # RET GREEK SMALL LETTER UPSILON WITH DIALYTIKA -U+03CD # RET GREEK SMALL LETTER UPSILON WITH TONOS -U+03CE # RET GREEK SMALL LETTER OMEGA WITH TONOS -U+03C0 # RET GREEK SMALL LETTER PI - -# BOX DRAWING - -U+2500 # BOX DRAWINGS LIGHT HORIZONTAL -U+2501 # BOX DRAWINGS HEAVY HORIZONTAL -U+2502 # BOX DRAWINGS LIGHT VERTICAL -U+2503 # BOX DRAWINGS HEAVY VERTICAL -U+2504 # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL -U+2505 # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL -U+2506 # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL -U+2507 # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL -U+2508 # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL -U+2509 # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL -U+250A # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL -U+250B # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL -U+250C # BOX DRAWINGS LIGHT DOWN AND RIGHT -U+250D # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY -U+250E # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT -U+250F # BOX DRAWINGS HEAVY DOWN AND RIGHT -U+2510 # BOX DRAWINGS LIGHT DOWN AND LEFT -U+2511 # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY -U+2512 # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT -U+2513 # BOX DRAWINGS HEAVY DOWN AND LEFT -U+2514 # BOX DRAWINGS LIGHT UP AND RIGHT -U+2515 # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY -U+2516 # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT -U+2517 # BOX DRAWINGS HEAVY UP AND RIGHT -U+2518 # BOX DRAWINGS LIGHT UP AND LEFT -U+2519 # BOX DRAWINGS UP LIGHT AND LEFT HEAVY -U+251A # BOX DRAWINGS UP HEAVY AND LEFT LIGHT -U+251B # BOX DRAWINGS HEAVY UP AND LEFT -U+251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT -U+251D # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY -U+251E # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT -U+251F # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT -U+2520 # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT -U+2521 # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY -U+2522 # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY -U+2523 # BOX DRAWINGS HEAVY VERTICAL AND RIGHT -U+2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT -U+2525 # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY -U+2526 # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT -U+2527 # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT -U+2528 # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT -U+2529 # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY -U+252A # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY -U+252B # BOX DRAWINGS HEAVY VERTICAL AND LEFT -U+252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -U+252D # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT -U+252E # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT -U+252F # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY -U+2530 # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT -U+2531 # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY -U+2532 # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY -U+2533 # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL -U+2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL -U+2535 # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT -U+2536 # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT -U+2537 # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY -U+2538 # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT -U+2539 # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY -U+253A # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY -U+253B # BOX DRAWINGS HEAVY UP AND HORIZONTAL -U+253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -U+253D # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT -U+253E # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT -U+253F # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY -U+2540 # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT -U+2541 # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT -U+2542 # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT -U+2543 # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT -U+2544 # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT -U+2545 # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT -U+2546 # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT -U+2547 # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY -U+2548 # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY -U+2549 # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY -U+254A # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY -U+254B # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL -U+254C # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL -U+254D # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL -U+254E # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL -U+254F # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL -U+2550 # BOX DRAWINGS DOUBLE HORIZONTAL -U+2551 # BOX DRAWINGS DOUBLE VERTICAL -U+2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -U+2553 # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -U+2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT -U+2555 # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -U+2556 # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -U+2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT -U+2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -U+2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -U+255A # BOX DRAWINGS DOUBLE UP AND RIGHT -U+255B # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -U+255C # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -U+255D # BOX DRAWINGS DOUBLE UP AND LEFT -U+255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -U+255F # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -U+2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -U+2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -U+2562 # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -U+2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT -U+2564 # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -U+2565 # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -U+2566 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -U+2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -U+2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -U+2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL -U+256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -U+256B # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -U+256C # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -U+256D # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT -U+256E # BOX DRAWINGS LIGHT ARC DOWN AND LEFT -U+256F # BOX DRAWINGS LIGHT ARC UP AND LEFT -U+2570 # BOX DRAWINGS LIGHT ARC UP AND RIGHT -U+2571 # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT -U+2572 # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT -U+2573 # BOX DRAWINGS LIGHT DIAGONAL CROSS -U+2574 # BOX DRAWINGS LIGHT LEFT -U+2575 # BOX DRAWINGS LIGHT UP -U+2576 # BOX DRAWINGS LIGHT RIGHT -U+2577 # BOX DRAWINGS LIGHT DOWN -U+2578 # BOX DRAWINGS HEAVY LEFT -U+2579 # BOX DRAWINGS HEAVY UP -U+257A # BOX DRAWINGS HEAVY RIGHT -U+257B # BOX DRAWINGS HEAVY DOWN -U+257C # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT -U+257D # BOX DRAWINGS LIGHT UP AND HEAVY DOWN -U+257E # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT -U+257F # BOX DRAWINGS HEAVY UP AND LIGHT DOWN - -# BLOCK - SHADE - QUADRANT - -U+2580 # UPPER HALF BLOCK -# 2581 # LOWER ONE EIGHTH BLOCK -# 2582 # LOWER ONE QUARTER BLOCK -# 2583 # LOWER THREE EIGHTHS BLOCK -U+2584 # LOWER HALF BLOCK -# 2585 # LOWER FIVE EIGHTHS BLOCK -# 2586 # LOWER THREE QUARTERS BLOCK -# 2587 # LOWER SEVEN EIGHTHS BLOCK -U+2588 # FULL BLOCK -# 2589 # LEFT SEVEN EIGHTHS BLOCK -# 258A # LEFT THREE QUARTERS BLOCK -# 258B # LEFT FIVE EIGHTHS BLOCK -U+258C # LEFT HALF BLOCK -# 258D # LEFT THREE EIGHTHS BLOCK -# 258E # LEFT ONE QUARTER BLOCK -# 258F # LEFT ONE EIGHTH BLOCK -U+2590 # RIGHT HALF BLOCK -U+2591 # LIGHT SHADE -U+2592 # MEDIUM SHADE -U+2593 # DARK SHADE -# 2594 # UPPER ONE EIGHTH BLOCK -# 2595 # RIGHT ONE EIGHTH BLOCK -U+2596 # QUADRANT LOWER LEFT -U+2597 # QUADRANT LOWER RIGHT -U+2598 # QUADRANT UPPER LEFT -U+2599 # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT -U+259A # QUADRANT UPPER LEFT AND LOWER RIGHT -U+259B # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT -U+259C # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT -U+259D # QUADRANT UPPER RIGHT -U+259E # QUADRANT UPPER RIGHT AND LOWER LEFT -U+259F # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT - -# LATIN ACCENTS - -U+00C0 # RET LATIN CAPITAL LETTER A WITH GRAVE -U+00C1 # RET LATIN CAPITAL LETTER A WITH ACUTE -U+00C2 # RET LATIN CAPITAL LETTER A WITH CIRCUMFLEX -U+00C3 # RET LATIN CAPITAL LETTER A WITH TILDE -U+00C4 # RET LATIN CAPITAL LETTER A WITH DIAERESIS -U+00C5 # RET LATIN CAPITAL LETTER A WITH RING ABOVE -U+00C6 # RET LATIN CAPITAL LETTER AE -U+00C7 # RET LATIN CAPITAL LETTER C WITH CEDILLA -U+00C8 # RET LATIN CAPITAL LETTER E WITH GRAVE -U+00C9 # RET LATIN CAPITAL LETTER E WITH ACUTE -U+00CA # RET LATIN CAPITAL LETTER E WITH CIRCUMFLEX -U+00CB # RET LATIN CAPITAL LETTER E WITH DIAERESIS -U+00CC # RET LATIN CAPITAL LETTER I WITH GRAVE -U+00CD # RET LATIN CAPITAL LETTER I WITH ACUTE -U+00CE # RET LATIN CAPITAL LETTER I WITH CIRCUMFLEX -U+00CF # RET LATIN CAPITAL LETTER I WITH DIAERESIS -U+00D0 # RET LATIN CAPITAL LETTER ETH -U+00D1 # RET LATIN CAPITAL LETTER N WITH TILDE -U+00D2 # RET LATIN CAPITAL LETTER O WITH GRAVE -U+00D3 # RET LATIN CAPITAL LETTER O WITH ACUTE -U+00D4 # RET LATIN CAPITAL LETTER O WITH CIRCUMFLEX -U+00D5 # RET LATIN CAPITAL LETTER O WITH TILDE -U+00D6 # RET LATIN CAPITAL LETTER O WITH DIAERESIS -U+00D8 # RET LATIN CAPITAL LETTER O WITH STROKE -U+00D9 # RET LATIN CAPITAL LETTER U WITH GRAVE -U+00DA # RET LATIN CAPITAL LETTER U WITH ACUTE -U+00DB # RET LATIN CAPITAL LETTER U WITH CIRCUMFLEX -U+00DC # RET LATIN CAPITAL LETTER U WITH DIAERESIS -U+00DD # RET LATIN CAPITAL LETTER Y WITH ACUTE -U+00DE # RET LATIN CAPITAL LETTER THORN -U+00DF # RET LATIN SMALL LETTER SHARP S -U+00E0 # RET LATIN SMALL LETTER A WITH GRAVE -U+00E1 # RET LATIN SMALL LETTER A WITH ACUTE -U+00E2 # RET LATIN SMALL LETTER A WITH CIRCUMFLEX -U+00E3 # RET LATIN SMALL LETTER A WITH TILDE -U+00E4 # RET LATIN SMALL LETTER A WITH DIAERESIS -U+00E5 # RET LATIN SMALL LETTER A WITH RING ABOVE -U+00E6 # RET LATIN SMALL LETTER AE -U+00E7 # RET LATIN SMALL LETTER C WITH CEDILLA -U+00E8 # RET LATIN SMALL LETTER E WITH GRAVE -U+00E9 # RET LATIN SMALL LETTER E WITH ACUTE -U+00EA # RET LATIN SMALL LETTER E WITH CIRCUMFLEX -U+00EB # RET LATIN SMALL LETTER E WITH DIAERESIS -U+00EC # RET LATIN SMALL LETTER I WITH GRAVE -U+00ED # RET LATIN SMALL LETTER I WITH ACUTE -U+00EE # RET LATIN SMALL LETTER I WITH CIRCUMFLEX -U+00EF # RET LATIN SMALL LETTER I WITH DIAERESIS -U+00F0 # RET LATIN SMALL LETTER ETH -U+00F1 # RET LATIN SMALL LETTER N WITH TILDE -U+00F2 # RET LATIN SMALL LETTER O WITH GRAVE -U+00F3 # RET LATIN SMALL LETTER O WITH ACUTE -U+00F4 # RET LATIN SMALL LETTER O WITH CIRCUMFLEX -U+00F5 # RET LATIN SMALL LETTER O WITH TILDE -U+00F6 # RET LATIN SMALL LETTER O WITH DIAERESIS -U+00F8 # RET LATIN SMALL LETTER O WITH STROKE -U+00F9 # RET LATIN SMALL LETTER U WITH GRAVE -U+00FA # RET LATIN SMALL LETTER U WITH ACUTE -U+00FB # RET LATIN SMALL LETTER U WITH CIRCUMFLEX -U+00FC # RET LATIN SMALL LETTER U WITH DIAERESIS -U+00FD # RET LATIN SMALL LETTER Y WITH ACUTE -U+00FE # RET LATIN SMALL LETTER THORN -U+00FF # RET LATIN SMALL LETTER Y WITH DIAERESIS -U+0100 # RET LATIN CAPITAL LETTER A WITH MACRON -U+0101 # RET LATIN SMALL LETTER A WITH MACRON -U+0102 # RET LATIN CAPITAL LETTER A WITH BREVE -U+0103 # RET LATIN SMALL LETTER A WITH BREVE -U+0104 # RET LATIN CAPITAL LETTER A WITH OGONEK -U+0105 # RET LATIN SMALL LETTER A WITH OGONEK -U+0106 # RET LATIN CAPITAL LETTER C WITH ACUTE -U+0107 # RET LATIN SMALL LETTER C WITH ACUTE -U+010C # RET LATIN CAPITAL LETTER C WITH CARON -U+010D # RET LATIN SMALL LETTER C WITH CARON -U+010E # RET LATIN CAPITAL LETTER D WITH CARON -U+010F # RET LATIN SMALL LETTER D WITH CARON -U+0111 # RET LATIN SMALL LETTER D WITH STROKE -U+0112 # RET LATIN CAPITAL LETTER E WITH MACRON -U+0113 # RET LATIN SMALL LETTER E WITH MACRON -U+0116 # RET LATIN CAPITAL LETTER E WITH DOT ABOVE -U+0117 # RET LATIN SMALL LETTER E WITH DOT ABOVE -U+0118 # RET LATIN CAPITAL LETTER E WITH OGONEK -U+0119 # RET LATIN SMALL LETTER E WITH OGONEK -U+011A # RET LATIN CAPITAL LETTER E WITH CARON -U+011B # RET LATIN SMALL LETTER E WITH CARON -U+011E # RET LATIN CAPITAL LETTER G WITH BREVE -U+011F # RET LATIN SMALL LETTER G WITH BREVE -U+0122 # RET LATIN CAPITAL LETTER G WITH CEDILLA -U+0123 # RET LATIN SMALL LETTER G WITH CEDILLA -U+0128 # RET LATIN CAPITAL LETTER I WITH TILDE -U+0129 # RET LATIN SMALL LETTER I WITH TILDE -U+012A # RET LATIN CAPITAL LETTER I WITH MACRON -U+012B # RET LATIN SMALL LETTER I WITH MACRON -U+012E # RET LATIN CAPITAL LETTER I WITH OGONEK -U+012F # RET LATIN SMALL LETTER I WITH OGONEK -U+0130 # RET LATIN CAPITAL LETTER I WITH DOT ABOVE -U+0131 # RET LATIN SMALL LETTER DOTLESS I -U+0136 # RET LATIN CAPITAL LETTER K WITH CEDILLA -U+0137 # RET LATIN SMALL LETTER K WITH CEDILLA -U+0138 # RET LATIN SMALL LETTER KRA -U+0139 # RET LATIN CAPITAL LETTER L WITH ACUTE -U+013A # RET LATIN SMALL LETTER L WITH ACUTE -U+013B # RET LATIN CAPITAL LETTER L WITH CEDILLA -U+013C # RET LATIN SMALL LETTER L WITH CEDILLA -U+013D # RET LATIN CAPITAL LETTER L WITH CARON -U+013E # RET LATIN SMALL LETTER L WITH CARON -U+013F # RET LATIN CAPITAL LETTER L WITH MIDDLE DOT -U+0140 # RET LATIN SMALL LETTER L WITH MIDDLE DOT -U+0141 # RET LATIN CAPITAL LETTER L WITH STROKE -U+0142 # RET LATIN SMALL LETTER L WITH STROKE -U+0143 # RET LATIN CAPITAL LETTER N WITH ACUTE -U+0144 # RET LATIN SMALL LETTER N WITH ACUTE -U+0145 # RET LATIN CAPITAL LETTER N WITH CEDILLA -U+0146 # RET LATIN SMALL LETTER N WITH CEDILLA -U+0147 # RET LATIN CAPITAL LETTER N WITH CARON -U+0148 # RET LATIN SMALL LETTER N WITH CARON -U+0149 # RET LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -U+014A # RET LATIN CAPITAL LETTER ENG -U+014B # RET LATIN SMALL LETTER ENG -U+014C # RET LATIN CAPITAL LETTER O WITH MACRON -U+014D # RET LATIN SMALL LETTER O WITH MACRON -U+0150 # RET LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -U+0151 # RET LATIN SMALL LETTER O WITH DOUBLE ACUTE -U+0152 # RET LATIN CAPITAL LIGATURE OE -U+0153 # RET LATIN SMALL LIGATURE OE -U+0154 # RET LATIN CAPITAL LETTER R WITH ACUTE -U+0155 # RET LATIN SMALL LETTER R WITH ACUTE -U+0156 # RET LATIN CAPITAL LETTER R WITH CEDILLA -U+0157 # RET LATIN SMALL LETTER R WITH CEDILLA -U+0158 # RET LATIN CAPITAL LETTER R WITH CARON -U+0159 # RET LATIN SMALL LETTER R WITH CARON -U+015A # RET LATIN CAPITAL LETTER S WITH ACUTE -U+015B # RET LATIN SMALL LETTER S WITH ACUTE -U+015E # RET LATIN CAPITAL LETTER S WITH CEDILLA -U+015F # RET LATIN SMALL LETTER S WITH CEDILLA -U+0160 # RET LATIN CAPITAL LETTER S WITH CARON -U+0161 # RET LATIN SMALL LETTER S WITH CARON -U+0162 # RET LATIN CAPITAL LETTER T WITH CEDILLA -U+0163 # RET LATIN SMALL LETTER T WITH CEDILLA -U+0164 # RET LATIN CAPITAL LETTER T WITH CARON -U+0165 # RET LATIN SMALL LETTER T WITH CARON -U+0168 # RET LATIN CAPITAL LETTER U WITH TILDE -U+0169 # RET LATIN SMALL LETTER U WITH TILDE -U+016A # RET LATIN CAPITAL LETTER U WITH MACRON -U+016B # RET LATIN SMALL LETTER U WITH MACRON -U+016E # RET LATIN CAPITAL LETTER U WITH RING ABOVE -U+016F # RET LATIN SMALL LETTER U WITH RING ABOVE -U+0170 # RET LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -U+0171 # RET LATIN SMALL LETTER U WITH DOUBLE ACUTE -U+0172 # RET LATIN CAPITAL LETTER U WITH OGONEK -U+0173 # RET LATIN SMALL LETTER U WITH OGONEK -U+0174 # RET LATIN CAPITAL LETTER W WITH CIRCUMFLEX -U+0175 # RET LATIN SMALL LETTER W WITH CIRCUMFLEX -U+0178 # RET LATIN CAPITAL LETTER Y WITH DIAERESIS -U+0179 # RET LATIN CAPITAL LETTER Z WITH ACUTE -U+017A # RET LATIN SMALL LETTER Z WITH ACUTE -U+017B # RET LATIN CAPITAL LETTER Z WITH DOT ABOVE -U+017C # RET LATIN SMALL LETTER Z WITH DOT ABOVE -U+017D # RET LATIN CAPITAL LETTER Z WITH CARON -U+017E # RET LATIN SMALL LETTER Z WITH CARON -U+0186 # RET LATIN CAPITAL LETTER OPEN O -U+0190 # RET LATIN CAPITAL LETTER OPEN E -U+0192 # RET LATIN SMALL LETTER F WITH HOOK -U+019D # RET LATIN CAPITAL LETTER N WITH LEFT HOOK -U+0218 # RET LATIN CAPITAL LETTER S WITH COMMA BELOW -U+0219 # RET LATIN SMALL LETTER S WITH COMMA BELOW -U+021A # RET LATIN CAPITAL LETTER T WITH COMMA BELOW -U+021B # RET LATIN SMALL LETTER T WITH COMMA BELOW -U+0232 # RET LATIN CAPITAL LETTER Y WITH MACRON -U+0233 # RET LATIN SMALL LETTER Y WITH MACRON -U+0254 # RET LATIN SMALL LETTER OPEN O -U+025B # RET LATIN SMALL LETTER OPEN E -U+0272 # RET LATIN SMALL LETTER N WITH LEFT HOOK -U+1EBD # RET LATIN SMALL LETTER E WITH TILDE -U+1EF9 # RET LATIN SMALL LETTER Y WITH TILDE diff --git a/bdf2psf/standard.equivalents b/bdf2psf/standard.equivalents @@ -1,519 +0,0 @@ -# When the source font supports several symbols from a class, the last -# supported symbol is used. -# -# History: -# -# 2005-07-04 Initial version based on xos4-2.dup file from the suite -# of the Terminus font - © Dimitar Toshkov Zhekov (GPL) -# with changes. -# 2005-07-08 Add Kelvin sign = K -# 2005-07-12 1. Use U+003F (QUESTION MARK) as U+FFFD (REPLACEMENT CHARACTER) -# 2. Approximate the Kelvin sign by the letter K, -# not the letter K by the Kelvin sign -# 3. Add Angstrom sign (U+212B) = A with dot above (U+00C5) -# 2006-01-14 Use U+2666 (BLACK DIAMOND SUIT) instead of the question mark -# as U+FFFD (REPLACEMENT CHARACTER). It seems that all -# current fonts support the diamond suit. -# 2006-10-20 1. Add some capital Greek letters -# 2. Approximate U+2501 (BOX DRAWINGS HEAVY HORIZONTAL) by -# U+2500 (BOX DRAWINGS LIGHT HORIZONTAL) -# 2006-10-26 Approximate some symbols used by popular applications: -# 1. Use the black square (U+25A0, required symbol) as -# approximation for the black vertical rectangle -# (U+25AE) -# 2. Use the bullet (U+2022) to approximate the black -# circle (U+25CF). It seems all current fonts support -# the bullet. -# 3. Use the up-, down-, right- and leftwards arrows -# (U+2190-U+2193) as approximations for the triangles -# (U+25B2, U+25B6, U+25BC and U+25C0). -# 4. Use the light horizontal line (U+2500, a required -# symbol) as approximation for the heavy horizontal -# line (U+2501) -# 5. Use the left- and right-pointing double angle -# quotation marks as approximation for the signs much -# less-than and much greater-than. All current fonts -# support these quotation marks. -# 2009-07-07 U+0F0B (TIBETAN MARK INTERSYLLABIC TSHEG) = -# = U+0F0C (TIBETAN MARK DELIMITER TSHEG BSTAR) -# 2009-11-20 Add approximations for rudimentary support of toilet-fonts: -# 1. Cyrcled symbols. -# 2. Box drawings heavy. -# 2009-12-7 Add approximations for some symbols, required by mc -# (white diamond, containing black small diamond and black -# small triangles) - -# SOME EXPERIMENTAL NOT VERY ACURATE APPROXIMATIONS -# For symbols used by some popular slang, dialog, whiptail, and -# curses-based applications. - -U+25CF U+2022 -# U+25CF: BLACK CIRCLE -# U+2022: BULLET -U+25AE U+25A0 -# U+25AE: BLACK VERTICAL RECTANGLE -# U+25A0: BLACK SQUARE -U+25B4 U+25B2 U+2191 -# U+25B4: BLACK UP-POINTING SMALL TRIANGLE -# U+25B2: BLACK UP-POINTING TRIANGLE -# U+2191: UPWARDS ARROW -U+25BE U+25BC U+2193 -# U+25BE: BLACK DOWN-POINTING SMALL TRIANGLE -# U+25BC: BLACK DOWN-POINTING TRIANGLE -# U+2193: DOWNWARDS ARROW -U+25C2 U+25C0 U+2190 -# U+25C2: BLACK LEFT-POINTING SMALL TRIANGLE -# U+25C0: BLACK LEFT-POINTING TRIANGLE -# U+2190: LEFTWARDS ARROW -U+25B8 U+25B6 U+2192 -# U+25B8: BLACK RIGHT-POINTING SMALL TRIANGLE -# U+25B6: BLACK RIGHT-POINTING TRIANGLE -# U+2192: RIGHTWARDS ARROW -U+226A U+00AB -# U+226A: MUCH LESS-THAN -# U+00AB: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -U+226B U+00BB -# U+226B: MUCH GREATER-THAN -# U+00BB: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - - -# CYRCLED SYMBOLS - -U+2295 U+0025 -# U+2295: CIRCLED PLUS -# U+0025: PERCENT SIGN -U+2298 U+002F -# U+2298: CIRCLED DIVISION SLASH -# U+002F: SOLIDUS -U+2299 U+002E -# U+2299: CIRCLED DOT OPERATOR -# U+002E: FULL STOP -U+229B U+002A -# U+229B: CIRCLED ASTERISK OPERATOR -# U+002A: ASTERISK -U+229C U+003D -# U+229C: CIRCLED EQUALS -# U+003D: EQUALS SIGN -U+24EA U+0030 -# U+24EA: CIRCLED DIGIT ZERO -# U+0030: DIGIT ZERO -U+2460 U+0031 -# U+2460: CIRCLED DIGIT ONE -# U+0031: DIGIT ONE -U+2461 U+0032 -# U+2461: CIRCLED DIGIT TWO -# U+0032: DIGIT TWO -U+2462 U+0033 -# U+2462: CIRCLED DIGIT THREE -# U+0033: DIGIT THREE -U+2463 U+0034 -# U+2463: CIRCLED DIGIT FOUR -# U+0034: DIGIT FOUR -U+2464 U+0035 -# U+2464: CIRCLED DIGIT FIVE -# U+0035: DIGIT FIVE -U+2465 U+0036 -# U+2465: CIRCLED DIGIT SIX -# U+0036: DIGIT SIX -U+2466 U+0037 -# U+2466: CIRCLED DIGIT SEVEN -# U+0037: DIGIT SEVEN -U+2467 U+0038 -# U+2467: CIRCLED DIGIT EIGHT -# U+0038: DIGIT EIGHT -U+2468 U+0039 -# U+2468: CIRCLED DIGIT NINE -# U+0039: DIGIT NINE -U+24B9 U+0044 -# U+24B9: CIRCLED LATIN CAPITAL LETTER D -# U+0044: LATIN CAPITAL LETTER D -U+24BB U+0046 -# U+24BB: CIRCLED LATIN CAPITAL LETTER F -# U+0046: LATIN CAPITAL LETTER F -U+24BC U+0047 -# U+24BC: CIRCLED LATIN CAPITAL LETTER G -# U+0047: LATIN CAPITAL LETTER G -U+24C1 U+004C -# U+24C1: CIRCLED LATIN CAPITAL LETTER L -# U+004C: LATIN CAPITAL LETTER L -U+24C6 U+0051 -# U+24C6: CIRCLED LATIN CAPITAL LETTER Q -# U+0051: LATIN CAPITAL LETTER Q -U+24C7 U+0052 -# U+24C7: CIRCLED LATIN CAPITAL LETTER R -# U+0052: LATIN CAPITAL LETTER R -U+24CA U+0055 -# U+24CA: CIRCLED LATIN CAPITAL LETTER U -# U+0055: LATIN CAPITAL LETTER U -U+24CB U+0056 -# U+24CB: CIRCLED LATIN CAPITAL LETTER V -# U+0056: LATIN CAPITAL LETTER V -U+24CC U+0057 -# U+24CC: CIRCLED LATIN CAPITAL LETTER W -# U+0057: LATIN CAPITAL LETTER W -U+24D1 U+0062 -# U+24D1: CIRCLED LATIN SMALL LETTER B -# U+0062: LATIN SMALL LETTER B -U+24D3 U+0064 -# U+24D3: CIRCLED LATIN SMALL LETTER D -# U+0064: LATIN SMALL LETTER D -U+24D5 U+0066 -# U+24D5: CIRCLED LATIN SMALL LETTER F -# U+0066: LATIN SMALL LETTER F -U+24D6 U+0067 -# U+24D6: CIRCLED LATIN SMALL LETTER G -# U+0067: LATIN SMALL LETTER G -U+24D7 U+0068 -# U+24D7: CIRCLED LATIN SMALL LETTER H -# U+0068: LATIN SMALL LETTER H -U+24DA U+006B -# U+24DA: CIRCLED LATIN SMALL LETTER K -# U+006B: LATIN SMALL LETTER K -U+24DB U+006C -# U+24DB: CIRCLED LATIN SMALL LETTER L -# U+006C: LATIN SMALL LETTER L -U+24DC U+006D -# U+24DC: CIRCLED LATIN SMALL LETTER M -# U+006D: LATIN SMALL LETTER M -U+24DD U+006E -# U+24DD: CIRCLED LATIN SMALL LETTER N -# U+006E: LATIN SMALL LETTER N -U+24E0 U+0071 -# U+24E0: CIRCLED LATIN SMALL LETTER Q -# U+0071: LATIN SMALL LETTER Q -U+24E1 U+0072 -# U+24E1: CIRCLED LATIN SMALL LETTER R -# U+0072: LATIN SMALL LETTER R -U+24E2 U+0073 -# U+24E2: CIRCLED LATIN SMALL LETTER S -# U+0073: LATIN SMALL LETTER S -U+24E3 U+0074 -# U+24E3: CIRCLED LATIN SMALL LETTER T -# U+0074: LATIN SMALL LETTER T -U+24E4 U+0075 -# U+24E4: CIRCLED LATIN SMALL LETTER U -# U+0075: LATIN SMALL LETTER U -U+24E5 U+0076 -# U+24E5: CIRCLED LATIN SMALL LETTER V -# U+0076: LATIN SMALL LETTER V -U+24E6 U+0077 -# U+24E6: CIRCLED LATIN SMALL LETTER W -# U+0077: LATIN SMALL LETTER W -U+24E9 U+007A -# U+24E9: CIRCLED LATIN SMALL LETTER Z -# U+007A: LATIN SMALL LETTER Z - - -# BOX DRAWINGS HEAVY - -U+2574 U+2578 U+2576 U+257A U+257C U+257E U+2501 U+2500 -# U+2574: BOX DRAWINGS LIGHT LEFT -# U+2578: BOX DRAWINGS HEAVY LEFT -# U+2576: BOX DRAWINGS LIGHT RIGHT -# U+257A: BOX DRAWINGS HEAVY RIGHT -# U+257C: BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT -# U+257E: BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT -# U+2501: BOX DRAWINGS HEAVY HORIZONTAL -# U+2500: BOX DRAWINGS LIGHT HORIZONTAL -U+2575 U+2579 U+2577 U+257B U+257D U+257F U+2503 U+2502 -# U+2575: BOX DRAWINGS LIGHT UP -# U+2579: BOX DRAWINGS HEAVY UP -# U+2577: BOX DRAWINGS LIGHT DOWN -# U+257B: BOX DRAWINGS HEAVY DOWN -# U+257D: BOX DRAWINGS LIGHT UP AND HEAVY DOWN -# U+257F: BOX DRAWINGS HEAVY UP AND LIGHT DOWN -# U+2503: BOX DRAWINGS HEAVY VERTICAL -# U+2502: BOX DRAWINGS LIGHT VERTICAL -U+2505 U+2504 -# U+2505: BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL -# U+2504: BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL -U+2507 U+2506 -# U+2507: BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL -# U+2506: BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL -U+2509 U+2508 -# U+2509: BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL -# U+2508: BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL -U+250B U+250A -# U+250B: BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL -# U+250A: BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL -U+250D U+250E U+250F U+250C -# U+250D: BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY -# U+250E: BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT -# U+250F: BOX DRAWINGS HEAVY DOWN AND RIGHT -# U+250C: BOX DRAWINGS LIGHT DOWN AND RIGHT -U+2511 U+2512 U+2513 U+2510 -# U+2511: BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY -# U+2512: BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT -# U+2513: BOX DRAWINGS HEAVY DOWN AND LEFT -# U+2510: BOX DRAWINGS LIGHT DOWN AND LEFT -U+2515 U+2516 U+2517 U+2514 -# U+2515: BOX DRAWINGS UP LIGHT AND RIGHT HEAVY -# U+2516: BOX DRAWINGS UP HEAVY AND RIGHT LIGHT -# U+2517: BOX DRAWINGS HEAVY UP AND RIGHT -# U+2514: BOX DRAWINGS LIGHT UP AND RIGHT -U+2519 U+251A U+251B U+2518 -# U+2519: BOX DRAWINGS UP LIGHT AND LEFT HEAVY -# U+251A: BOX DRAWINGS UP HEAVY AND LEFT LIGHT -# U+251B: BOX DRAWINGS HEAVY UP AND LEFT -# U+2518: BOX DRAWINGS LIGHT UP AND LEFT -U+251D U+251E U+251F U+2520 U+2521 U+2522 U+2523 U+251C -# U+251D: BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY -# U+251E: BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT -# U+251F: BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT -# U+2520: BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT -# U+2521: BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY -# U+2522: BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY -# U+2523: BOX DRAWINGS HEAVY VERTICAL AND RIGHT -# U+251C: BOX DRAWINGS LIGHT VERTICAL AND RIGHT -U+2525 U+2526 U+2527 U+2528 U+2529 U+252A U+252B U+2524 -# U+2525: BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY -# U+2526: BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT -# U+2527: BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT -# U+2528: BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT -# U+2529: BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY -# U+252A: BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY -# U+252B: BOX DRAWINGS HEAVY VERTICAL AND LEFT -# U+2524: BOX DRAWINGS LIGHT VERTICAL AND LEFT -U+252D U+252E U+252F U+2530 U+2531 U+2532 U+2533 U+252C -# U+252D: BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT -# U+252E: BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT -# U+252F: BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY -# U+2530: BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT -# U+2531: BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY -# U+2532: BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY -# U+2533: BOX DRAWINGS HEAVY DOWN AND HORIZONTAL -# U+252C: BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -U+2535 U+2536 U+2537 U+2538 U+2539 U+253A U+253B U+2534 -# U+2535: BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT -# U+2536: BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT -# U+2537: BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY -# U+2538: BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT -# U+2539: BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY -# U+253A: BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY -# U+253B: BOX DRAWINGS HEAVY UP AND HORIZONTAL -# U+2534: BOX DRAWINGS LIGHT UP AND HORIZONTAL -U+253D U+253E U+253F U+2540 U+2541 U+2542 U+2543 U+2544 U+2545 U+2546 U+2547 U+2548 U+2549 U+254A U+254B U+253C -# U+253D: BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT -# U+253E: BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT -# U+253F: BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY -# U+2540: BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT -# U+2541: BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT -# U+2542: BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT -# U+2543: BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT -# U+2544: BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT -# U+2545: BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT -# U+2546: BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT -# U+2547: BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY -# U+2548: BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY -# U+2549: BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY -# U+254A: BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY -# U+254B: BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL -# U+253C: BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -U+254D U+254C -# U+254D: BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL -# U+254C: BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL -U+254F U+254E -# U+254F: BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL -# U+254E: BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL - -# STANDARD APPROXIMATIONS - -U+FFFD U+25C8 U+2666 -# U+FFFD: REPLACEMENT CHARACTER -# U+25C8: WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND -# U+2666: BLACK DIAMOND SUIT -U+200A U+2009 U+2008 U+2007 U+2006 U+2005 U+2004 U+2003 U+2002 U+2001 U+2000 U+00A0 U+0020 -# U+200A: HAIR SPACE -# U+2009: THIN SPACE -# U+2008: PUNCTUATION SPACE -# U+2007: FIGURE SPACE -# U+2006: SIX-PER-EM SPACE -# U+2005: FOUR-PER-EM SPACE -# U+2004: THREE-PER-EM SPACE -# U+2003: EM SPACE -# U+2002: EN SPACE -# U+2001: EM QUAD -# U+2000: EN QUAD -# U+00A0: NO-BREAK SPACE -# U+0020: SPACE -U+2296 U+2011 U+2010 U+00AD U+2212 U+2013 U+2012 U+002D -# U+2296: CIRCLED MINUS -# U+2011: NON-BREAKING HYPHEN -# U+2010: HYPHEN -# U+00AD: SOFT HYPHEN -# U+2212: MINUS SIGN -# U+2013: EN DASH -# U+2012: FIGURE DASH -# U+002D: HYPHEN-MINUS -U+2015 U+2014 -# U+2015: HORIZONTAL BAR -# U+2014: EM DASH -U+02C9 U+00AF -# U+02C9: MODIFIER LETTER MACRON -# U+00AF: MACRON -U+03BC U+00B5 -# U+03BC: GREEK SMALL LETTER MU -# U+00B5: MICRO SIGN -U+2126 U+03A9 -# U+2126: OHM SIGN -# U+03A9: GREEK CAPITAL LETTER OMEGA -U+041F U+03A0 -# U+041F: CYRILLIC CAPITAL LETTER PE -# U+03A0: GREEK CAPITAL LETTER PI -U+0424 U+03A6 -# U+0424: CYRILLIC CAPITAL LETTER EF -# U+03A6: GREEK CAPITAL LETTER PHI -U+212B U+00C5 -# U+212B: ANGSTROM SIGN -# U+00C5: LATIN CAPITAL LETTER A WITH RING ABOVE -U+0110 U+00D0 # ??? -# U+0110: LATIN CAPITAL LETTER D WITH STROKE -# U+00D0: LATIN CAPITAL LETTER ETH -U+0394 U+2206 -# U+0394: GREEK CAPITAL LETTER DELTA -# U+2206: INCREMENT -U+0413 U+0393 -# U+0413: CYRILLIC CAPITAL LETTER GHE -# U+0393: GREEK CAPITAL LETTER GAMMA -U+24B6 U+0391 U+0410 U+0041 -# U+24B6: CIRCLED LATIN CAPITAL LETTER A -# U+0391: GREEK CAPITAL LETTER ALPHA -# U+0410: CYRILLIC CAPITAL LETTER A -# U+0041: LATIN CAPITAL LETTER A -U+24B7 U+0392 U+0412 U+0042 -# U+24B7: CIRCLED LATIN CAPITAL LETTER B -# U+0392: GREEK CAPITAL LETTER BETA -# U+0412: CYRILLIC CAPITAL LETTER VE -# U+0042: LATIN CAPITAL LETTER B -U+24B8 U+0421 U+0043 -# U+24B8: CIRCLED LATIN CAPITAL LETTER C -# U+0421: CYRILLIC CAPITAL LETTER ES -# U+0043: LATIN CAPITAL LETTER C -U+24BA U+0395 U+0415 U+0045 -# U+24BA: CIRCLED LATIN CAPITAL LETTER E -# U+0395: GREEK CAPITAL LETTER EPSILON -# U+0415: CYRILLIC CAPITAL LETTER IE -# U+0045: LATIN CAPITAL LETTER E -U+24BD U+0397 U+041D U+0048 -# U+24BD: CIRCLED LATIN CAPITAL LETTER H -# U+0397: GREEK CAPITAL LETTER ETA -# U+041D: CYRILLIC CAPITAL LETTER EN -# U+0048: LATIN CAPITAL LETTER H -U+24BE U+0399 U+0406 U+0049 -# U+24BE: CIRCLED LATIN CAPITAL LETTER I -# U+0399: GREEK CAPITAL LETTER IOTA -# U+0406: CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -# U+0049: LATIN CAPITAL LETTER I -U+24BF U+0408 U+004A -# U+24BF: CIRCLED LATIN CAPITAL LETTER J -# U+0408: CYRILLIC CAPITAL LETTER JE -# U+004A: LATIN CAPITAL LETTER J -U+24C0 U+212A U+039A U+041A U+004B -# U+24C0: CIRCLED LATIN CAPITAL LETTER K -# U+212A: KELVIN SIGN -# U+039A: GREEK CAPITAL LETTER KAPPA -# U+041A: CYRILLIC CAPITAL LETTER KA -# U+004B: LATIN CAPITAL LETTER K -U+24C2 U+039C U+041C U+004D -# U+24C2: CIRCLED LATIN CAPITAL LETTER M -# U+039C: GREEK CAPITAL LETTER MU -# U+041C: CYRILLIC CAPITAL LETTER EM -# U+004D: LATIN CAPITAL LETTER M -U+24C3 U+039D U+004E -# U+24C3: CIRCLED LATIN CAPITAL LETTER N -# U+039D: GREEK CAPITAL LETTER NU -# U+004E: LATIN CAPITAL LETTER N -U+24C4 U+039F U+041E U+004F -# U+24C4: CIRCLED LATIN CAPITAL LETTER O -# U+039F: GREEK CAPITAL LETTER OMICRON -# U+041E: CYRILLIC CAPITAL LETTER O -# U+004F: LATIN CAPITAL LETTER O -U+24C5 U+03A1 U+0420 U+0050 -# U+24C5: CIRCLED LATIN CAPITAL LETTER P -# U+03A1: GREEK CAPITAL LETTER RHO -# U+0420: CYRILLIC CAPITAL LETTER ER -# U+0050: LATIN CAPITAL LETTER P -U+24C8 U+0405 U+0053 -# U+24C8: CIRCLED LATIN CAPITAL LETTER S -# U+0405: CYRILLIC CAPITAL LETTER DZE -# U+0053: LATIN CAPITAL LETTER S -U+24C9 U+03A4 U+0422 U+0054 -# U+24C9: CIRCLED LATIN CAPITAL LETTER T -# U+03A4: GREEK CAPITAL LETTER TAU -# U+0422: CYRILLIC CAPITAL LETTER TE -# U+0054: LATIN CAPITAL LETTER T -U+24CD U+03A7 U+0425 U+0058 -# U+24CD: CIRCLED LATIN CAPITAL LETTER X -# U+03A7: GREEK CAPITAL LETTER CHI -# U+0425: CYRILLIC CAPITAL LETTER HA -# U+0058: LATIN CAPITAL LETTER X -U+24CE U+04AE U+0059 -# U+24CE: CIRCLED LATIN CAPITAL LETTER Y -# U+04AE: CYRILLIC CAPITAL LETTER STRAIGHT U -# U+0059: LATIN CAPITAL LETTER Y -U+24CF U+0396 U+005A -# U+24CF: CIRCLED LATIN CAPITAL LETTER Z -# U+0396: GREEK CAPITAL LETTER ZETA -# U+005A: LATIN CAPITAL LETTER Z -U+24D0 U+0430 U+0061 -# U+24D0: CIRCLED LATIN SMALL LETTER A -# U+0430: CYRILLIC SMALL LETTER A -# U+0061: LATIN SMALL LETTER A -U+24D2 U+0441 U+0063 -# U+24D2: CIRCLED LATIN SMALL LETTER C -# U+0441: CYRILLIC SMALL LETTER ES -# U+0063: LATIN SMALL LETTER C -U+24D4 U+0435 U+0065 -# U+24D4: CIRCLED LATIN SMALL LETTER E -# U+0435: CYRILLIC SMALL LETTER IE -# U+0065: LATIN SMALL LETTER E -U+24D8 U+0456 U+0069 -# U+24D8: CIRCLED LATIN SMALL LETTER I -# U+0456: CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -# U+0069: LATIN SMALL LETTER I -U+24D9 U+0458 U+006A -# U+24D9: CIRCLED LATIN SMALL LETTER J -# U+0458: CYRILLIC SMALL LETTER JE -# U+006A: LATIN SMALL LETTER J -U+24DE U+043E U+006F -# U+24DE: CIRCLED LATIN SMALL LETTER O -# U+043E: CYRILLIC SMALL LETTER O -# U+006F: LATIN SMALL LETTER O -U+24DF U+0440 U+0070 -# U+24DF: CIRCLED LATIN SMALL LETTER P -# U+0440: CYRILLIC SMALL LETTER ER -# U+0070: LATIN SMALL LETTER P -U+24E2 U+0455 U+0073 -# U+24E2: CIRCLED LATIN SMALL LETTER S -# U+0455: CYRILLIC SMALL LETTER DZE -# U+0073: LATIN SMALL LETTER S -U+24E7 U+0445 U+0078 -# U+24E7: CIRCLED LATIN SMALL LETTER X -# U+0445: CYRILLIC SMALL LETTER HA -# U+0078: LATIN SMALL LETTER X -U+24E8 U+0443 U+0079 -# U+24E8: CIRCLED LATIN SMALL LETTER Y -# U+0443: CYRILLIC SMALL LETTER U -# U+0079: LATIN SMALL LETTER Y -U+0401 U+00CB -# U+0401: CYRILLIC CAPITAL LETTER IO -# U+00CB: LATIN CAPITAL LETTER E WITH DIAERESIS -U+0407 U+00CF -# U+0407: CYRILLIC CAPITAL LETTER YI -# U+00CF: LATIN CAPITAL LETTER I WITH DIAERESIS -U+0451 U+00EB -# U+0451: CYRILLIC SMALL LETTER IO -# U+00EB: LATIN SMALL LETTER E WITH DIAERESIS -U+0457 U+00EF -# U+0457: CYRILLIC SMALL LETTER YI -# U+00EF: LATIN SMALL LETTER I WITH DIAERESIS -U+04D0 U+0102 -# U+04D0: CYRILLIC CAPITAL LETTER A WITH BREVE -# U+0102: LATIN CAPITAL LETTER A WITH BREVE -U+04D1 U+0103 -# U+04D1: CYRILLIC SMALL LETTER A WITH BREVE -# U+0103: LATIN SMALL LETTER A WITH BREVE -U+0F0C U+0F0B -# U+0F0C: TIBETAN MARK DELIMITER TSHEG BSTAR -# U+0F0B: TIBETAN MARK INTERSYLLABIC TSHEG - diff --git a/miniwi.psfu b/miniwi.psfu Binary files differ.