liblouis-rb 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +520 -0
- data/README.md +100 -0
- data/Rakefile +80 -0
- data/ext/liblouis/braille_character.c +200 -0
- data/ext/liblouis/braille_table.c +198 -0
- data/ext/liblouis/braille_text.c +223 -0
- data/ext/liblouis/extconf.rb +73 -0
- data/ext/liblouis/liblouis.c +168 -0
- data/ext/liblouis/liblouis_ext.h +49 -0
- data/ext/liblouis/table_source.c +161 -0
- data/ext/liblouis/translation.c +443 -0
- data/liblouis-rb.gemspec +49 -0
- data/spec/liblouis_spec.rb +62 -0
- data/test/integration/packaging_test.rb +82 -0
- data/test/table_source_cases.rb +9 -0
- data/test/test_braille_character.rb +62 -0
- data/test/test_braille_table.rb +379 -0
- data/test/test_braille_text.rb +30 -0
- data/test/test_helper.rb +7 -0
- data/test/translation_cases.rb +33 -0
- data/vendor/liblouis/COPYING +674 -0
- data/vendor/liblouis/COPYING.LESSER +502 -0
- data/vendor/liblouis/configure.ac +290 -0
- data/vendor/liblouis/liblouis/commonTranslationFunctions.c +95 -0
- data/vendor/liblouis/liblouis/compileTranslationTable.c +5515 -0
- data/vendor/liblouis/liblouis/internal.h +781 -0
- data/vendor/liblouis/liblouis/liblouis.h.in +514 -0
- data/vendor/liblouis/liblouis/logging.c +233 -0
- data/vendor/liblouis/liblouis/lou_backTranslateString.c +1855 -0
- data/vendor/liblouis/liblouis/lou_translateString.c +4177 -0
- data/vendor/liblouis/liblouis/maketable.c +463 -0
- data/vendor/liblouis/liblouis/metadata.c +1258 -0
- data/vendor/liblouis/liblouis/pattern.c +1632 -0
- data/vendor/liblouis/liblouis/utils.c +448 -0
- data/vendor/liblouis/tables/Es-Es-G0.utb +248 -0
- data/vendor/liblouis/tables/IPA-unicode-range.uti +200 -0
- data/vendor/liblouis/tables/IPA.utb +164 -0
- data/vendor/liblouis/tables/Lv-Lv-g1.utb +509 -0
- data/vendor/liblouis/tables/Makefile.am +503 -0
- data/vendor/liblouis/tables/Pl-Pl-g1.utb +312 -0
- data/vendor/liblouis/tables/README +6 -0
- data/vendor/liblouis/tables/afr-za-g1.ctb +63 -0
- data/vendor/liblouis/tables/afr-za-g2.ctb +1050 -0
- data/vendor/liblouis/tables/akk-borger.utb +997 -0
- data/vendor/liblouis/tables/akk.utb +1002 -0
- data/vendor/liblouis/tables/ancient-languages-borger.utb +114 -0
- data/vendor/liblouis/tables/ancient-languages-us.utb +114 -0
- data/vendor/liblouis/tables/ar-ar-comp8.utb +293 -0
- data/vendor/liblouis/tables/ar-ar-g1-core.uti +291 -0
- data/vendor/liblouis/tables/ar-ar-g1.utb +26 -0
- data/vendor/liblouis/tables/ar-ar-g2.ctb +447 -0
- data/vendor/liblouis/tables/ar-ar-math.uti +501 -0
- data/vendor/liblouis/tables/ar.tbl +17 -0
- data/vendor/liblouis/tables/as-in-g1.utb +27 -0
- data/vendor/liblouis/tables/as.tbl +18 -0
- data/vendor/liblouis/tables/aw-in-g1.utb +27 -0
- data/vendor/liblouis/tables/awa.tbl +18 -0
- data/vendor/liblouis/tables/ba.utb +64 -0
- data/vendor/liblouis/tables/be-in-g1.utb +27 -0
- data/vendor/liblouis/tables/bel-comp.utb +42 -0
- data/vendor/liblouis/tables/bel-detailed.utb +32 -0
- data/vendor/liblouis/tables/bel.utb +61 -0
- data/vendor/liblouis/tables/bengali.cti +238 -0
- data/vendor/liblouis/tables/bg.ctb +215 -0
- data/vendor/liblouis/tables/bg.dis +84 -0
- data/vendor/liblouis/tables/bg.tbl +21 -0
- data/vendor/liblouis/tables/bg.utb +454 -0
- data/vendor/liblouis/tables/bh.ctb +24 -0
- data/vendor/liblouis/tables/bh.tbl +17 -0
- data/vendor/liblouis/tables/bn.tbl +18 -0
- data/vendor/liblouis/tables/bo.ctb +184 -0
- data/vendor/liblouis/tables/bo.tbl +21 -0
- data/vendor/liblouis/tables/boxes.ctb +162 -0
- data/vendor/liblouis/tables/br-in-g1.utb +27 -0
- data/vendor/liblouis/tables/bra.tbl +18 -0
- data/vendor/liblouis/tables/braille-patterns.cti +287 -0
- data/vendor/liblouis/tables/ca-chardefs.cti +225 -0
- data/vendor/liblouis/tables/ca-g1.ctb +46 -0
- data/vendor/liblouis/tables/ca.tbl +18 -0
- data/vendor/liblouis/tables/chr-us-g1.ctb +180 -0
- data/vendor/liblouis/tables/ckb-chardefs.cti +219 -0
- data/vendor/liblouis/tables/ckb-g1.ctb +31 -0
- data/vendor/liblouis/tables/ckb-translation.cti +131 -0
- data/vendor/liblouis/tables/ckb.tbl +18 -0
- data/vendor/liblouis/tables/compress.cti +44 -0
- data/vendor/liblouis/tables/controlchars.cti +27 -0
- data/vendor/liblouis/tables/cop-eg-comp8.utb +255 -0
- data/vendor/liblouis/tables/cop.utb +231 -0
- data/vendor/liblouis/tables/corrections.cti +47 -0
- data/vendor/liblouis/tables/countries.cti +263 -0
- data/vendor/liblouis/tables/critical-apparatus.uti +54 -0
- data/vendor/liblouis/tables/cs-chardefs.cti +385 -0
- data/vendor/liblouis/tables/cs-comp8.utb +405 -0
- data/vendor/liblouis/tables/cs-g1.ctb +37 -0
- data/vendor/liblouis/tables/cs-translation.cti +63 -0
- data/vendor/liblouis/tables/cs.tbl +20 -0
- data/vendor/liblouis/tables/cuneiform-transliterated-compact.utb +432 -0
- data/vendor/liblouis/tables/cuneiform-transliterated.utb +160 -0
- data/vendor/liblouis/tables/cy-cy-g1.utb +487 -0
- data/vendor/liblouis/tables/cy-cy-g2.ctb +199 -0
- data/vendor/liblouis/tables/cy.tbl +19 -0
- data/vendor/liblouis/tables/da-dk-6miscChars.cti +385 -0
- data/vendor/liblouis/tables/da-dk-6miscChars_1993.cti +412 -0
- data/vendor/liblouis/tables/da-dk-8miscChars.cti +90 -0
- data/vendor/liblouis/tables/da-dk-8miscChars_1993.cti +102 -0
- data/vendor/liblouis/tables/da-dk-g08.ctb +290 -0
- data/vendor/liblouis/tables/da-dk-g08_1993.ctb +331 -0
- data/vendor/liblouis/tables/da-dk-g16-lit_1993.ctb +294 -0
- data/vendor/liblouis/tables/da-dk-g16.ctb +289 -0
- data/vendor/liblouis/tables/da-dk-g16_1993.ctb +305 -0
- data/vendor/liblouis/tables/da-dk-g18.ctb +545 -0
- data/vendor/liblouis/tables/da-dk-g18_1993.ctb +563 -0
- data/vendor/liblouis/tables/da-dk-g2.dic +7439 -0
- data/vendor/liblouis/tables/da-dk-g26-lit_1993.ctb +898 -0
- data/vendor/liblouis/tables/da-dk-g26.ctb +1345 -0
- data/vendor/liblouis/tables/da-dk-g26_1993.ctb +1127 -0
- data/vendor/liblouis/tables/da-dk-g26l-lit_1993.ctb +588 -0
- data/vendor/liblouis/tables/da-dk-g26l_1993.ctb +604 -0
- data/vendor/liblouis/tables/da-dk-g28.ctb +2426 -0
- data/vendor/liblouis/tables/da-dk-g28_1993.ctb +2063 -0
- data/vendor/liblouis/tables/da-dk-g28l_1993.ctb +1594 -0
- data/vendor/liblouis/tables/da-dk-octobraille.dis +316 -0
- data/vendor/liblouis/tables/da-dk-octobraille_1993.dis +313 -0
- data/vendor/liblouis/tables/de-accents-detailed.cti +214 -0
- data/vendor/liblouis/tables/de-accents.cti +214 -0
- data/vendor/liblouis/tables/de-chardefs6.cti +289 -0
- data/vendor/liblouis/tables/de-chardefs8.cti +278 -0
- data/vendor/liblouis/tables/de-chess.ctb +37 -0
- data/vendor/liblouis/tables/de-comp6.utb +226 -0
- data/vendor/liblouis/tables/de-de-comp8.ctb +492 -0
- data/vendor/liblouis/tables/de-de.dis +331 -0
- data/vendor/liblouis/tables/de-eurobrl6.dis +101 -0
- data/vendor/liblouis/tables/de-eurobrl6u.dis +96 -0
- data/vendor/liblouis/tables/de-g0-core.uti +732 -0
- data/vendor/liblouis/tables/de-g0-detailed.utb +84 -0
- data/vendor/liblouis/tables/de-g0.utb +57 -0
- data/vendor/liblouis/tables/de-g1-core-patterns.dic +4863 -0
- data/vendor/liblouis/tables/de-g1-core.cti +67 -0
- data/vendor/liblouis/tables/de-g1-detailed.ctb +79 -0
- data/vendor/liblouis/tables/de-g1.ctb +54 -0
- data/vendor/liblouis/tables/de-g2-core-patterns.dic +26711 -0
- data/vendor/liblouis/tables/de-g2-core.cti +607 -0
- data/vendor/liblouis/tables/de-g2-detailed.ctb +60 -0
- data/vendor/liblouis/tables/de-g2.ctb +57 -0
- data/vendor/liblouis/tables/devanagari.cti +325 -0
- data/vendor/liblouis/tables/digits6Dots.uti +30 -0
- data/vendor/liblouis/tables/digits6DotsPlusDot6.uti +30 -0
- data/vendor/liblouis/tables/digits8Dots.uti +30 -0
- data/vendor/liblouis/tables/dra.ctb +23 -0
- data/vendor/liblouis/tables/dra.tbl +21 -0
- data/vendor/liblouis/tables/el.ctb +775 -0
- data/vendor/liblouis/tables/en-GB-g2.ctb +829 -0
- data/vendor/liblouis/tables/en-chardefs.cti +193 -0
- data/vendor/liblouis/tables/en-chess.ctb +37 -0
- data/vendor/liblouis/tables/en-g3-patterns.dic +11194 -0
- data/vendor/liblouis/tables/en-g3.ctb +2261 -0
- data/vendor/liblouis/tables/en-gb-comp8.ctb +282 -0
- data/vendor/liblouis/tables/en-gb-g1.utb +527 -0
- data/vendor/liblouis/tables/en-in-g1.ctb +162 -0
- data/vendor/liblouis/tables/en-nabcc.utb +166 -0
- data/vendor/liblouis/tables/en-nz-g1.utb +65 -0
- data/vendor/liblouis/tables/en-nz-g2.ctb +46 -0
- data/vendor/liblouis/tables/en-ueb-chardefs.uti +938 -0
- data/vendor/liblouis/tables/en-ueb-g1.ctb +167 -0
- data/vendor/liblouis/tables/en-ueb-g2.ctb +3925 -0
- data/vendor/liblouis/tables/en-ueb-math.ctb +71 -0
- data/vendor/liblouis/tables/en-us-brf.dis +102 -0
- data/vendor/liblouis/tables/en-us-comp6.ctb +149 -0
- data/vendor/liblouis/tables/en-us-comp8-ext.utb +626 -0
- data/vendor/liblouis/tables/en-us-comp8.ctb +62 -0
- data/vendor/liblouis/tables/en-us-compbrl.uti +69 -0
- data/vendor/liblouis/tables/en-us-emphasis.uti +45 -0
- data/vendor/liblouis/tables/en-us-g1.ctb +199 -0
- data/vendor/liblouis/tables/en-us-g2.ctb +1081 -0
- data/vendor/liblouis/tables/en-us-interline.ctb +1126 -0
- data/vendor/liblouis/tables/en-us-mathtext.ctb +880 -0
- data/vendor/liblouis/tables/en_CA.ctb +195 -0
- data/vendor/liblouis/tables/en_CA.tbl +21 -0
- data/vendor/liblouis/tables/en_GB.tbl +26 -0
- data/vendor/liblouis/tables/en_US-comp8-ext.tbl +15 -0
- data/vendor/liblouis/tables/en_US.tbl +26 -0
- data/vendor/liblouis/tables/eo-g1-x-system.ctb +85 -0
- data/vendor/liblouis/tables/eo-g1.ctb +165 -0
- data/vendor/liblouis/tables/eo.tbl +14 -0
- data/vendor/liblouis/tables/es-chardefs.cti +206 -0
- data/vendor/liblouis/tables/es-g1.ctb +36 -0
- data/vendor/liblouis/tables/es-g2.ctb +955 -0
- data/vendor/liblouis/tables/es-new.dis +284 -0
- data/vendor/liblouis/tables/es-no.utb +79 -0
- data/vendor/liblouis/tables/es-old.dis +284 -0
- data/vendor/liblouis/tables/es.tbl +19 -0
- data/vendor/liblouis/tables/et-6dot.utb +269 -0
- data/vendor/liblouis/tables/et-g0.utb +139 -0
- data/vendor/liblouis/tables/ethio-g1.ctb +335 -0
- data/vendor/liblouis/tables/eurodefs.cti +107 -0
- data/vendor/liblouis/tables/fa-ir-comp8.ctb +250 -0
- data/vendor/liblouis/tables/fa-ir-g1.utb +311 -0
- data/vendor/liblouis/tables/fi-fi-8dot.ctb +278 -0
- data/vendor/liblouis/tables/fi.utb +354 -0
- data/vendor/liblouis/tables/fil-g2.ctb +491 -0
- data/vendor/liblouis/tables/fr-bfu-comp6-puncs-math.uti +351 -0
- data/vendor/liblouis/tables/fr-bfu-comp6.utb +238 -0
- data/vendor/liblouis/tables/fr-bfu-comp68.cti +251 -0
- data/vendor/liblouis/tables/fr-bfu-comp8.utb +323 -0
- data/vendor/liblouis/tables/fr-bfu-g2.ctb +4644 -0
- data/vendor/liblouis/tables/ga-g1.utb +95 -0
- data/vendor/liblouis/tables/ga-g2.ctb +231 -0
- data/vendor/liblouis/tables/gd.ctb +123 -0
- data/vendor/liblouis/tables/gd.tbl +21 -0
- data/vendor/liblouis/tables/gez.tbl +21 -0
- data/vendor/liblouis/tables/gon.ctb +25 -0
- data/vendor/liblouis/tables/gon.tbl +17 -0
- data/vendor/liblouis/tables/gr-pl-comp8.uti +256 -0
- data/vendor/liblouis/tables/grc-international-common.uti +104 -0
- data/vendor/liblouis/tables/grc-international-composed.uti +268 -0
- data/vendor/liblouis/tables/grc-international-decomposed.uti +268 -0
- data/vendor/liblouis/tables/grc-international-en-composed.utb +54 -0
- data/vendor/liblouis/tables/grc-international-en.utb +206 -0
- data/vendor/liblouis/tables/grc-international-es.utb +228 -0
- data/vendor/liblouis/tables/gu-in-g1.utb +27 -0
- data/vendor/liblouis/tables/gu.tbl +18 -0
- data/vendor/liblouis/tables/gujarati.cti +221 -0
- data/vendor/liblouis/tables/gurumuki.cti +393 -0
- data/vendor/liblouis/tables/haw-us-g1.ctb +54 -0
- data/vendor/liblouis/tables/hbo-cantillated-rules.uti +71 -0
- data/vendor/liblouis/tables/hbo-cantillated.utb +109 -0
- data/vendor/liblouis/tables/hbo-common-rules.uti +152 -0
- data/vendor/liblouis/tables/hbo-ihbc-rules.uti +58 -0
- data/vendor/liblouis/tables/hbo-slim-rules.uti +68 -0
- data/vendor/liblouis/tables/hbo-slim.utb +100 -0
- data/vendor/liblouis/tables/hbo.utb +107 -0
- data/vendor/liblouis/tables/he-IL-comp8.utb +464 -0
- data/vendor/liblouis/tables/he-IL.utb +406 -0
- data/vendor/liblouis/tables/he-common-consonants.uti +102 -0
- data/vendor/liblouis/tables/he-common-vowels-ihbc.uti +161 -0
- data/vendor/liblouis/tables/hi-in-g1.utb +27 -0
- data/vendor/liblouis/tables/hi.tbl +18 -0
- data/vendor/liblouis/tables/hr-chardefs.cti +278 -0
- data/vendor/liblouis/tables/hr-comp8.tbl +21 -0
- data/vendor/liblouis/tables/hr-comp8.utb +239 -0
- data/vendor/liblouis/tables/hr-digits.uti +40 -0
- data/vendor/liblouis/tables/hr-g1.ctb +36 -0
- data/vendor/liblouis/tables/hr-g1.tbl +9 -0
- data/vendor/liblouis/tables/hr-translation.cti +364 -0
- data/vendor/liblouis/tables/ht-frenchcompatibility.uti +61 -0
- data/vendor/liblouis/tables/ht-g1.utb +114 -0
- data/vendor/liblouis/tables/hu-backtranslate-correction.dis +38 -0
- data/vendor/liblouis/tables/hu-backtranslate-word-corrections.cti +4293 -0
- data/vendor/liblouis/tables/hu-chardefs.cti +298 -0
- data/vendor/liblouis/tables/hu-exceptionwords.cti +3204 -0
- data/vendor/liblouis/tables/hu-hu-comp8.ctb +183 -0
- data/vendor/liblouis/tables/hu-hu-g1.ctb +129 -0
- data/vendor/liblouis/tables/hu-hu-g1_braille_input.cti +486 -0
- data/vendor/liblouis/tables/hu-hu-g2.ctb +270 -0
- data/vendor/liblouis/tables/hu-hu-g2_exceptions.cti +1164 -0
- data/vendor/liblouis/tables/hy.ctb +121 -0
- data/vendor/liblouis/tables/hy.tbl +21 -0
- data/vendor/liblouis/tables/hyph_cs_CZ.dic +3637 -0
- data/vendor/liblouis/tables/hyph_da_DK.dic +8896 -0
- data/vendor/liblouis/tables/hyph_de_DE.dic +5799 -0
- data/vendor/liblouis/tables/hyph_en_US.dic +5537 -0
- data/vendor/liblouis/tables/hyph_eo.dic +1024 -0
- data/vendor/liblouis/tables/hyph_es_ES.dic +877 -0
- data/vendor/liblouis/tables/hyph_fr_FR.dic +1067 -0
- data/vendor/liblouis/tables/hyph_hu_HU.dic +98519 -0
- data/vendor/liblouis/tables/hyph_it_IT.dic +410 -0
- data/vendor/liblouis/tables/hyph_nb_NO.dic +27142 -0
- data/vendor/liblouis/tables/hyph_nl_NL.dic +12725 -0
- data/vendor/liblouis/tables/hyph_nn_NO.dic +27142 -0
- data/vendor/liblouis/tables/hyph_pl_PL.dic +4074 -0
- data/vendor/liblouis/tables/hyph_pt_PT.dic +308 -0
- data/vendor/liblouis/tables/hyph_ru.dic +6480 -0
- data/vendor/liblouis/tables/hyph_sv_SE.dic +4697 -0
- data/vendor/liblouis/tables/is-chardefs6.cti +170 -0
- data/vendor/liblouis/tables/is-chardefs8.cti +293 -0
- data/vendor/liblouis/tables/is.ctb +157 -0
- data/vendor/liblouis/tables/is.tbl +18 -0
- data/vendor/liblouis/tables/it-it-comp6.utb +404 -0
- data/vendor/liblouis/tables/it-it-comp8.utb +663 -0
- data/vendor/liblouis/tables/iu-ca-g1.ctb +236 -0
- data/vendor/liblouis/tables/ja-kantenji-ucs2.utb +11448 -0
- data/vendor/liblouis/tables/ja-kantenji.utb +53 -0
- data/vendor/liblouis/tables/ja-rokutenkanji.utb +8710 -0
- data/vendor/liblouis/tables/ka-in-g1.utb +27 -0
- data/vendor/liblouis/tables/ka.utb +128 -0
- data/vendor/liblouis/tables/kannada.cti +282 -0
- data/vendor/liblouis/tables/kh-in-g1.utb +26 -0
- data/vendor/liblouis/tables/kha.tbl +18 -0
- data/vendor/liblouis/tables/kk.utb +77 -0
- data/vendor/liblouis/tables/km-g1.utb +412 -0
- data/vendor/liblouis/tables/kmr.tbl +108 -0
- data/vendor/liblouis/tables/kn.tbl +18 -0
- data/vendor/liblouis/tables/ko-2006-g1.ctb +49 -0
- data/vendor/liblouis/tables/ko-2006-g2.ctb +53 -0
- data/vendor/liblouis/tables/ko-2006.cti +190 -0
- data/vendor/liblouis/tables/ko-chars.cti +15140 -0
- data/vendor/liblouis/tables/ko-g1-rules.cti +634 -0
- data/vendor/liblouis/tables/ko-g1.ctb +48 -0
- data/vendor/liblouis/tables/ko-g2-rules.cti +9263 -0
- data/vendor/liblouis/tables/ko-g2.ctb +52 -0
- data/vendor/liblouis/tables/ko.cti +223 -0
- data/vendor/liblouis/tables/kok.ctb +24 -0
- data/vendor/liblouis/tables/kok.tbl +17 -0
- data/vendor/liblouis/tables/kru.ctb +24 -0
- data/vendor/liblouis/tables/kru.tbl +17 -0
- data/vendor/liblouis/tables/ks-in-g1.utb +27 -0
- data/vendor/liblouis/tables/latinLetterDef6Dots.uti +78 -0
- data/vendor/liblouis/tables/latinLetterDef8Dots.uti +75 -0
- data/vendor/liblouis/tables/latinLowercase.uti +389 -0
- data/vendor/liblouis/tables/latinUppercaseComp6.uti +78 -0
- data/vendor/liblouis/tables/lg-ug-g1.utb +60 -0
- data/vendor/liblouis/tables/litdigits6Dots.uti +30 -0
- data/vendor/liblouis/tables/litdigits6DotsPlusDot6.uti +30 -0
- data/vendor/liblouis/tables/lo-g1.utb +3127 -0
- data/vendor/liblouis/tables/loweredDigits6Dots.uti +30 -0
- data/vendor/liblouis/tables/loweredDigits8Dots.uti +30 -0
- data/vendor/liblouis/tables/lt-6dot.utb +308 -0
- data/vendor/liblouis/tables/lt-8dot.utb +281 -0
- data/vendor/liblouis/tables/lt.ctb +313 -0
- data/vendor/liblouis/tables/lv.tbl +22 -0
- data/vendor/liblouis/tables/maketablelist.sh +52 -0
- data/vendor/liblouis/tables/malayalam.cti +674 -0
- data/vendor/liblouis/tables/mao-nz-g1.ctb +65 -0
- data/vendor/liblouis/tables/marburg_single_cell_defs.cti +66 -0
- data/vendor/liblouis/tables/marburg_unicode_defs.cti +297 -0
- data/vendor/liblouis/tables/mk-g1.utb +240 -0
- data/vendor/liblouis/tables/ml-in-g1.utb +27 -0
- data/vendor/liblouis/tables/ml.tbl +21 -0
- data/vendor/liblouis/tables/mn-MN-common.cti +110 -0
- data/vendor/liblouis/tables/mn-MN-g1.utb +52 -0
- data/vendor/liblouis/tables/mn-MN-g2.ctb +50 -0
- data/vendor/liblouis/tables/mn-in-g1.utb +27 -0
- data/vendor/liblouis/tables/mni.tbl +18 -0
- data/vendor/liblouis/tables/mr-in-g1.utb +27 -0
- data/vendor/liblouis/tables/mr.tbl +18 -0
- data/vendor/liblouis/tables/ms-my-g2.ctb +4897 -0
- data/vendor/liblouis/tables/mt.ctb +114 -0
- data/vendor/liblouis/tables/mt.tbl +21 -0
- data/vendor/liblouis/tables/mun.ctb +24 -0
- data/vendor/liblouis/tables/mun.tbl +17 -0
- data/vendor/liblouis/tables/mwr.ctb +24 -0
- data/vendor/liblouis/tables/mwr.tbl +17 -0
- data/vendor/liblouis/tables/my-g1.utb +771 -0
- data/vendor/liblouis/tables/my-g2.ctb +3805 -0
- data/vendor/liblouis/tables/ne.ctb +22 -0
- data/vendor/liblouis/tables/ne.tbl +18 -0
- data/vendor/liblouis/tables/nemethdefs.cti +382 -0
- data/vendor/liblouis/tables/nl-BE.dis +532 -0
- data/vendor/liblouis/tables/nl-NL-g0.utb.in +646 -0
- data/vendor/liblouis/tables/nl-chardefs.uti.in +455 -0
- data/vendor/liblouis/tables/nl-comp8.utb +411 -0
- data/vendor/liblouis/tables/nl-print.dis +551 -0
- data/vendor/liblouis/tables/nl-unicode.dis +540 -0
- data/vendor/liblouis/tables/no-no-8dot-fallback-6dot-g0.utb +59 -0
- data/vendor/liblouis/tables/no-no-8dot.utb +629 -0
- data/vendor/liblouis/tables/no-no-braillo-047-01.dis +247 -0
- data/vendor/liblouis/tables/no-no-chardefs6.uti +305 -0
- data/vendor/liblouis/tables/no-no-comp8.ctb +323 -0
- data/vendor/liblouis/tables/no-no-cyrillic6dot.uti +95 -0
- data/vendor/liblouis/tables/no-no-g0.utb +320 -0
- data/vendor/liblouis/tables/no-no-g1.ctb +272 -0
- data/vendor/liblouis/tables/no-no-g2.ctb +737 -0
- data/vendor/liblouis/tables/no-no-g3.ctb +3597 -0
- data/vendor/liblouis/tables/no-no-generic.ctb +295 -0
- data/vendor/liblouis/tables/no-no-generic.dis +295 -0
- data/vendor/liblouis/tables/no-no-latinLetterDef6Dots_diacritics.uti +852 -0
- data/vendor/liblouis/tables/no-no.dis +291 -0
- data/vendor/liblouis/tables/np-in-g1.utb +27 -0
- data/vendor/liblouis/tables/nso-za-g1.utb +38 -0
- data/vendor/liblouis/tables/nso-za-g2.ctb +38 -0
- data/vendor/liblouis/tables/ny-mw.utb +70 -0
- data/vendor/liblouis/tables/or-in-g1.utb +27 -0
- data/vendor/liblouis/tables/or.tbl +18 -0
- data/vendor/liblouis/tables/oriya.cti +238 -0
- data/vendor/liblouis/tables/ovd-6g0.utb +64 -0
- data/vendor/liblouis/tables/ovd-8g0.utb +81 -0
- data/vendor/liblouis/tables/pa.tbl +18 -0
- data/vendor/liblouis/tables/pi.ctb +24 -0
- data/vendor/liblouis/tables/pi.tbl +17 -0
- data/vendor/liblouis/tables/pl-pl-comp8.ctb +658 -0
- data/vendor/liblouis/tables/pl.tbl +12 -0
- data/vendor/liblouis/tables/printables.cti +70 -0
- data/vendor/liblouis/tables/pt-comp6.utb +299 -0
- data/vendor/liblouis/tables/pt-pt-comp8.ctb +395 -0
- data/vendor/liblouis/tables/pt-pt-g1.utb +1312 -0
- data/vendor/liblouis/tables/pt-pt-g2.ctb +874 -0
- data/vendor/liblouis/tables/pt.tbl +20 -0
- data/vendor/liblouis/tables/pu-in-g1.utb +42 -0
- data/vendor/liblouis/tables/quotation-marks.uti +30 -0
- data/vendor/liblouis/tables/ro-g0.utb +85 -0
- data/vendor/liblouis/tables/ro.ctb +126 -0
- data/vendor/liblouis/tables/ro.tbl +21 -0
- data/vendor/liblouis/tables/ru-brf.dis +116 -0
- data/vendor/liblouis/tables/ru-comp6.utb +258 -0
- data/vendor/liblouis/tables/ru-comp8.utb +740 -0
- data/vendor/liblouis/tables/ru-letters.dis +145 -0
- data/vendor/liblouis/tables/ru-litbrl-detailed.utb +77 -0
- data/vendor/liblouis/tables/ru-litbrl.ctb +857 -0
- data/vendor/liblouis/tables/ru-math.uti +395 -0
- data/vendor/liblouis/tables/ru-ru-g1.ctb +804 -0
- data/vendor/liblouis/tables/ru-unicode.dis +121 -0
- data/vendor/liblouis/tables/rw-rw-g1.utb +133 -0
- data/vendor/liblouis/tables/sa-in-g1.utb +27 -0
- data/vendor/liblouis/tables/sa.tbl +18 -0
- data/vendor/liblouis/tables/sah.utb +72 -0
- data/vendor/liblouis/tables/sd.tbl +18 -0
- data/vendor/liblouis/tables/se-se.ctb +246 -0
- data/vendor/liblouis/tables/se-se.dis +334 -0
- data/vendor/liblouis/tables/si-in-g1.utb +27 -0
- data/vendor/liblouis/tables/sin.cti +213 -0
- data/vendor/liblouis/tables/sin.utb +35 -0
- data/vendor/liblouis/tables/sk-g1.ctb +1019 -0
- data/vendor/liblouis/tables/sk-sk-g1.utb +206 -0
- data/vendor/liblouis/tables/sk-sk.utb +112 -0
- data/vendor/liblouis/tables/sl-si-comp8.ctb +204 -0
- data/vendor/liblouis/tables/sl-si-g1.utb +471 -0
- data/vendor/liblouis/tables/sl.tbl +20 -0
- data/vendor/liblouis/tables/smi-6g0.utb +64 -0
- data/vendor/liblouis/tables/smi-8g0.utb +61 -0
- data/vendor/liblouis/tables/sot-za-g1.ctb +72 -0
- data/vendor/liblouis/tables/sot-za-g2.ctb +244 -0
- data/vendor/liblouis/tables/spaces.uti +62 -0
- data/vendor/liblouis/tables/sr-Cyrl.ctb +59 -0
- data/vendor/liblouis/tables/sr-common.cti +161 -0
- data/vendor/liblouis/tables/sr-cyrletters.cti +92 -0
- data/vendor/liblouis/tables/sr-g1.ctb +57 -0
- data/vendor/liblouis/tables/sr-latletters.cti +45 -0
- data/vendor/liblouis/tables/sv-1989.ctb +241 -0
- data/vendor/liblouis/tables/sv-1996.ctb +180 -0
- data/vendor/liblouis/tables/sv-6common.uti +1199 -0
- data/vendor/liblouis/tables/sv-6g0d.utb +508 -0
- data/vendor/liblouis/tables/sv-6g0p.utb +61 -0
- data/vendor/liblouis/tables/sv-6g1.uti +106 -0
- data/vendor/liblouis/tables/sv-6g1d.ctb +57 -0
- data/vendor/liblouis/tables/sv-6g2.uti +254 -0
- data/vendor/liblouis/tables/sv-6g2d.ctb +57 -0
- data/vendor/liblouis/tables/sv-8g0d.utb +495 -0
- data/vendor/liblouis/tables/sv-8g0n.utb +1236 -0
- data/vendor/liblouis/tables/sv-8g1.uti +199 -0
- data/vendor/liblouis/tables/sv-8g1d.ctb +73 -0
- data/vendor/liblouis/tables/sv-8g1n.ctb +73 -0
- data/vendor/liblouis/tables/sv-8g2.uti +486 -0
- data/vendor/liblouis/tables/sv-8g2d.ctb +73 -0
- data/vendor/liblouis/tables/sv-8g2n.ctb +73 -0
- data/vendor/liblouis/tables/sv-g0.utb +65 -0
- data/vendor/liblouis/tables/sv-g1.ctb +57 -0
- data/vendor/liblouis/tables/sv-g2.ctb +57 -0
- data/vendor/liblouis/tables/sv-phon.uti +241 -0
- data/vendor/liblouis/tables/sw-ke-g1-2.ctb +90 -0
- data/vendor/liblouis/tables/sw-ke-g1-3.ctb +109 -0
- data/vendor/liblouis/tables/sw-ke-g1-4.ctb +107 -0
- data/vendor/liblouis/tables/sw-ke-g1-5.ctb +73 -0
- data/vendor/liblouis/tables/sw-ke-g1.utb +278 -0
- data/vendor/liblouis/tables/sw-ke-g2.ctb +276 -0
- data/vendor/liblouis/tables/syc.utb +195 -0
- data/vendor/liblouis/tables/ta-ta-g1.ctb +167 -0
- data/vendor/liblouis/tables/ta.ctb +24 -0
- data/vendor/liblouis/tables/ta.tbl +21 -0
- data/vendor/liblouis/tables/tamil.cti +86 -0
- data/vendor/liblouis/tables/te-in-g1.utb +27 -0
- data/vendor/liblouis/tables/te.tbl +18 -0
- data/vendor/liblouis/tables/telugu.cti +239 -0
- data/vendor/liblouis/tables/text_nabcc.dis +426 -0
- data/vendor/liblouis/tables/th-comp8-backward.utb +226 -0
- data/vendor/liblouis/tables/th-g0.utb +177 -0
- data/vendor/liblouis/tables/th-g1.utb +89 -0
- data/vendor/liblouis/tables/th-g1.uti +315 -0
- data/vendor/liblouis/tables/th-g2.ctb +616 -0
- data/vendor/liblouis/tables/tr-g1.ctb +254 -0
- data/vendor/liblouis/tables/tr-g2.ctb +863 -0
- data/vendor/liblouis/tables/tr-g2.tbl +20 -0
- data/vendor/liblouis/tables/tr.ctb +324 -0
- data/vendor/liblouis/tables/tr.tbl +21 -0
- data/vendor/liblouis/tables/tsn-za-g1.ctb +33 -0
- data/vendor/liblouis/tables/tsn-za-g2.ctb +33 -0
- data/vendor/liblouis/tables/tt.utb +74 -0
- data/vendor/liblouis/tables/uga.utb +86 -0
- data/vendor/liblouis/tables/uk-comp.utb +53 -0
- data/vendor/liblouis/tables/uk-detailed.utb +32 -0
- data/vendor/liblouis/tables/uk.utb +101 -0
- data/vendor/liblouis/tables/ukchardefs.cti +106 -0
- data/vendor/liblouis/tables/ukmaths_single_cell_defs.cti +65 -0
- data/vendor/liblouis/tables/ukmaths_unicode_defs.cti +298 -0
- data/vendor/liblouis/tables/uni-text.dis +330 -0
- data/vendor/liblouis/tables/unicode-braille.utb +291 -0
- data/vendor/liblouis/tables/unicode-without-blank.dis +24 -0
- data/vendor/liblouis/tables/unicode.dis +278 -0
- data/vendor/liblouis/tables/ur-pk-g1.utb +248 -0
- data/vendor/liblouis/tables/ur-pk-g2.ctb +641 -0
- data/vendor/liblouis/tables/us-table.dis +67 -0
- data/vendor/liblouis/tables/uz-g1.utb +117 -0
- data/vendor/liblouis/tables/ve-za-g1.utb +69 -0
- data/vendor/liblouis/tables/ve-za-g2.ctb +208 -0
- data/vendor/liblouis/tables/vi-cb8.utb +49 -0
- data/vendor/liblouis/tables/vi-charsdef.uti +36 -0
- data/vendor/liblouis/tables/vi-lettersdef.uti +401 -0
- data/vendor/liblouis/tables/vi-puncsdef.uti +446 -0
- data/vendor/liblouis/tables/vi-saigon-g1.ctb +530 -0
- data/vendor/liblouis/tables/vi-vn-g0.utb +135 -0
- data/vendor/liblouis/tables/vi-vn-g1.ctb +574 -0
- data/vendor/liblouis/tables/vi-vn-g2.ctb +743 -0
- data/vendor/liblouis/tables/wiskunde-chardefs.cti +261 -0
- data/vendor/liblouis/tables/wordcx.dis +91 -0
- data/vendor/liblouis/tables/xh-za-g1.utb +61 -0
- data/vendor/liblouis/tables/xh-za-g2.ctb +386 -0
- data/vendor/liblouis/tables/yi.utb +236 -0
- data/vendor/liblouis/tables/zh-chn.ctb +45011 -0
- data/vendor/liblouis/tables/zh-hk.ctb +10461 -0
- data/vendor/liblouis/tables/zh-tw.ctb +53810 -0
- data/vendor/liblouis/tables/zh_CHN.tbl +23 -0
- data/vendor/liblouis/tables/zhcn-cbs.ctb +31523 -0
- data/vendor/liblouis/tables/zhcn-g1.ctb +26523 -0
- data/vendor/liblouis/tables/zhcn-g2.ctb +26519 -0
- data/vendor/liblouis/tables/zu-za-g1.utb +33 -0
- data/vendor/liblouis/tables/zu-za-g2.ctb +33 -0
- metadata +558 -0
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
/* liblouis Braille Translation and Back-Translation Library
|
|
2
|
+
|
|
3
|
+
Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by The
|
|
4
|
+
BRLTTY Team
|
|
5
|
+
|
|
6
|
+
Copyright (C) 2004, 2005, 2006 ViewPlus Technologies, Inc. www.viewplus.com
|
|
7
|
+
Copyright (C) 2004, 2005, 2006 JJB Software, Inc. www.jjb-software.com
|
|
8
|
+
Copyright (C) 2016 Mike Gray, American Printing House for the Blind
|
|
9
|
+
Copyright (C) 2016 Davy Kager, Dedicon
|
|
10
|
+
|
|
11
|
+
This file is part of liblouis.
|
|
12
|
+
|
|
13
|
+
liblouis is free software: you can redistribute it and/or modify it
|
|
14
|
+
under the terms of the GNU Lesser General Public License as published
|
|
15
|
+
by the Free Software Foundation, either version 2.1 of the License, or
|
|
16
|
+
(at your option) any later version.
|
|
17
|
+
|
|
18
|
+
liblouis is distributed in the hope that it will be useful, but
|
|
19
|
+
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
20
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
21
|
+
Lesser General Public License for more details.
|
|
22
|
+
|
|
23
|
+
You should have received a copy of the GNU Lesser General Public
|
|
24
|
+
License along with liblouis. If not, see <http://www.gnu.org/licenses/>.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @file
|
|
29
|
+
* @brief Common utility functions
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
#include "config.h"
|
|
33
|
+
|
|
34
|
+
#include <stddef.h>
|
|
35
|
+
#include <stdlib.h>
|
|
36
|
+
#include <stdio.h>
|
|
37
|
+
#include <stdarg.h>
|
|
38
|
+
#include <string.h>
|
|
39
|
+
#include <ctype.h>
|
|
40
|
+
#include <sys/stat.h>
|
|
41
|
+
|
|
42
|
+
#include "internal.h"
|
|
43
|
+
|
|
44
|
+
/* Contributed by Michel Such <michel.such@free.fr> */
|
|
45
|
+
#ifdef _WIN32
|
|
46
|
+
|
|
47
|
+
/* Adapted from BRLTTY code (see sys_progs_wihdows.h) */
|
|
48
|
+
|
|
49
|
+
#include <shlobj.h>
|
|
50
|
+
|
|
51
|
+
static void *
|
|
52
|
+
reallocWrapper(void *address, size_t size) {
|
|
53
|
+
if (!(address = realloc(address, size)) && size) _lou_outOfMemory();
|
|
54
|
+
return address;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static char *
|
|
58
|
+
strdupWrapper(const char *string) {
|
|
59
|
+
char *address = strdup(string);
|
|
60
|
+
if (!address) _lou_outOfMemory();
|
|
61
|
+
return address;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
char *EXPORT_CALL
|
|
65
|
+
lou_getProgramPath(void) {
|
|
66
|
+
char *path = NULL;
|
|
67
|
+
HMODULE handle;
|
|
68
|
+
|
|
69
|
+
if ((handle = GetModuleHandle(NULL))) {
|
|
70
|
+
DWORD size = 0X80;
|
|
71
|
+
char *buffer = NULL;
|
|
72
|
+
|
|
73
|
+
while (1) {
|
|
74
|
+
buffer = reallocWrapper(buffer, size <<= 1);
|
|
75
|
+
|
|
76
|
+
{
|
|
77
|
+
// As the "UNICODE" Windows define may have been set at compilation,
|
|
78
|
+
// This call must be specifically GetModuleFilenameA as further code
|
|
79
|
+
// expects it to be single byte chars.
|
|
80
|
+
DWORD length = GetModuleFileNameA(handle, buffer, size);
|
|
81
|
+
|
|
82
|
+
if (!length) {
|
|
83
|
+
printf("GetModuleFileName\n");
|
|
84
|
+
exit(3);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (length < size) {
|
|
88
|
+
buffer[length] = 0;
|
|
89
|
+
path = strdupWrapper(buffer);
|
|
90
|
+
|
|
91
|
+
while (length > 0)
|
|
92
|
+
if (path[--length] == '\\') break;
|
|
93
|
+
|
|
94
|
+
strncpy(path, path, length + 1);
|
|
95
|
+
path[length + 1] = '\0';
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
free(buffer);
|
|
102
|
+
} else {
|
|
103
|
+
printf("GetModuleHandle\n");
|
|
104
|
+
exit(3);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return path;
|
|
108
|
+
}
|
|
109
|
+
#endif
|
|
110
|
+
/* End of MS contribution */
|
|
111
|
+
|
|
112
|
+
static widechar
|
|
113
|
+
toLowercase(widechar c, const TranslationTableHeader *table) {
|
|
114
|
+
static TranslationTableOffset offset;
|
|
115
|
+
static TranslationTableCharacter *character;
|
|
116
|
+
offset = table->characters[_lou_charHash(c)];
|
|
117
|
+
while (offset) {
|
|
118
|
+
character = (TranslationTableCharacter *)&table->ruleArea[offset];
|
|
119
|
+
if (character->value == c) {
|
|
120
|
+
if (character->mode & CTC_UpperCase) {
|
|
121
|
+
const TranslationTableCharacter *c = character;
|
|
122
|
+
if (c->basechar)
|
|
123
|
+
c = (TranslationTableCharacter *)&table->ruleArea[c->basechar];
|
|
124
|
+
while (1) {
|
|
125
|
+
if ((c->mode & (character->mode & ~CTC_UpperCase)) ==
|
|
126
|
+
(character->mode & ~CTC_UpperCase))
|
|
127
|
+
return c->value;
|
|
128
|
+
if (!c->linked) break;
|
|
129
|
+
c = (TranslationTableCharacter *)&table->ruleArea[c->linked];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return character->value;
|
|
133
|
+
}
|
|
134
|
+
offset = character->next;
|
|
135
|
+
}
|
|
136
|
+
return c;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
unsigned long int EXPORT_CALL
|
|
140
|
+
_lou_stringHash(const widechar *c, int lowercase, const TranslationTableHeader *table) {
|
|
141
|
+
if (!lowercase)
|
|
142
|
+
return (((unsigned long int)c[0] << 8) + (unsigned long int)c[1]) % HASHNUM;
|
|
143
|
+
else
|
|
144
|
+
return (((unsigned long int)toLowercase(c[0], table) << 8) +
|
|
145
|
+
(unsigned long int)toLowercase(c[1], table)) %
|
|
146
|
+
HASHNUM;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
unsigned long int EXPORT_CALL
|
|
150
|
+
_lou_charHash(widechar c) {
|
|
151
|
+
return (unsigned long int)c % HASHNUM;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const char *EXPORT_CALL
|
|
155
|
+
_lou_showString(widechar const *chars, int length, int forceHex) {
|
|
156
|
+
/* Translate a string of characters to the encoding used in character
|
|
157
|
+
* operands */
|
|
158
|
+
static char scratchBuf[MAXSTRING];
|
|
159
|
+
int bufPos = 0;
|
|
160
|
+
scratchBuf[bufPos++] = '\'';
|
|
161
|
+
|
|
162
|
+
for (int charPos = 0; (charPos < length) && (bufPos < (MAXSTRING - 2));
|
|
163
|
+
charPos += 1) {
|
|
164
|
+
widechar c = chars[charPos];
|
|
165
|
+
|
|
166
|
+
if (!forceHex && isASCII(c)) {
|
|
167
|
+
scratchBuf[bufPos++] = (char)c;
|
|
168
|
+
} else {
|
|
169
|
+
char hexbuf[20];
|
|
170
|
+
int hexLength;
|
|
171
|
+
char escapeLetter;
|
|
172
|
+
|
|
173
|
+
int leadingZeros;
|
|
174
|
+
int hexPos;
|
|
175
|
+
hexLength = sprintf(hexbuf, "%x", c);
|
|
176
|
+
switch (hexLength) {
|
|
177
|
+
case 1:
|
|
178
|
+
case 2:
|
|
179
|
+
case 3:
|
|
180
|
+
case 4:
|
|
181
|
+
escapeLetter = 'x';
|
|
182
|
+
leadingZeros = 4 - hexLength;
|
|
183
|
+
break;
|
|
184
|
+
case 5:
|
|
185
|
+
escapeLetter = 'y';
|
|
186
|
+
leadingZeros = 0;
|
|
187
|
+
break;
|
|
188
|
+
case 6:
|
|
189
|
+
case 7:
|
|
190
|
+
case 8:
|
|
191
|
+
escapeLetter = 'z';
|
|
192
|
+
leadingZeros = 8 - hexLength;
|
|
193
|
+
break;
|
|
194
|
+
default:
|
|
195
|
+
escapeLetter = '?';
|
|
196
|
+
leadingZeros = 0;
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
if ((bufPos + leadingZeros + hexLength + 4) >= (MAXSTRING - 2)) break;
|
|
200
|
+
scratchBuf[bufPos++] = '\\';
|
|
201
|
+
scratchBuf[bufPos++] = escapeLetter;
|
|
202
|
+
for (hexPos = 0; hexPos < leadingZeros; hexPos++) scratchBuf[bufPos++] = '0';
|
|
203
|
+
for (hexPos = 0; hexPos < hexLength; hexPos++)
|
|
204
|
+
scratchBuf[bufPos++] = hexbuf[hexPos];
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
scratchBuf[bufPos++] = '\'';
|
|
208
|
+
scratchBuf[bufPos] = 0;
|
|
209
|
+
return scratchBuf;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Mapping between braille dot and textual representation as used in dots operands
|
|
214
|
+
*/
|
|
215
|
+
static const intCharTupple dotMapping[] = {
|
|
216
|
+
{ LOU_DOT_1, '1' },
|
|
217
|
+
{ LOU_DOT_2, '2' },
|
|
218
|
+
{ LOU_DOT_3, '3' },
|
|
219
|
+
{ LOU_DOT_4, '4' },
|
|
220
|
+
{ LOU_DOT_5, '5' },
|
|
221
|
+
{ LOU_DOT_6, '6' },
|
|
222
|
+
{ LOU_DOT_7, '7' },
|
|
223
|
+
{ LOU_DOT_8, '8' },
|
|
224
|
+
{ LOU_DOT_9, '9' },
|
|
225
|
+
{ LOU_DOT_10, 'A' },
|
|
226
|
+
{ LOU_DOT_11, 'B' },
|
|
227
|
+
{ LOU_DOT_12, 'C' },
|
|
228
|
+
{ LOU_DOT_13, 'D' },
|
|
229
|
+
{ LOU_DOT_14, 'E' },
|
|
230
|
+
{ LOU_DOT_15, 'F' },
|
|
231
|
+
{ 0, 0 },
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Print out dot numbers
|
|
236
|
+
*
|
|
237
|
+
* @return a string containing the dot numbers. The longest possible
|
|
238
|
+
* output is "\123456789ABCDEF0/"
|
|
239
|
+
*/
|
|
240
|
+
const char *EXPORT_CALL
|
|
241
|
+
_lou_unknownDots(widechar dots) {
|
|
242
|
+
static char buffer[20];
|
|
243
|
+
|
|
244
|
+
int k = 0;
|
|
245
|
+
buffer[k++] = '\\';
|
|
246
|
+
|
|
247
|
+
for (int mappingPos = 0; dotMapping[mappingPos].key; mappingPos++) {
|
|
248
|
+
if (dots & dotMapping[mappingPos].key) buffer[k++] = dotMapping[mappingPos].value;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (k == 1) buffer[k++] = '0';
|
|
252
|
+
buffer[k++] = '/';
|
|
253
|
+
buffer[k] = 0;
|
|
254
|
+
return buffer;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Translate a sequence of dots to the encoding used in dots operands.
|
|
259
|
+
*/
|
|
260
|
+
const char *EXPORT_CALL
|
|
261
|
+
_lou_showDots(widechar const *dots, int length) {
|
|
262
|
+
int bufPos = 0;
|
|
263
|
+
static char scratchBuf[MAXSTRING];
|
|
264
|
+
for (int dotsPos = 0; dotsPos < length && bufPos < (MAXSTRING - 1); dotsPos++) {
|
|
265
|
+
for (int mappingPos = 0; dotMapping[mappingPos].key; mappingPos++) {
|
|
266
|
+
if ((dots[dotsPos] & dotMapping[mappingPos].key) &&
|
|
267
|
+
(bufPos < (MAXSTRING - 1)))
|
|
268
|
+
scratchBuf[bufPos++] = dotMapping[mappingPos].value;
|
|
269
|
+
}
|
|
270
|
+
if ((dots[dotsPos] == LOU_DOTS) && (bufPos < (MAXSTRING - 1)))
|
|
271
|
+
scratchBuf[bufPos++] = '0';
|
|
272
|
+
if ((dotsPos != length - 1) && (bufPos < (MAXSTRING - 1)))
|
|
273
|
+
scratchBuf[bufPos++] = '-';
|
|
274
|
+
}
|
|
275
|
+
scratchBuf[bufPos] = 0;
|
|
276
|
+
return scratchBuf;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Mapping between character attribute and textual representation
|
|
281
|
+
*/
|
|
282
|
+
static const intCharTupple attributeMapping[] = {
|
|
283
|
+
{ CTC_Space, 's' },
|
|
284
|
+
{ CTC_Letter, 'l' },
|
|
285
|
+
{ CTC_Digit, 'd' },
|
|
286
|
+
{ CTC_Punctuation, 'p' },
|
|
287
|
+
{ CTC_UpperCase, 'U' },
|
|
288
|
+
{ CTC_LowerCase, 'u' },
|
|
289
|
+
{ CTC_Math, 'm' },
|
|
290
|
+
{ CTC_Sign, 'S' },
|
|
291
|
+
{ CTC_LitDigit, 'D' },
|
|
292
|
+
{ CTC_UserDefined9, 'w' },
|
|
293
|
+
{ CTC_UserDefined10, 'x' },
|
|
294
|
+
{ CTC_UserDefined11, 'y' },
|
|
295
|
+
{ CTC_UserDefined12, 'z' },
|
|
296
|
+
{ 0, 0 },
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Show attributes using the letters used after the $ in multipass
|
|
301
|
+
* opcodes.
|
|
302
|
+
*/
|
|
303
|
+
char *EXPORT_CALL
|
|
304
|
+
_lou_showAttributes(TranslationTableCharacterAttributes a) {
|
|
305
|
+
int bufPos = 0;
|
|
306
|
+
static char scratchBuf[MAXSTRING];
|
|
307
|
+
for (int mappingPos = 0; attributeMapping[mappingPos].key; mappingPos++) {
|
|
308
|
+
if ((a & attributeMapping[mappingPos].key) && bufPos < (MAXSTRING - 1))
|
|
309
|
+
scratchBuf[bufPos++] = attributeMapping[mappingPos].value;
|
|
310
|
+
}
|
|
311
|
+
scratchBuf[bufPos] = 0;
|
|
312
|
+
return scratchBuf;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
void EXPORT_CALL
|
|
316
|
+
_lou_outOfMemory(void) {
|
|
317
|
+
_lou_logMessage(LOU_LOG_FATAL, "liblouis: Insufficient memory\n");
|
|
318
|
+
exit(3);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
#ifdef DEBUG
|
|
322
|
+
void EXPORT_CALL
|
|
323
|
+
_lou_debugHook(void) {
|
|
324
|
+
char *hook = "debug hook";
|
|
325
|
+
printf("%s\n", hook);
|
|
326
|
+
}
|
|
327
|
+
#endif
|
|
328
|
+
|
|
329
|
+
static const int validTranslationModes[] = { noContractions, compbrlAtCursor, dotsIO,
|
|
330
|
+
compbrlLeftCursor, ucBrl, noUndefined, partialTrans };
|
|
331
|
+
|
|
332
|
+
int EXPORT_CALL
|
|
333
|
+
_lou_isValidMode(int mode) {
|
|
334
|
+
// mask out all valid mode bits. If you end up with some bits set
|
|
335
|
+
// then the input isn't valid. See
|
|
336
|
+
// https://en.wikipedia.org/wiki/Material_nonimplication
|
|
337
|
+
for (size_t i = 0;
|
|
338
|
+
i < (sizeof(validTranslationModes) / sizeof(*validTranslationModes)); i++)
|
|
339
|
+
mode &= ~validTranslationModes[i];
|
|
340
|
+
return !mode;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/* Map char to dots according to North American Braille Computer Code (NABCC) */
|
|
344
|
+
widechar EXPORT_CALL
|
|
345
|
+
_lou_charToFallbackDots(widechar c) {
|
|
346
|
+
static const unsigned char charToDots[] = {
|
|
347
|
+
/* ASCII characters 0X00-0X1F - control characters.
|
|
348
|
+
* These won't be referenced so we have room for data.
|
|
349
|
+
* These groups must be in descending order.
|
|
350
|
+
* Each group contains the following four bytes:
|
|
351
|
+
* 1) The first character to which this block applies.
|
|
352
|
+
* 2) The bits to remove from the character.
|
|
353
|
+
* 3) The bits to add to the character.
|
|
354
|
+
* 4) The dots to add to the braille pattern.
|
|
355
|
+
*/
|
|
356
|
+
// clang-format off
|
|
357
|
+
0X7F, 0X20, 0X00, LOU_DOT_7,
|
|
358
|
+
0X60, 0X20, 0X00, 0,
|
|
359
|
+
0X5F, 0X00, 0X00, 0,
|
|
360
|
+
0X40, 0X00, 0X00, LOU_DOT_7,
|
|
361
|
+
0X20, 0X00, 0X00, 0,
|
|
362
|
+
0X00, 0X00, 0X40, LOU_DOT_7 | LOU_DOT_8,
|
|
363
|
+
|
|
364
|
+
// ASCII characters 0X20-0X3F - digits and common symbols.
|
|
365
|
+
[' '] = 0,
|
|
366
|
+
['!'] = LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_6,
|
|
367
|
+
['"'] = LOU_DOT_5,
|
|
368
|
+
['#'] = LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_5 | LOU_DOT_6,
|
|
369
|
+
['$'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_4 | LOU_DOT_6,
|
|
370
|
+
['%'] = LOU_DOT_1 | LOU_DOT_4 | LOU_DOT_6,
|
|
371
|
+
['&'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_6,
|
|
372
|
+
['\''] = LOU_DOT_3,
|
|
373
|
+
['('] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_5 | LOU_DOT_6,
|
|
374
|
+
[')'] = LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_5 | LOU_DOT_6,
|
|
375
|
+
['*'] = LOU_DOT_1 | LOU_DOT_6,
|
|
376
|
+
['+'] = LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_6,
|
|
377
|
+
[','] = LOU_DOT_6,
|
|
378
|
+
['-'] = LOU_DOT_3 | LOU_DOT_6,
|
|
379
|
+
['.'] = LOU_DOT_4 | LOU_DOT_6,
|
|
380
|
+
['/'] = LOU_DOT_3 | LOU_DOT_4,
|
|
381
|
+
['0'] = LOU_DOT_3 | LOU_DOT_5 | LOU_DOT_6,
|
|
382
|
+
['1'] = LOU_DOT_2,
|
|
383
|
+
['2'] = LOU_DOT_2 | LOU_DOT_3,
|
|
384
|
+
['3'] = LOU_DOT_2 | LOU_DOT_5,
|
|
385
|
+
['4'] = LOU_DOT_2 | LOU_DOT_5 | LOU_DOT_6,
|
|
386
|
+
['5'] = LOU_DOT_2 | LOU_DOT_6,
|
|
387
|
+
['6'] = LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_5,
|
|
388
|
+
['7'] = LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_5 | LOU_DOT_6,
|
|
389
|
+
['8'] = LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_6,
|
|
390
|
+
['9'] = LOU_DOT_3 | LOU_DOT_5,
|
|
391
|
+
[':'] = LOU_DOT_1 | LOU_DOT_5 | LOU_DOT_6,
|
|
392
|
+
[';'] = LOU_DOT_5 | LOU_DOT_6,
|
|
393
|
+
['<'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_6,
|
|
394
|
+
['='] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_5 | LOU_DOT_6,
|
|
395
|
+
['>'] = LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_5,
|
|
396
|
+
['?'] = LOU_DOT_1 | LOU_DOT_4 | LOU_DOT_5 | LOU_DOT_6,
|
|
397
|
+
|
|
398
|
+
// ASCII characters 0X40-0X5F - letters and other symbols.
|
|
399
|
+
['@'] = LOU_DOT_4,
|
|
400
|
+
['A'] = LOU_DOT_1,
|
|
401
|
+
['B'] = LOU_DOT_1 | LOU_DOT_2,
|
|
402
|
+
['C'] = LOU_DOT_1 | LOU_DOT_4,
|
|
403
|
+
['D'] = LOU_DOT_1 | LOU_DOT_4 | LOU_DOT_5,
|
|
404
|
+
['E'] = LOU_DOT_1 | LOU_DOT_5,
|
|
405
|
+
['F'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_4,
|
|
406
|
+
['G'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_4 | LOU_DOT_5,
|
|
407
|
+
['H'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_5,
|
|
408
|
+
['I'] = LOU_DOT_2 | LOU_DOT_4,
|
|
409
|
+
['J'] = LOU_DOT_2 | LOU_DOT_4 | LOU_DOT_5,
|
|
410
|
+
['K'] = LOU_DOT_1 | LOU_DOT_3,
|
|
411
|
+
['L'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_3,
|
|
412
|
+
['M'] = LOU_DOT_1 | LOU_DOT_3 | LOU_DOT_4,
|
|
413
|
+
['N'] = LOU_DOT_1 | LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_5,
|
|
414
|
+
['O'] = LOU_DOT_1 | LOU_DOT_3 | LOU_DOT_5,
|
|
415
|
+
['P'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_4,
|
|
416
|
+
['Q'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_5,
|
|
417
|
+
['R'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_5,
|
|
418
|
+
['S'] = LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_4,
|
|
419
|
+
['T'] = LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_5,
|
|
420
|
+
['U'] = LOU_DOT_1 | LOU_DOT_3 | LOU_DOT_6,
|
|
421
|
+
['V'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_3 | LOU_DOT_6,
|
|
422
|
+
['W'] = LOU_DOT_2 | LOU_DOT_4 | LOU_DOT_5 | LOU_DOT_6,
|
|
423
|
+
['X'] = LOU_DOT_1 | LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_6,
|
|
424
|
+
['Y'] = LOU_DOT_1 | LOU_DOT_3 | LOU_DOT_4 | LOU_DOT_5 | LOU_DOT_6,
|
|
425
|
+
['Z'] = LOU_DOT_1 | LOU_DOT_3 | LOU_DOT_5 | LOU_DOT_6,
|
|
426
|
+
['['] = LOU_DOT_2 | LOU_DOT_4 | LOU_DOT_6,
|
|
427
|
+
['\\'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_5 | LOU_DOT_6,
|
|
428
|
+
[']'] = LOU_DOT_1 | LOU_DOT_2 | LOU_DOT_4 | LOU_DOT_5 | LOU_DOT_6,
|
|
429
|
+
['^'] = LOU_DOT_4 | LOU_DOT_5,
|
|
430
|
+
['_'] = LOU_DOT_4 | LOU_DOT_5 | LOU_DOT_6
|
|
431
|
+
// clang-format on
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
if (c >= 0X80) c = '?';
|
|
435
|
+
widechar dots = LOU_DOTS;
|
|
436
|
+
|
|
437
|
+
{
|
|
438
|
+
const unsigned char *p = charToDots;
|
|
439
|
+
while (*p > c) p += 4;
|
|
440
|
+
|
|
441
|
+
c &= ~*++p;
|
|
442
|
+
c |= *++p;
|
|
443
|
+
dots |= *++p;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
dots |= charToDots[c];
|
|
447
|
+
return dots;
|
|
448
|
+
}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# liblouis: Computer Spanish 8 dots Braille table
|
|
2
|
+
#
|
|
3
|
+
# -----------
|
|
4
|
+
#-index-name: Spanish, computer
|
|
5
|
+
#-display-name: Spanish computer braille
|
|
6
|
+
#
|
|
7
|
+
#+language:es
|
|
8
|
+
#+type:computer
|
|
9
|
+
# Marked as "direction:both" by Bue Vester-Andersen
|
|
10
|
+
# as it is a computer Braille table.
|
|
11
|
+
#+direction:both
|
|
12
|
+
# -----------
|
|
13
|
+
#
|
|
14
|
+
# Copyright (C) 2012 by José Enrique Fernández del Campo and Juan Carlos Buño Suárez <quetzatl@eresmas.net>
|
|
15
|
+
#
|
|
16
|
+
# This file is part of liblouis.
|
|
17
|
+
#
|
|
18
|
+
# liblouis is free software: you can redistribute it and/or modify it
|
|
19
|
+
# under the terms of the GNU Lesser General Public License as
|
|
20
|
+
# published by the Free Software Foundation, either version 3 of the
|
|
21
|
+
# License, or (at your option) any later version.
|
|
22
|
+
#
|
|
23
|
+
# liblouis is distributed in the hope that it will be useful, but
|
|
24
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
25
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
26
|
+
# Lesser General Public License for more details.
|
|
27
|
+
#
|
|
28
|
+
# You should have received a copy of the GNU Lesser General Public
|
|
29
|
+
# License along with liblouis. If not, see
|
|
30
|
+
# <http://www.gnu.org/licenses/>.
|
|
31
|
+
#
|
|
32
|
+
# -----------------------------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
# Uncontracted Computer Spanish Table
|
|
35
|
+
# Autor José Enrique Fernández del Campo <jefdelcampo@gmail.com> and Juan Carlos Buño Suárez <quetzatl@eresmas.net>
|
|
36
|
+
# -----------------------------------------------------------------------------
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
space \s 0 # blank 32
|
|
40
|
+
space \t 9 # tab 9
|
|
41
|
+
space \x001B 1b # escape
|
|
42
|
+
space \x000A 0 # lf
|
|
43
|
+
space \x000D 0 # cr
|
|
44
|
+
space \x00A0 0 # Espacio de no separación
|
|
45
|
+
|
|
46
|
+
# all except 0 are the same, so define 0 here to take higher presidence
|
|
47
|
+
# Also define ó (lowercase o acute) not to clash with the definition of 0 in original include.
|
|
48
|
+
digit 0 34678 cero
|
|
49
|
+
uppercase \x00d3 3467 o con acento
|
|
50
|
+
lowercase \x00f3 346 o con acento
|
|
51
|
+
|
|
52
|
+
include digits6DotsPlusDot6.uti
|
|
53
|
+
include latinLetterDef8Dots.uti
|
|
54
|
+
|
|
55
|
+
lowercase \x00e7 123468 c cedilla
|
|
56
|
+
lowercase \x00e1 12356 a con acento
|
|
57
|
+
lowercase \x00e9 2346 e con acento
|
|
58
|
+
lowercase \x00ed 34 i con acento
|
|
59
|
+
lowercase \x00fa 23456 u con acento
|
|
60
|
+
lowercase \x00e0 123568 a grave
|
|
61
|
+
lowercase \x00e8 23468 e grave
|
|
62
|
+
lowercase \x00ec 348 i grave
|
|
63
|
+
lowercase \x00f2 3468 o grave
|
|
64
|
+
lowercase \x00f9 234568 u grave
|
|
65
|
+
lowercase \x00e2 18 a con circunflejo
|
|
66
|
+
lowercase \x00ea 158 e con circunflejo
|
|
67
|
+
lowercase \x00ee 248 i con circunflejo
|
|
68
|
+
lowercase \x00f4 1358 o con circunflejo
|
|
69
|
+
lowercase \x00fb 1368 u con circunflejo
|
|
70
|
+
lowercase \x00e4 3458 a con diéresis
|
|
71
|
+
lowercase \x00eb 12468 e con diéresis
|
|
72
|
+
lowercase \x00ef 258 i con diéresis
|
|
73
|
+
lowercase \x00f6 2468 o con diéresis
|
|
74
|
+
lowercase \x00fc 12568 u con diéresis
|
|
75
|
+
lowercase \x00fd 2348 ye con acento agudo
|
|
76
|
+
lowercase \x00FF 67 ye con diéresis
|
|
77
|
+
lowercase \x00e6 1348 ae
|
|
78
|
+
lowercase \x0153 1238 oe
|
|
79
|
+
lowercase \x009C 1238 oe
|
|
80
|
+
lowercase \x00E3 168 a con tilde
|
|
81
|
+
lowercase \x00F5 4567 o con tilde
|
|
82
|
+
lowercase \x00F1 124568 letra eñe
|
|
83
|
+
uppercase \x00c7 1234678 c cedilla
|
|
84
|
+
uppercase \x00c1 123567 a con acento
|
|
85
|
+
uppercase \x00c9 23467 e con acento
|
|
86
|
+
uppercase \x00cd 347 i con acento
|
|
87
|
+
uppercase \x00da 234567 u con acento
|
|
88
|
+
uppercase \x00c0 1235678 a grave
|
|
89
|
+
uppercase \x00c8 234678 e grave
|
|
90
|
+
uppercase \x00cc 345 i grave
|
|
91
|
+
uppercase \x00d2 2458 o grave
|
|
92
|
+
uppercase \x00d9 2345678 u grave
|
|
93
|
+
uppercase \x00c2 178 a con circunflejo
|
|
94
|
+
uppercase \x00ca 1578 e con circunflejo
|
|
95
|
+
uppercase \x00ce 2478 i con circunflejo
|
|
96
|
+
uppercase \x00d4 13578 o con circunflejo
|
|
97
|
+
uppercase \x00db 13678 u con circunflejo
|
|
98
|
+
uppercase \x00c4 34578 a con diéresis
|
|
99
|
+
uppercase \x00cb 124678 e con diéresis
|
|
100
|
+
uppercase \x00cf 1245678 i con diéresis
|
|
101
|
+
uppercase \x00d6 24678 o con diéresis
|
|
102
|
+
uppercase \x00dc 125678 u con diéresis
|
|
103
|
+
uppercase \x00dd 1567 ye con acento agudo
|
|
104
|
+
uppercase \x009F 367 ye con diéresis
|
|
105
|
+
uppercase \x00c6 38 ae
|
|
106
|
+
uppercase \x0152 1468 oe
|
|
107
|
+
uppercase \x008C 1468 oe
|
|
108
|
+
uppercase \x00C3 3567 a con tilde
|
|
109
|
+
uppercase \x00D5 12458 o con tilde
|
|
110
|
+
uppercase \x00D1 124567 letra eñe
|
|
111
|
+
|
|
112
|
+
punctuation , 2 coma
|
|
113
|
+
punctuation ; 23 punto y coma
|
|
114
|
+
punctuation : 25 dos puntos
|
|
115
|
+
punctuation - 36 guión
|
|
116
|
+
punctuation . 3 punto
|
|
117
|
+
punctuation ? 26 cerrar interrogación
|
|
118
|
+
punctuation ! 2357 cerrar admiración
|
|
119
|
+
punctuation \x0022 56 comillas
|
|
120
|
+
punctuation \x201c 14568 abrir comillas
|
|
121
|
+
punctuation \x201d 12348 cerrar comillas
|
|
122
|
+
punctuation ( 1268 abre paréntesis
|
|
123
|
+
punctuation ) 3457 cierra paréntesis
|
|
124
|
+
punctuation ' 4 apóstrofo
|
|
125
|
+
punctuation \x00ab 238 comillas angulares izquierda
|
|
126
|
+
punctuation \x00bb 567 comillas angulares derecha
|
|
127
|
+
punctuation [ 2367 abre corchetes
|
|
128
|
+
punctuation ] 3568 cierra corchetes
|
|
129
|
+
punctuation { 46 abre llave
|
|
130
|
+
punctuation } 35 cierra llave
|
|
131
|
+
|
|
132
|
+
sign * 256 asterisco
|
|
133
|
+
sign \\ 123456 barra invertida
|
|
134
|
+
sign @ 5 arroba
|
|
135
|
+
sign % 456 por ciento
|
|
136
|
+
sign _ 6 subrayado
|
|
137
|
+
sign # 3456 signo de número
|
|
138
|
+
sign \x0060 58 acento grave
|
|
139
|
+
sign ^ 45 circunflejo
|
|
140
|
+
sign \x007E 57 #126 ~ tilde
|
|
141
|
+
sign \x007C 4568 # barra vertical
|
|
142
|
+
sign \x007F 7 # borrar
|
|
143
|
+
sign \x00a1 23578 # abrir admiración
|
|
144
|
+
sign \x00A6 478 # barra vertical cortada
|
|
145
|
+
sign \x00A7 167 # sección
|
|
146
|
+
sign \x00A8 268 # diéresis
|
|
147
|
+
sign \x00A9 23567 # copyright
|
|
148
|
+
sign \x00AC 257 # guión opcional
|
|
149
|
+
sign \x20AC 12358 # euros
|
|
150
|
+
sign \x00AD 2358 # soft hyphen
|
|
151
|
+
sign \x00AE 2368 # registrado
|
|
152
|
+
sign \x00AF 24568 # macron
|
|
153
|
+
sign \x00B1 12467 # más-menos
|
|
154
|
+
sign \x00B5 13468 # my
|
|
155
|
+
sign \x00B6 14567 # párrafo
|
|
156
|
+
sign \x00B7 14678 # punto centrado
|
|
157
|
+
sign \x00B9 237 # Super uno
|
|
158
|
+
sign \x00BA 5678 # ordinal masculino
|
|
159
|
+
sign \x00AA 23568 # ordinal femenino
|
|
160
|
+
sign \x00BF 267 # abrir interrogación
|
|
161
|
+
sign \x00C5 12368 #*a mayúscula con círculo superescrito
|
|
162
|
+
|
|
163
|
+
sign \x00D0 13458 # letra eth mayúscula
|
|
164
|
+
sign \x00D7 1678 # multiplicado por
|
|
165
|
+
sign \x00D8 34567 # Alfa
|
|
166
|
+
sign \x00DE 123458 # Thorn
|
|
167
|
+
sign \x00DF 128 # Beta
|
|
168
|
+
sign \x00E5 15678 # a con círculo superescrito
|
|
169
|
+
sign \x00F0 235678 # letra eth
|
|
170
|
+
sign \x00F7 2578 # dividido por
|
|
171
|
+
sign \x00F8 457 # latin small letter o with stroke
|
|
172
|
+
sign \x00FE 1568 # thorn
|
|
173
|
+
sign \x00A8 268 diéresis
|
|
174
|
+
|
|
175
|
+
math + 235 más
|
|
176
|
+
math = 2356 igual
|
|
177
|
+
math \x00d7 1678 multiplicado por
|
|
178
|
+
math < 236 menor que
|
|
179
|
+
math > 356 mayor que
|
|
180
|
+
math / 3478 barra oblicua
|
|
181
|
+
math \x00F7 2578 dividido por
|
|
182
|
+
|
|
183
|
+
sign \x00a9 23567 copyright
|
|
184
|
+
sign \x00b0 8 grado
|
|
185
|
+
sign & 12346 ampersand
|
|
186
|
+
sign \x00a2 12678 centavo
|
|
187
|
+
sign \x00a4 2567
|
|
188
|
+
sign \x00a3 2378 libra
|
|
189
|
+
sign \x00a7 167 sección
|
|
190
|
+
sign \x0024 123467 dólar
|
|
191
|
+
sign \x00a5 145678 yen
|
|
192
|
+
sign \x00b9 237 super 1
|
|
193
|
+
sign \x00b2 47 al cuadrado
|
|
194
|
+
sign \x00b3 568 al cubo
|
|
195
|
+
sign \x00bc 1467 un cuarto
|
|
196
|
+
sign \x00bd 468 un medio
|
|
197
|
+
sign \x00be 48 tres cuartos
|
|
198
|
+
|
|
199
|
+
sign \x0081 358 sin nombre
|
|
200
|
+
sign \x0082 37 por
|
|
201
|
+
sign \x201a 37 por
|
|
202
|
+
sign \x0083 1248 signo
|
|
203
|
+
sign \x0192 1248 signo
|
|
204
|
+
sign \x0084 78 signo
|
|
205
|
+
sign \x201e 78 signo
|
|
206
|
+
sign \x0085 1267 elipsis
|
|
207
|
+
sign \x2026 1267 elipsis
|
|
208
|
+
sign \x0086 28 sin nombre
|
|
209
|
+
sign \x2020 28 sin nombre
|
|
210
|
+
sign \x0087 23458 sin nombre
|
|
211
|
+
sign \x2021 23458 sin nombre
|
|
212
|
+
sign \x0088 458 sin nombre
|
|
213
|
+
sign \x02c6 23458 sin nombre
|
|
214
|
+
sign \x0089 45678 sin nombre
|
|
215
|
+
sign \x2030 45678 sin nombre
|
|
216
|
+
sign \x008a 1234568 sh mayúscula
|
|
217
|
+
sign \x0160 1234568 sh mayúscula
|
|
218
|
+
sign \x008b 1258
|
|
219
|
+
sign \x2039 1258
|
|
220
|
+
sign \x008d 357 sin nombre
|
|
221
|
+
sign \x008e 148 sin nombre
|
|
222
|
+
sign \x017d 148 sin nombre
|
|
223
|
+
sign \x008f 58
|
|
224
|
+
sign \x0090 68 sin nombre
|
|
225
|
+
sign \x2018 4 apóstrofo
|
|
226
|
+
sign \x2019 4 apóstrofo
|
|
227
|
+
sign \x0095 1458 signo
|
|
228
|
+
sign \x2022 1458 signo
|
|
229
|
+
sign \x0096 368 guión
|
|
230
|
+
sign \x2013 368 guión
|
|
231
|
+
sign \x0097 3678 guión
|
|
232
|
+
sign \x2014 3678 guión
|
|
233
|
+
sign \x0098 134568 tilde
|
|
234
|
+
sign \x02dc 134568 tilde
|
|
235
|
+
sign \x0099 2467 marca registrada
|
|
236
|
+
sign \x2122 2467 marca registrada
|
|
237
|
+
sign \x009a 34568 signo
|
|
238
|
+
sign \x203a 34568 signo
|
|
239
|
+
sign \x0161 12567 sh
|
|
240
|
+
sign \x009d 25678
|
|
241
|
+
sign \x009e 2568
|
|
242
|
+
sign \x017e 2568
|
|
243
|
+
sign \x009f 367
|
|
244
|
+
sign \x0178 367
|
|
245
|
+
sign \x00b4 467 acento agudo
|
|
246
|
+
sign \x00B8 135678 z con caron
|
|
247
|
+
|
|
248
|
+
noback sign \x25CF 256 black circle
|