This adds support in vncv and vncs for sending/receiving utf-8 text. The problem comes from the RFB protocol which requires special keys to pass through as their keysym encodings (). vncv and vncs do not convert between utf-8 and keysym, therefore they're unusable when one wants to write in foreign characters that don't match keysyms. the two header files (ksym2utf.h and utf2ksym.h) declare arrays with the same names mapping keysym definitions to unicode runes. kbdv.c and kbds.c get the corresponding character when the rune read from /dev/cons or from a client. inadvertantly this fixes a problem with vncv which would cause xterminals not to scroll on ctrl+[PgUp|PgDn]. also changed is the mkfile to add dependency between kbdv.c→utf2ksym.h and kbds.c→ksym2utf.h the arrays add a total of ~32K to the run-time memory image of vncv and vncs. andrey Reference: /n/sources/patch/applied/vnc.utf-keysym Date: Mon Apr 19 00:16:01 CES 2004 --- /sys/src/cmd/vnc/kbds.c Mon Apr 19 00:16:00 2004 +++ /sys/src/cmd/vnc/kbds.c Mon Apr 19 00:16:00 2004 @@ -2,6 +2,7 @@ #include #include "compat.h" #include "kbd.h" +#include "ksym2utf.h" enum { @@ -99,8 +100,12 @@ c = vnckeys[c & 0xff]; if(c == No) return; - }else if(c & ~0xff) - return; + } + /* + * map an xkeysym onto a utf-8 char + */ + if((c & 0xff00) && c < nelem(ksym2utf) && ksym2utf[c] != 0) + c = ksym2utf[c]; /* * keyup only important for shifts --- /sys/src/cmd/vnc/kbdv.c Mon Apr 19 00:16:00 2004 +++ /sys/src/cmd/vnc/kbdv.c Mon Apr 19 00:16:00 2004 @@ -1,5 +1,6 @@ #include "vnc.h" #include +#include "utf2ksym.h" enum { Xshift = 0xFFE1, @@ -88,7 +89,8 @@ readkbd(Vnc *v) { char buf[256], k[10]; - int ctlfd, fd, kr, kn, ks, w, shift, ctl, alt; + ulong ks; + int ctlfd, fd, kr, kn, w, shift, ctl, alt; Rune r; snprint(buf, sizeof buf, "%s/cons", display->devdir); @@ -143,6 +145,12 @@ shift = 1; keyevent(v, Xshift, 1); } + /* + * map an xkeysym onto a utf-8 char. + * allows Xvnc to read us, see utf2ksym.h + */ + if((ks & 0xff00) && ks < nelem(utf2ksym) && utf2ksym[ks] != 0) + ks = utf2ksym[ks]; keyevent(v, ks, 1); /* * up event needed by vmware inside linux vnc server, --- /sys/src/cmd/vnc/ksym2utf.h Thu Jan 1 00:00:00 1970 +++ /sys/src/cmd/vnc/ksym2utf.h Mon Apr 19 00:16:00 2004 @@ -0,0 +1,759 @@ +/* + * VNC uses X11's keysyms defined in X11/keysym.h, this is a converter + * to unicode characters + */ +static ulong +ksym2utf [] = { + [0x01a1] L'Ą', + [0x01a2] L'˘', + [0x01a3] L'Ł', + [0x01a5] L'Ľ', + [0x01a6] L'Ś', + [0x01a9] L'Š', + [0x01aa] L'Ş', + [0x01ab] L'Ť', + [0x01ac] L'Ź', + [0x01ae] L'Ž', + [0x01af] L'Ż', + [0x01b1] L'ą', + [0x01b2] L'˛', + [0x01b3] L'ł', + [0x01b5] L'ľ', + [0x01b6] L'ś', + [0x01b7] L'ˇ', + [0x01b9] L'š', + [0x01ba] L'ş', + [0x01bb] L'ť', + [0x01bc] L'ź', + [0x01bd] L'˝', + [0x01be] L'ž', + [0x01bf] L'ż', + [0x01c0] L'Ŕ', + [0x01c3] L'Ă', + [0x01c5] L'Ĺ', + [0x01c6] L'Ć', + [0x01c8] L'Č', + [0x01ca] L'Ę', + [0x01cc] L'Ě', + [0x01cf] L'Ď', + [0x01d0] L'Đ', + [0x01d1] L'Ń', + [0x01d2] L'Ň', + [0x01d5] L'Ő', + [0x01d8] L'Ř', + [0x01d9] L'Ů', + [0x01db] L'Ű', + [0x01de] L'Ţ', + [0x01e0] L'ŕ', + [0x01e3] L'ă', + [0x01e5] L'ĺ', + [0x01e6] L'ć', + [0x01e8] L'č', + [0x01ea] L'ę', + [0x01ec] L'ě', + [0x01ef] L'ď', + [0x01f0] L'đ', + [0x01f1] L'ń', + [0x01f2] L'ň', + [0x01f5] L'ő', + [0x01f8] L'ř', + [0x01f9] L'ů', + [0x01fb] L'ű', + [0x01fe] L'ţ', + [0x01ff] L'˙', + [0x02a1] L'Ħ', + [0x02a6] L'Ĥ', + [0x02a9] L'İ', + [0x02ab] L'Ğ', + [0x02ac] L'Ĵ', + [0x02b1] L'ħ', + [0x02b6] L'ĥ', + [0x02b9] L'ı', + [0x02bb] L'ğ', + [0x02bc] L'ĵ', + [0x02c5] L'Ċ', + [0x02c6] L'Ĉ', + [0x02d5] L'Ġ', + [0x02d8] L'Ĝ', + [0x02dd] L'Ŭ', + [0x02de] L'Ŝ', + [0x02e5] L'ċ', + [0x02e6] L'ĉ', + [0x02f5] L'ġ', + [0x02f8] L'ĝ', + [0x02fd] L'ŭ', + [0x02fe] L'ŝ', + [0x03a2] L'ĸ', + [0x03a3] L'Ŗ', + [0x03a5] L'Ĩ', + [0x03a6] L'Ļ', + [0x03aa] L'Ē', + [0x03ab] L'Ģ', + [0x03ac] L'Ŧ', + [0x03b3] L'ŗ', + [0x03b5] L'ĩ', + [0x03b6] L'ļ', + [0x03ba] L'ē', + [0x03bb] L'ģ', + [0x03bc] L'ŧ', + [0x03bd] L'Ŋ', + [0x03bf] L'ŋ', + [0x03c0] L'Ā', + [0x03c7] L'Į', + [0x03cc] L'Ė', + [0x03cf] L'Ī', + [0x03d1] L'Ņ', + [0x03d2] L'Ō', + [0x03d3] L'Ķ', + [0x03d9] L'Ų', + [0x03dd] L'Ũ', + [0x03de] L'Ū', + [0x03e0] L'ā', + [0x03e7] L'į', + [0x03ec] L'ė', + [0x03ef] L'ī', + [0x03f1] L'ņ', + [0x03f2] L'ō', + [0x03f3] L'ķ', + [0x03f9] L'ų', + [0x03fd] L'ũ', + [0x03fe] L'ū', + [0x047e] L'‾', + [0x04a1] L'。', + [0x04a2] L'「', + [0x04a3] L'」', + [0x04a4] L'、', + [0x04a5] L'・', + [0x04a6] L'ヲ', + [0x04a7] L'ァ', + [0x04a8] L'ィ', + [0x04a9] L'ゥ', + [0x04aa] L'ェ', + [0x04ab] L'ォ', + [0x04ac] L'ャ', + [0x04ad] L'ュ', + [0x04ae] L'ョ', + [0x04af] L'ッ', + [0x04b0] L'ー', + [0x04b1] L'ア', + [0x04b2] L'イ', + [0x04b3] L'ウ', + [0x04b4] L'エ', + [0x04b5] L'オ', + [0x04b6] L'カ', + [0x04b7] L'キ', + [0x04b8] L'ク', + [0x04b9] L'ケ', + [0x04ba] L'コ', + [0x04bb] L'サ', + [0x04bc] L'シ', + [0x04bd] L'ス', + [0x04be] L'セ', + [0x04bf] L'ソ', + [0x04c0] L'タ', + [0x04c1] L'チ', + [0x04c2] L'ツ', + [0x04c3] L'テ', + [0x04c4] L'ト', + [0x04c5] L'ナ', + [0x04c6] L'ニ', + [0x04c7] L'ヌ', + [0x04c8] L'ネ', + [0x04c9] L'ノ', + [0x04ca] L'ハ', + [0x04cb] L'ヒ', + [0x04cc] L'フ', + [0x04cd] L'ヘ', + [0x04ce] L'ホ', + [0x04cf] L'マ', + [0x04d0] L'ミ', + [0x04d1] L'ム', + [0x04d2] L'メ', + [0x04d3] L'モ', + [0x04d4] L'ヤ', + [0x04d5] L'ユ', + [0x04d6] L'ヨ', + [0x04d7] L'ラ', + [0x04d8] L'リ', + [0x04d9] L'ル', + [0x04da] L'レ', + [0x04db] L'ロ', + [0x04dc] L'ワ', + [0x04dd] L'ン', + [0x04de] L'゛', + [0x04df] L'゜', + [0x05ac] L'،', + [0x05bb] L'؛', + [0x05bf] L'؟', + [0x05c1] L'ء', + [0x05c2] L'آ', + [0x05c3] L'أ', + [0x05c4] L'ؤ', + [0x05c5] L'إ', + [0x05c6] L'ئ', + [0x05c7] L'ا', + [0x05c8] L'ب', + [0x05c9] L'ة', + [0x05ca] L'ت', + [0x05cb] L'ث', + [0x05cc] L'ج', + [0x05cd] L'ح', + [0x05ce] L'خ', + [0x05cf] L'د', + [0x05d0] L'ذ', + [0x05d1] L'ر', + [0x05d2] L'ز', + [0x05d3] L'س', + [0x05d4] L'ش', + [0x05d5] L'ص', + [0x05d6] L'ض', + [0x05d7] L'ط', + [0x05d8] L'ظ', + [0x05d9] L'ع', + [0x05da] L'غ', + [0x05e0] L'ـ', + [0x05e1] L'ف', + [0x05e2] L'ق', + [0x05e3] L'ك', + [0x05e4] L'ل', + [0x05e5] L'م', + [0x05e6] L'ن', + [0x05e7] L'ه', + [0x05e8] L'و', + [0x05e9] L'ى', + [0x05ea] L'ي', + [0x05eb] L'ً', + [0x05ec] L'ٌ', + [0x05ed] L'ٍ', + [0x05ee] L'َ', + [0x05ef] L'ُ', + [0x05f0] L'ِ', + [0x05f1] L'ّ', + [0x05f2] L'ْ', + [0x06a1] L'ђ', + [0x06a2] L'ѓ', + [0x06a3] L'ё', + [0x06a4] L'є', + [0x06a5] L'ѕ', + [0x06a6] L'і', + [0x06a7] L'ї', + [0x06a8] L'ј', + [0x06a9] L'љ', + [0x06aa] L'њ', + [0x06ab] L'ћ', + [0x06ac] L'ќ', + [0x06ae] L'ў', + [0x06af] L'џ', + [0x06b0] L'№', + [0x06b1] L'Ђ', + [0x06b2] L'Ѓ', + [0x06b3] L'Ё', + [0x06b4] L'Є', + [0x06b5] L'Ѕ', + [0x06b6] L'І', + [0x06b7] L'Ї', + [0x06b8] L'Ј', + [0x06b9] L'Љ', + [0x06ba] L'Њ', + [0x06bb] L'Ћ', + [0x06bc] L'Ќ', + [0x06be] L'Ў', + [0x06bf] L'Џ', + [0x06c0] L'ю', + [0x06c1] L'а', + [0x06c2] L'б', + [0x06c3] L'ц', + [0x06c4] L'д', + [0x06c5] L'е', + [0x06c6] L'ф', + [0x06c7] L'г', + [0x06c8] L'х', + [0x06c9] L'и', + [0x06ca] L'й', + [0x06cb] L'к', + [0x06cc] L'л', + [0x06cd] L'м', + [0x06ce] L'н', + [0x06cf] L'о', + [0x06d0] L'п', + [0x06d1] L'я', + [0x06d2] L'р', + [0x06d3] L'с', + [0x06d4] L'т', + [0x06d5] L'у', + [0x06d6] L'ж', + [0x06d7] L'в', + [0x06d8] L'ь', + [0x06d9] L'ы', + [0x06da] L'з', + [0x06db] L'ш', + [0x06dc] L'э', + [0x06dd] L'щ', + [0x06de] L'ч', + [0x06df] L'ъ', + [0x06e0] L'Ю', + [0x06e1] L'А', + [0x06e2] L'Б', + [0x06e3] L'Ц', + [0x06e4] L'Д', + [0x06e5] L'Е', + [0x06e6] L'Ф', + [0x06e7] L'Г', + [0x06e8] L'Х', + [0x06e9] L'И', + [0x06ea] L'Й', + [0x06eb] L'К', + [0x06ec] L'Л', + [0x06ed] L'М', + [0x06ee] L'Н', + [0x06ef] L'О', + [0x06f0] L'П', + [0x06f1] L'Я', + [0x06f2] L'Р', + [0x06f3] L'С', + [0x06f4] L'Т', + [0x06f5] L'У', + [0x06f6] L'Ж', + [0x06f7] L'В', + [0x06f8] L'Ь', + [0x06f9] L'Ы', + [0x06fa] L'З', + [0x06fb] L'Ш', + [0x06fc] L'Э', + [0x06fd] L'Щ', + [0x06fe] L'Ч', + [0x06ff] L'Ъ', + [0x07a1] L'Ά', + [0x07a2] L'Έ', + [0x07a3] L'Ή', + [0x07a4] L'Ί', + [0x07a5] L'Ϊ', + [0x07a7] L'Ό', + [0x07a8] L'Ύ', + [0x07a9] L'Ϋ', + [0x07ab] L'Ώ', + [0x07ae] L'΅', + [0x07af] L'―', + [0x07b1] L'ά', + [0x07b2] L'έ', + [0x07b3] L'ή', + [0x07b4] L'ί', + [0x07b5] L'ϊ', + [0x07b6] L'ΐ', + [0x07b7] L'ό', + [0x07b8] L'ύ', + [0x07b9] L'ϋ', + [0x07ba] L'ΰ', + [0x07bb] L'ώ', + [0x07c1] L'Α', + [0x07c2] L'Β', + [0x07c3] L'Γ', + [0x07c4] L'Δ', + [0x07c5] L'Ε', + [0x07c6] L'Ζ', + [0x07c7] L'Η', + [0x07c8] L'Θ', + [0x07c9] L'Ι', + [0x07ca] L'Κ', + [0x07cb] L'Λ', + [0x07cc] L'Μ', + [0x07cd] L'Ν', + [0x07ce] L'Ξ', + [0x07cf] L'Ο', + [0x07d0] L'Π', + [0x07d1] L'Ρ', + [0x07d2] L'Σ', + [0x07d4] L'Τ', + [0x07d5] L'Υ', + [0x07d6] L'Φ', + [0x07d7] L'Χ', + [0x07d8] L'Ψ', + [0x07d9] L'Ω', + [0x07e1] L'α', + [0x07e2] L'β', + [0x07e3] L'γ', + [0x07e4] L'δ', + [0x07e5] L'ε', + [0x07e6] L'ζ', + [0x07e7] L'η', + [0x07e8] L'θ', + [0x07e9] L'ι', + [0x07ea] L'κ', + [0x07eb] L'λ', + [0x07ec] L'μ', + [0x07ed] L'ν', + [0x07ee] L'ξ', + [0x07ef] L'ο', + [0x07f0] L'π', + [0x07f1] L'ρ', + [0x07f2] L'σ', + [0x07f3] L'ς', + [0x07f4] L'τ', + [0x07f5] L'υ', + [0x07f6] L'φ', + [0x07f7] L'χ', + [0x07f8] L'ψ', + [0x07f9] L'ω', + [0x08a4] L'⌠', + [0x08a5] L'⌡', + [0x08a6] L'│', + [0x08bc] L'≤', + [0x08bd] L'≠', + [0x08be] L'≥', + [0x08bf] L'∫', + [0x08c0] L'∴', + [0x08c1] L'∝', + [0x08c2] L'∞', + [0x08c5] L'∇', + [0x08c8] L'≅', + [0x08cd] L'⇔', + [0x08ce] L'⇒', + [0x08cf] L'≡', + [0x08d6] L'√', + [0x08da] L'⊂', + [0x08db] L'⊃', + [0x08dc] L'∩', + [0x08dd] L'∪', + [0x08de] L'∧', + [0x08df] L'∨', + [0x08ef] L'∂', + [0x08f6] L'ƒ', + [0x08fb] L'←', + [0x08fc] L'↑', + [0x08fd] L'→', + [0x08fe] L'↓', + [0x09df] L'␢', + [0x09e0] L'◆', + [0x09e1] L'▒', + [0x09e2] L'␉', + [0x09e3] L'␌', + [0x09e4] L'␍', + [0x09e5] L'␊', + [0x09e8] L'␤', + [0x09e9] L'␋', + [0x09ea] L'┘', + [0x09eb] L'┐', + [0x09ec] L'┌', + [0x09ed] L'└', + [0x09ee] L'┼', + [0x09f1] L'─', + [0x09f4] L'├', + [0x09f5] L'┤', + [0x09f6] L'┴', + [0x09f7] L'┬', + [0x09f8] L'│', + [0x0aa1] L' ', + [0x0aa2] L' ', + [0x0aa3] L' ', + [0x0aa4] L' ', + [0x0aa5] L' ', + [0x0aa6] L' ', + [0x0aa7] L' ', + [0x0aa8] L' ', + [0x0aa9] L'—', + [0x0aaa] L'–', + [0x0aae] L'…', + [0x0ab0] L'⅓', + [0x0ab1] L'⅔', + [0x0ab2] L'⅕', + [0x0ab3] L'⅖', + [0x0ab4] L'⅗', + [0x0ab5] L'⅘', + [0x0ab6] L'⅙', + [0x0ab7] L'⅚', + [0x0ab8] L'℅', + [0x0abb] L'‒', + [0x0abc] L'〈', + [0x0abd] L'.', + [0x0abe] L'〉', + [0x0ac3] L'⅛', + [0x0ac4] L'⅜', + [0x0ac5] L'⅝', + [0x0ac6] L'⅞', + [0x0ac9] L'™', + [0x0aca] L'☓', + [0x0acc] L'◁', + [0x0acd] L'▷', + [0x0ace] L'○', + [0x0acf] L'□', + [0x0ad0] L'‘', + [0x0ad1] L'’', + [0x0ad2] L'“', + [0x0ad3] L'”', + [0x0ad4] L'℞', + [0x0ad6] L'′', + [0x0ad7] L'″', + [0x0ad9] L'✝', + [0x0adb] L'▬', + [0x0adc] L'◀', + [0x0add] L'▶', + [0x0ade] L'●', + [0x0adf] L'■', + [0x0ae0] L'◦', + [0x0ae1] L'▫', + [0x0ae2] L'▭', + [0x0ae3] L'△', + [0x0ae4] L'▽', + [0x0ae5] L'☆', + [0x0ae6] L'•', + [0x0ae7] L'▪', + [0x0ae8] L'▲', + [0x0ae9] L'▼', + [0x0aea] L'☜', + [0x0aeb] L'☞', + [0x0aec] L'♣', + [0x0aed] L'♦', + [0x0aee] L'♥', + [0x0af0] L'✠', + [0x0af1] L'†', + [0x0af2] L'‡', + [0x0af3] L'✓', + [0x0af4] L'✗', + [0x0af5] L'♯', + [0x0af6] L'♭', + [0x0af7] L'♂', + [0x0af8] L'♀', + [0x0af9] L'☎', + [0x0afa] L'⌕', + [0x0afb] L'℗', + [0x0afc] L'‸', + [0x0afd] L'‚', + [0x0afe] L'„', + [0x0ba3] L'<', + [0x0ba6] L'>', + [0x0ba8] L'∨', + [0x0ba9] L'∧', + [0x0bc0] L'¯', + [0x0bc2] L'⊤', + [0x0bc3] L'∩', + [0x0bc4] L'⌊', + [0x0bc6] L'_', + [0x0bca] L'∘', + [0x0bcc] L'⎕', + [0x0bce] L'⊥', + [0x0bcf] L'○', + [0x0bd3] L'⌈', + [0x0bd6] L'∪', + [0x0bd8] L'⊃', + [0x0bda] L'⊂', + [0x0bdc] L'⊣', + [0x0bfc] L'⊢', + [0x0cdf] L'‗', + [0x0ce0] L'א', + [0x0ce1] L'ב', + [0x0ce2] L'ג', + [0x0ce3] L'ד', + [0x0ce4] L'ה', + [0x0ce5] L'ו', + [0x0ce6] L'ז', + [0x0ce7] L'ח', + [0x0ce8] L'ט', + [0x0ce9] L'י', + [0x0cea] L'ך', + [0x0ceb] L'כ', + [0x0cec] L'ל', + [0x0ced] L'ם', + [0x0cee] L'מ', + [0x0cef] L'ן', + [0x0cf0] L'נ', + [0x0cf1] L'ס', + [0x0cf2] L'ע', + [0x0cf3] L'ף', + [0x0cf4] L'פ', + [0x0cf5] L'ץ', + [0x0cf6] L'צ', + [0x0cf7] L'ק', + [0x0cf8] L'ר', + [0x0cf9] L'ש', + [0x0cfa] L'ת', + [0x0da1] L'ก', + [0x0da2] L'ข', + [0x0da3] L'ฃ', + [0x0da4] L'ค', + [0x0da5] L'ฅ', + [0x0da6] L'ฆ', + [0x0da7] L'ง', + [0x0da8] L'จ', + [0x0da9] L'ฉ', + [0x0daa] L'ช', + [0x0dab] L'ซ', + [0x0dac] L'ฌ', + [0x0dad] L'ญ', + [0x0dae] L'ฎ', + [0x0daf] L'ฏ', + [0x0db0] L'ฐ', + [0x0db1] L'ฑ', + [0x0db2] L'ฒ', + [0x0db3] L'ณ', + [0x0db4] L'ด', + [0x0db5] L'ต', + [0x0db6] L'ถ', + [0x0db7] L'ท', + [0x0db8] L'ธ', + [0x0db9] L'น', + [0x0dba] L'บ', + [0x0dbb] L'ป', + [0x0dbc] L'ผ', + [0x0dbd] L'ฝ', + [0x0dbe] L'พ', + [0x0dbf] L'ฟ', + [0x0dc0] L'ภ', + [0x0dc1] L'ม', + [0x0dc2] L'ย', + [0x0dc3] L'ร', + [0x0dc4] L'ฤ', + [0x0dc5] L'ล', + [0x0dc6] L'ฦ', + [0x0dc7] L'ว', + [0x0dc8] L'ศ', + [0x0dc9] L'ษ', + [0x0dca] L'ส', + [0x0dcb] L'ห', + [0x0dcc] L'ฬ', + [0x0dcd] L'อ', + [0x0dce] L'ฮ', + [0x0dcf] L'ฯ', + [0x0dd0] L'ะ', + [0x0dd1] L'ั', + [0x0dd2] L'า', + [0x0dd3] L'ำ', + [0x0dd4] L'ิ', + [0x0dd5] L'ี', + [0x0dd6] L'ึ', + [0x0dd7] L'ื', + [0x0dd8] L'ุ', + [0x0dd9] L'ู', + [0x0dda] L'ฺ', + [0x0dde] L'฾', + [0x0ddf] L'฿', + [0x0de0] L'เ', + [0x0de1] L'แ', + [0x0de2] L'โ', + [0x0de3] L'ใ', + [0x0de4] L'ไ', + [0x0de5] L'ๅ', + [0x0de6] L'ๆ', + [0x0de7] L'็', + [0x0de8] L'่', + [0x0de9] L'้', + [0x0dea] L'๊', + [0x0deb] L'๋', + [0x0dec] L'์', + [0x0ded] L'ํ', + [0x0df0] L'๐', + [0x0df1] L'๑', + [0x0df2] L'๒', + [0x0df3] L'๓', + [0x0df4] L'๔', + [0x0df5] L'๕', + [0x0df6] L'๖', + [0x0df7] L'๗', + [0x0df8] L'๘', + [0x0df9] L'๙', + [0x0ea1] L'ㄱ', + [0x0ea2] L'ㄲ', + [0x0ea3] L'ㄳ', + [0x0ea4] L'ㄴ', + [0x0ea5] L'ㄵ', + [0x0ea6] L'ㄶ', + [0x0ea7] L'ㄷ', + [0x0ea8] L'ㄸ', + [0x0ea9] L'ㄹ', + [0x0eaa] L'ㄺ', + [0x0eab] L'ㄻ', + [0x0eac] L'ㄼ', + [0x0ead] L'ㄽ', + [0x0eae] L'ㄾ', + [0x0eaf] L'ㄿ', + [0x0eb0] L'ㅀ', + [0x0eb1] L'ㅁ', + [0x0eb2] L'ㅂ', + [0x0eb3] L'ㅃ', + [0x0eb4] L'ㅄ', + [0x0eb5] L'ㅅ', + [0x0eb6] L'ㅆ', + [0x0eb7] L'ㅇ', + [0x0eb8] L'ㅈ', + [0x0eb9] L'ㅉ', + [0x0eba] L'ㅊ', + [0x0ebb] L'ㅋ', + [0x0ebc] L'ㅌ', + [0x0ebd] L'ㅍ', + [0x0ebe] L'ㅎ', + [0x0ebf] L'ㅏ', + [0x0ec0] L'ㅐ', + [0x0ec1] L'ㅑ', + [0x0ec2] L'ㅒ', + [0x0ec3] L'ㅓ', + [0x0ec4] L'ㅔ', + [0x0ec5] L'ㅕ', + [0x0ec6] L'ㅖ', + [0x0ec7] L'ㅗ', + [0x0ec8] L'ㅘ', + [0x0ec9] L'ㅙ', + [0x0eca] L'ㅚ', + [0x0ecb] L'ㅛ', + [0x0ecc] L'ㅜ', + [0x0ecd] L'ㅝ', + [0x0ece] L'ㅞ', + [0x0ecf] L'ㅟ', + [0x0ed0] L'ㅠ', + [0x0ed1] L'ㅡ', + [0x0ed2] L'ㅢ', + [0x0ed3] L'ㅣ', + [0x0ed4] L'ᆨ', + [0x0ed5] L'ᆩ', + [0x0ed6] L'ᆪ', + [0x0ed7] L'ᆫ', + [0x0ed8] L'ᆬ', + [0x0ed9] L'ᆭ', + [0x0eda] L'ᆮ', + [0x0edb] L'ᆯ', + [0x0edc] L'ᆰ', + [0x0edd] L'ᆱ', + [0x0ede] L'ᆲ', + [0x0edf] L'ᆳ', + [0x0ee0] L'ᆴ', + [0x0ee1] L'ᆵ', + [0x0ee2] L'ᆶ', + [0x0ee3] L'ᆷ', + [0x0ee4] L'ᆸ', + [0x0ee5] L'ᆹ', + [0x0ee6] L'ᆺ', + [0x0ee7] L'ᆻ', + [0x0ee8] L'ᆼ', + [0x0ee9] L'ᆽ', + [0x0eea] L'ᆾ', + [0x0eeb] L'ᆿ', + [0x0eec] L'ᇀ', + [0x0eed] L'ᇁ', + [0x0eee] L'ᇂ', + [0x0eef] L'ㅭ', + [0x0ef0] L'ㅱ', + [0x0ef1] L'ㅸ', + [0x0ef2] L'ㅿ', + [0x0ef4] L'ㆄ', + [0x0ef5] L'ㆆ', + [0x0ef6] L'ㆍ', + [0x0ef7] L'ㆎ', + [0x0ef8] L'ᇫ', + [0x0efa] L'ᇹ', + [0x0eff] L'₩', + [0x13bc] L'Œ', + [0x13bd] L'œ', + [0x13be] L'Ÿ', + [0x20a0] L'₠', + [0x20a1] L'₡', + [0x20a2] L'₢', + [0x20a3] L'₣', + [0x20a4] L'₤', + [0x20a5] L'₥', + [0x20a6] L'₦', + [0x20a7] L'₧', + [0x20a8] L'₨', + [0x20a9] L'₩', + [0x20aa] L'₪', + [0x20ab] L'₫', + [0x20ac] L'€', + +}; --- /sys/src/cmd/vnc/mkfile Mon Apr 19 00:16:01 2004 +++ /sys/src/cmd/vnc/mkfile Mon Apr 19 00:16:00 2004 @@ -57,3 +57,6 @@ errstr.h: error.h sed 's/extern //;s,;.*/\* (.*) \*/, = "\1";,' < error.h > errstr.h + +kbds.$O: ksym2utf.h +kbdv.$O: utf2ksym.h --- /sys/src/cmd/vnc/utf2ksym.h Thu Jan 1 00:00:00 1970 +++ /sys/src/cmd/vnc/utf2ksym.h Mon Apr 19 00:16:01 2004 @@ -0,0 +1,759 @@ +/* + * VNC uses X11's keysyms defined in X11/keysym.h, this is a converter + * from unicode characters to ksyms that other servers use. + */ +static ulong +utf2ksym [] = { + [L'Ą'] 0x01a1, + [L'˘'] 0x01a2, + [L'Ł'] 0x01a3, + [L'Ľ'] 0x01a5, + [L'Ś'] 0x01a6, + [L'Š'] 0x01a9, + [L'Ş'] 0x01aa, + [L'Ť'] 0x01ab, + [L'Ź'] 0x01ac, + [L'Ž'] 0x01ae, + [L'Ż'] 0x01af, + [L'ą'] 0x01b1, + [L'˛'] 0x01b2, + [L'ł'] 0x01b3, + [L'ľ'] 0x01b5, + [L'ś'] 0x01b6, + [L'ˇ'] 0x01b7, + [L'š'] 0x01b9, + [L'ş'] 0x01ba, + [L'ť'] 0x01bb, + [L'ź'] 0x01bc, + [L'˝'] 0x01bd, + [L'ž'] 0x01be, + [L'ż'] 0x01bf, + [L'Ŕ'] 0x01c0, + [L'Ă'] 0x01c3, + [L'Ĺ'] 0x01c5, + [L'Ć'] 0x01c6, + [L'Č'] 0x01c8, + [L'Ę'] 0x01ca, + [L'Ě'] 0x01cc, + [L'Ď'] 0x01cf, + [L'Đ'] 0x01d0, + [L'Ń'] 0x01d1, + [L'Ň'] 0x01d2, + [L'Ő'] 0x01d5, + [L'Ř'] 0x01d8, + [L'Ů'] 0x01d9, + [L'Ű'] 0x01db, + [L'Ţ'] 0x01de, + [L'ŕ'] 0x01e0, + [L'ă'] 0x01e3, + [L'ĺ'] 0x01e5, + [L'ć'] 0x01e6, + [L'č'] 0x01e8, + [L'ę'] 0x01ea, + [L'ě'] 0x01ec, + [L'ď'] 0x01ef, + [L'đ'] 0x01f0, + [L'ń'] 0x01f1, + [L'ň'] 0x01f2, + [L'ő'] 0x01f5, + [L'ř'] 0x01f8, + [L'ů'] 0x01f9, + [L'ű'] 0x01fb, + [L'ţ'] 0x01fe, + [L'˙'] 0x01ff, + [L'Ħ'] 0x02a1, + [L'Ĥ'] 0x02a6, + [L'İ'] 0x02a9, + [L'Ğ'] 0x02ab, + [L'Ĵ'] 0x02ac, + [L'ħ'] 0x02b1, + [L'ĥ'] 0x02b6, + [L'ı'] 0x02b9, + [L'ğ'] 0x02bb, + [L'ĵ'] 0x02bc, + [L'Ċ'] 0x02c5, + [L'Ĉ'] 0x02c6, + [L'Ġ'] 0x02d5, + [L'Ĝ'] 0x02d8, + [L'Ŭ'] 0x02dd, + [L'Ŝ'] 0x02de, + [L'ċ'] 0x02e5, + [L'ĉ'] 0x02e6, + [L'ġ'] 0x02f5, + [L'ĝ'] 0x02f8, + [L'ŭ'] 0x02fd, + [L'ŝ'] 0x02fe, + [L'ĸ'] 0x03a2, + [L'Ŗ'] 0x03a3, + [L'Ĩ'] 0x03a5, + [L'Ļ'] 0x03a6, + [L'Ē'] 0x03aa, + [L'Ģ'] 0x03ab, + [L'Ŧ'] 0x03ac, + [L'ŗ'] 0x03b3, + [L'ĩ'] 0x03b5, + [L'ļ'] 0x03b6, + [L'ē'] 0x03ba, + [L'ģ'] 0x03bb, + [L'ŧ'] 0x03bc, + [L'Ŋ'] 0x03bd, + [L'ŋ'] 0x03bf, + [L'Ā'] 0x03c0, + [L'Į'] 0x03c7, + [L'Ė'] 0x03cc, + [L'Ī'] 0x03cf, + [L'Ņ'] 0x03d1, + [L'Ō'] 0x03d2, + [L'Ķ'] 0x03d3, + [L'Ų'] 0x03d9, + [L'Ũ'] 0x03dd, + [L'Ū'] 0x03de, + [L'ā'] 0x03e0, + [L'į'] 0x03e7, + [L'ė'] 0x03ec, + [L'ī'] 0x03ef, + [L'ņ'] 0x03f1, + [L'ō'] 0x03f2, + [L'ķ'] 0x03f3, + [L'ų'] 0x03f9, + [L'ũ'] 0x03fd, + [L'ū'] 0x03fe, + [L'‾'] 0x047e, + [L'。'] 0x04a1, + [L'「'] 0x04a2, + [L'」'] 0x04a3, + [L'、'] 0x04a4, + [L'・'] 0x04a5, + [L'ヲ'] 0x04a6, + [L'ァ'] 0x04a7, + [L'ィ'] 0x04a8, + [L'ゥ'] 0x04a9, + [L'ェ'] 0x04aa, + [L'ォ'] 0x04ab, + [L'ャ'] 0x04ac, + [L'ュ'] 0x04ad, + [L'ョ'] 0x04ae, + [L'ッ'] 0x04af, + [L'ー'] 0x04b0, + [L'ア'] 0x04b1, + [L'イ'] 0x04b2, + [L'ウ'] 0x04b3, + [L'エ'] 0x04b4, + [L'オ'] 0x04b5, + [L'カ'] 0x04b6, + [L'キ'] 0x04b7, + [L'ク'] 0x04b8, + [L'ケ'] 0x04b9, + [L'コ'] 0x04ba, + [L'サ'] 0x04bb, + [L'シ'] 0x04bc, + [L'ス'] 0x04bd, + [L'セ'] 0x04be, + [L'ソ'] 0x04bf, + [L'タ'] 0x04c0, + [L'チ'] 0x04c1, + [L'ツ'] 0x04c2, + [L'テ'] 0x04c3, + [L'ト'] 0x04c4, + [L'ナ'] 0x04c5, + [L'ニ'] 0x04c6, + [L'ヌ'] 0x04c7, + [L'ネ'] 0x04c8, + [L'ノ'] 0x04c9, + [L'ハ'] 0x04ca, + [L'ヒ'] 0x04cb, + [L'フ'] 0x04cc, + [L'ヘ'] 0x04cd, + [L'ホ'] 0x04ce, + [L'マ'] 0x04cf, + [L'ミ'] 0x04d0, + [L'ム'] 0x04d1, + [L'メ'] 0x04d2, + [L'モ'] 0x04d3, + [L'ヤ'] 0x04d4, + [L'ユ'] 0x04d5, + [L'ヨ'] 0x04d6, + [L'ラ'] 0x04d7, + [L'リ'] 0x04d8, + [L'ル'] 0x04d9, + [L'レ'] 0x04da, + [L'ロ'] 0x04db, + [L'ワ'] 0x04dc, + [L'ン'] 0x04dd, + [L'゛'] 0x04de, + [L'゜'] 0x04df, + [L'،'] 0x05ac, + [L'؛'] 0x05bb, + [L'؟'] 0x05bf, + [L'ء'] 0x05c1, + [L'آ'] 0x05c2, + [L'أ'] 0x05c3, + [L'ؤ'] 0x05c4, + [L'إ'] 0x05c5, + [L'ئ'] 0x05c6, + [L'ا'] 0x05c7, + [L'ب'] 0x05c8, + [L'ة'] 0x05c9, + [L'ت'] 0x05ca, + [L'ث'] 0x05cb, + [L'ج'] 0x05cc, + [L'ح'] 0x05cd, + [L'خ'] 0x05ce, + [L'د'] 0x05cf, + [L'ذ'] 0x05d0, + [L'ر'] 0x05d1, + [L'ز'] 0x05d2, + [L'س'] 0x05d3, + [L'ش'] 0x05d4, + [L'ص'] 0x05d5, + [L'ض'] 0x05d6, + [L'ط'] 0x05d7, + [L'ظ'] 0x05d8, + [L'ع'] 0x05d9, + [L'غ'] 0x05da, + [L'ـ'] 0x05e0, + [L'ف'] 0x05e1, + [L'ق'] 0x05e2, + [L'ك'] 0x05e3, + [L'ل'] 0x05e4, + [L'م'] 0x05e5, + [L'ن'] 0x05e6, + [L'ه'] 0x05e7, + [L'و'] 0x05e8, + [L'ى'] 0x05e9, + [L'ي'] 0x05ea, + [L'ً'] 0x05eb, + [L'ٌ'] 0x05ec, + [L'ٍ'] 0x05ed, + [L'َ'] 0x05ee, + [L'ُ'] 0x05ef, + [L'ِ'] 0x05f0, + [L'ّ'] 0x05f1, + [L'ْ'] 0x05f2, + [L'ђ'] 0x06a1, + [L'ѓ'] 0x06a2, + [L'ё'] 0x06a3, + [L'є'] 0x06a4, + [L'ѕ'] 0x06a5, + [L'і'] 0x06a6, + [L'ї'] 0x06a7, + [L'ј'] 0x06a8, + [L'љ'] 0x06a9, + [L'њ'] 0x06aa, + [L'ћ'] 0x06ab, + [L'ќ'] 0x06ac, + [L'ў'] 0x06ae, + [L'џ'] 0x06af, + [L'№'] 0x06b0, + [L'Ђ'] 0x06b1, + [L'Ѓ'] 0x06b2, + [L'Ё'] 0x06b3, + [L'Є'] 0x06b4, + [L'Ѕ'] 0x06b5, + [L'І'] 0x06b6, + [L'Ї'] 0x06b7, + [L'Ј'] 0x06b8, + [L'Љ'] 0x06b9, + [L'Њ'] 0x06ba, + [L'Ћ'] 0x06bb, + [L'Ќ'] 0x06bc, + [L'Ў'] 0x06be, + [L'Џ'] 0x06bf, + [L'ю'] 0x06c0, + [L'а'] 0x06c1, + [L'б'] 0x06c2, + [L'ц'] 0x06c3, + [L'д'] 0x06c4, + [L'е'] 0x06c5, + [L'ф'] 0x06c6, + [L'г'] 0x06c7, + [L'х'] 0x06c8, + [L'и'] 0x06c9, + [L'й'] 0x06ca, + [L'к'] 0x06cb, + [L'л'] 0x06cc, + [L'м'] 0x06cd, + [L'н'] 0x06ce, + [L'о'] 0x06cf, + [L'п'] 0x06d0, + [L'я'] 0x06d1, + [L'р'] 0x06d2, + [L'с'] 0x06d3, + [L'т'] 0x06d4, + [L'у'] 0x06d5, + [L'ж'] 0x06d6, + [L'в'] 0x06d7, + [L'ь'] 0x06d8, + [L'ы'] 0x06d9, + [L'з'] 0x06da, + [L'ш'] 0x06db, + [L'э'] 0x06dc, + [L'щ'] 0x06dd, + [L'ч'] 0x06de, + [L'ъ'] 0x06df, + [L'Ю'] 0x06e0, + [L'А'] 0x06e1, + [L'Б'] 0x06e2, + [L'Ц'] 0x06e3, + [L'Д'] 0x06e4, + [L'Е'] 0x06e5, + [L'Ф'] 0x06e6, + [L'Г'] 0x06e7, + [L'Х'] 0x06e8, + [L'И'] 0x06e9, + [L'Й'] 0x06ea, + [L'К'] 0x06eb, + [L'Л'] 0x06ec, + [L'М'] 0x06ed, + [L'Н'] 0x06ee, + [L'О'] 0x06ef, + [L'П'] 0x06f0, + [L'Я'] 0x06f1, + [L'Р'] 0x06f2, + [L'С'] 0x06f3, + [L'Т'] 0x06f4, + [L'У'] 0x06f5, + [L'Ж'] 0x06f6, + [L'В'] 0x06f7, + [L'Ь'] 0x06f8, + [L'Ы'] 0x06f9, + [L'З'] 0x06fa, + [L'Ш'] 0x06fb, + [L'Э'] 0x06fc, + [L'Щ'] 0x06fd, + [L'Ч'] 0x06fe, + [L'Ъ'] 0x06ff, + [L'Ά'] 0x07a1, + [L'Έ'] 0x07a2, + [L'Ή'] 0x07a3, + [L'Ί'] 0x07a4, + [L'Ϊ'] 0x07a5, + [L'Ό'] 0x07a7, + [L'Ύ'] 0x07a8, + [L'Ϋ'] 0x07a9, + [L'Ώ'] 0x07ab, + [L'΅'] 0x07ae, + [L'―'] 0x07af, + [L'ά'] 0x07b1, + [L'έ'] 0x07b2, + [L'ή'] 0x07b3, + [L'ί'] 0x07b4, + [L'ϊ'] 0x07b5, + [L'ΐ'] 0x07b6, + [L'ό'] 0x07b7, + [L'ύ'] 0x07b8, + [L'ϋ'] 0x07b9, + [L'ΰ'] 0x07ba, + [L'ώ'] 0x07bb, + [L'Α'] 0x07c1, + [L'Β'] 0x07c2, + [L'Γ'] 0x07c3, + [L'Δ'] 0x07c4, + [L'Ε'] 0x07c5, + [L'Ζ'] 0x07c6, + [L'Η'] 0x07c7, + [L'Θ'] 0x07c8, + [L'Ι'] 0x07c9, + [L'Κ'] 0x07ca, + [L'Λ'] 0x07cb, + [L'Μ'] 0x07cc, + [L'Ν'] 0x07cd, + [L'Ξ'] 0x07ce, + [L'Ο'] 0x07cf, + [L'Π'] 0x07d0, + [L'Ρ'] 0x07d1, + [L'Σ'] 0x07d2, + [L'Τ'] 0x07d4, + [L'Υ'] 0x07d5, + [L'Φ'] 0x07d6, + [L'Χ'] 0x07d7, + [L'Ψ'] 0x07d8, + [L'Ω'] 0x07d9, + [L'α'] 0x07e1, + [L'β'] 0x07e2, + [L'γ'] 0x07e3, + [L'δ'] 0x07e4, + [L'ε'] 0x07e5, + [L'ζ'] 0x07e6, + [L'η'] 0x07e7, + [L'θ'] 0x07e8, + [L'ι'] 0x07e9, + [L'κ'] 0x07ea, + [L'λ'] 0x07eb, + [L'μ'] 0x07ec, + [L'ν'] 0x07ed, + [L'ξ'] 0x07ee, + [L'ο'] 0x07ef, + [L'π'] 0x07f0, + [L'ρ'] 0x07f1, + [L'σ'] 0x07f2, + [L'ς'] 0x07f3, + [L'τ'] 0x07f4, + [L'υ'] 0x07f5, + [L'φ'] 0x07f6, + [L'χ'] 0x07f7, + [L'ψ'] 0x07f8, + [L'ω'] 0x07f9, + [L'⌠'] 0x08a4, + [L'⌡'] 0x08a5, + [L'│'] 0x08a6, + [L'≤'] 0x08bc, + [L'≠'] 0x08bd, + [L'≥'] 0x08be, + [L'∫'] 0x08bf, + [L'∴'] 0x08c0, + [L'∝'] 0x08c1, + [L'∞'] 0x08c2, + [L'∇'] 0x08c5, + [L'≅'] 0x08c8, + [L'⇔'] 0x08cd, + [L'⇒'] 0x08ce, + [L'≡'] 0x08cf, + [L'√'] 0x08d6, + [L'⊂'] 0x08da, + [L'⊃'] 0x08db, + [L'∩'] 0x08dc, + [L'∪'] 0x08dd, + [L'∧'] 0x08de, + [L'∨'] 0x08df, + [L'∂'] 0x08ef, + [L'ƒ'] 0x08f6, + [L'←'] 0x08fb, + [L'↑'] 0x08fc, + [L'→'] 0x08fd, + [L'↓'] 0x08fe, + [L'␢'] 0x09df, + [L'◆'] 0x09e0, + [L'▒'] 0x09e1, + [L'␉'] 0x09e2, + [L'␌'] 0x09e3, + [L'␍'] 0x09e4, + [L'␊'] 0x09e5, + [L'␤'] 0x09e8, + [L'␋'] 0x09e9, + [L'┘'] 0x09ea, + [L'┐'] 0x09eb, + [L'┌'] 0x09ec, + [L'└'] 0x09ed, + [L'┼'] 0x09ee, + [L'─'] 0x09f1, + [L'├'] 0x09f4, + [L'┤'] 0x09f5, + [L'┴'] 0x09f6, + [L'┬'] 0x09f7, +/* [L'│'] 0x09f8, andrey: already mapped */ + [L' '] 0x0aa1, + [L' '] 0x0aa2, + [L' '] 0x0aa3, + [L' '] 0x0aa4, + [L' '] 0x0aa5, + [L' '] 0x0aa6, + [L' '] 0x0aa7, + [L' '] 0x0aa8, + [L'—'] 0x0aa9, + [L'–'] 0x0aaa, + [L'…'] 0x0aae, + [L'⅓'] 0x0ab0, + [L'⅔'] 0x0ab1, + [L'⅕'] 0x0ab2, + [L'⅖'] 0x0ab3, + [L'⅗'] 0x0ab4, + [L'⅘'] 0x0ab5, + [L'⅙'] 0x0ab6, + [L'⅚'] 0x0ab7, + [L'℅'] 0x0ab8, + [L'‒'] 0x0abb, + [L'〈'] 0x0abc, + [L'.'] 0x0abd, + [L'〉'] 0x0abe, + [L'⅛'] 0x0ac3, + [L'⅜'] 0x0ac4, + [L'⅝'] 0x0ac5, + [L'⅞'] 0x0ac6, + [L'™'] 0x0ac9, + [L'☓'] 0x0aca, + [L'◁'] 0x0acc, + [L'▷'] 0x0acd, + [L'○'] 0x0ace, + [L'□'] 0x0acf, + [L'‘'] 0x0ad0, + [L'’'] 0x0ad1, + [L'“'] 0x0ad2, + [L'”'] 0x0ad3, + [L'℞'] 0x0ad4, + [L'′'] 0x0ad6, + [L'″'] 0x0ad7, + [L'✝'] 0x0ad9, + [L'▬'] 0x0adb, + [L'◀'] 0x0adc, + [L'▶'] 0x0add, + [L'●'] 0x0ade, + [L'■'] 0x0adf, + [L'◦'] 0x0ae0, + [L'▫'] 0x0ae1, + [L'▭'] 0x0ae2, + [L'△'] 0x0ae3, + [L'▽'] 0x0ae4, + [L'☆'] 0x0ae5, + [L'•'] 0x0ae6, + [L'▪'] 0x0ae7, + [L'▲'] 0x0ae8, + [L'▼'] 0x0ae9, + [L'☜'] 0x0aea, + [L'☞'] 0x0aeb, + [L'♣'] 0x0aec, + [L'♦'] 0x0aed, + [L'♥'] 0x0aee, + [L'✠'] 0x0af0, + [L'†'] 0x0af1, + [L'‡'] 0x0af2, + [L'✓'] 0x0af3, + [L'✗'] 0x0af4, + [L'♯'] 0x0af5, + [L'♭'] 0x0af6, + [L'♂'] 0x0af7, + [L'♀'] 0x0af8, + [L'☎'] 0x0af9, + [L'⌕'] 0x0afa, + [L'℗'] 0x0afb, + [L'‸'] 0x0afc, + [L'‚'] 0x0afd, + [L'„'] 0x0afe, + [L'<'] 0x0ba3, + [L'>'] 0x0ba6, +/* [L'∨'] 0x0ba8, andrey: mapped earlier */ +/* [L'∧'] 0x0ba9, andrey: mapped earlier */ + [L'¯'] 0x0bc0, + [L'⊤'] 0x0bc2, +/* [L'∩'] 0x0bc3, andrey: mapped earlier */ + [L'⌊'] 0x0bc4, + [L'_'] 0x0bc6, + [L'∘'] 0x0bca, + [L'⎕'] 0x0bcc, + [L'⊥'] 0x0bce, +/* [L'○'] 0x0bcf, andrey: mapped earlier */ + [L'⌈'] 0x0bd3, +/* [L'∪'] 0x0bd6, andrey: mapped earlier */ +/* [L'⊃'] 0x0bd8, andrey: mapped earlier */ +/* [L'⊂'] 0x0bda, andrey: mapped earlier */ + [L'⊣'] 0x0bdc, + [L'⊢'] 0x0bfc, + [L'‗'] 0x0cdf, + [L'א'] 0x0ce0, + [L'ב'] 0x0ce1, + [L'ג'] 0x0ce2, + [L'ד'] 0x0ce3, + [L'ה'] 0x0ce4, + [L'ו'] 0x0ce5, + [L'ז'] 0x0ce6, + [L'ח'] 0x0ce7, + [L'ט'] 0x0ce8, + [L'י'] 0x0ce9, + [L'ך'] 0x0cea, + [L'כ'] 0x0ceb, + [L'ל'] 0x0cec, + [L'ם'] 0x0ced, + [L'מ'] 0x0cee, + [L'ן'] 0x0cef, + [L'נ'] 0x0cf0, + [L'ס'] 0x0cf1, + [L'ע'] 0x0cf2, + [L'ף'] 0x0cf3, + [L'פ'] 0x0cf4, + [L'ץ'] 0x0cf5, + [L'צ'] 0x0cf6, + [L'ק'] 0x0cf7, + [L'ר'] 0x0cf8, + [L'ש'] 0x0cf9, + [L'ת'] 0x0cfa, + [L'ก'] 0x0da1, + [L'ข'] 0x0da2, + [L'ฃ'] 0x0da3, + [L'ค'] 0x0da4, + [L'ฅ'] 0x0da5, + [L'ฆ'] 0x0da6, + [L'ง'] 0x0da7, + [L'จ'] 0x0da8, + [L'ฉ'] 0x0da9, + [L'ช'] 0x0daa, + [L'ซ'] 0x0dab, + [L'ฌ'] 0x0dac, + [L'ญ'] 0x0dad, + [L'ฎ'] 0x0dae, + [L'ฏ'] 0x0daf, + [L'ฐ'] 0x0db0, + [L'ฑ'] 0x0db1, + [L'ฒ'] 0x0db2, + [L'ณ'] 0x0db3, + [L'ด'] 0x0db4, + [L'ต'] 0x0db5, + [L'ถ'] 0x0db6, + [L'ท'] 0x0db7, + [L'ธ'] 0x0db8, + [L'น'] 0x0db9, + [L'บ'] 0x0dba, + [L'ป'] 0x0dbb, + [L'ผ'] 0x0dbc, + [L'ฝ'] 0x0dbd, + [L'พ'] 0x0dbe, + [L'ฟ'] 0x0dbf, + [L'ภ'] 0x0dc0, + [L'ม'] 0x0dc1, + [L'ย'] 0x0dc2, + [L'ร'] 0x0dc3, + [L'ฤ'] 0x0dc4, + [L'ล'] 0x0dc5, + [L'ฦ'] 0x0dc6, + [L'ว'] 0x0dc7, + [L'ศ'] 0x0dc8, + [L'ษ'] 0x0dc9, + [L'ส'] 0x0dca, + [L'ห'] 0x0dcb, + [L'ฬ'] 0x0dcc, + [L'อ'] 0x0dcd, + [L'ฮ'] 0x0dce, + [L'ฯ'] 0x0dcf, + [L'ะ'] 0x0dd0, + [L'ั'] 0x0dd1, + [L'า'] 0x0dd2, + [L'ำ'] 0x0dd3, + [L'ิ'] 0x0dd4, + [L'ี'] 0x0dd5, + [L'ึ'] 0x0dd6, + [L'ื'] 0x0dd7, + [L'ุ'] 0x0dd8, + [L'ู'] 0x0dd9, + [L'ฺ'] 0x0dda, + [L'฾'] 0x0dde, + [L'฿'] 0x0ddf, + [L'เ'] 0x0de0, + [L'แ'] 0x0de1, + [L'โ'] 0x0de2, + [L'ใ'] 0x0de3, + [L'ไ'] 0x0de4, + [L'ๅ'] 0x0de5, + [L'ๆ'] 0x0de6, + [L'็'] 0x0de7, + [L'่'] 0x0de8, + [L'้'] 0x0de9, + [L'๊'] 0x0dea, + [L'๋'] 0x0deb, + [L'์'] 0x0dec, + [L'ํ'] 0x0ded, + [L'๐'] 0x0df0, + [L'๑'] 0x0df1, + [L'๒'] 0x0df2, + [L'๓'] 0x0df3, + [L'๔'] 0x0df4, + [L'๕'] 0x0df5, + [L'๖'] 0x0df6, + [L'๗'] 0x0df7, + [L'๘'] 0x0df8, + [L'๙'] 0x0df9, + [L'ㄱ'] 0x0ea1, + [L'ㄲ'] 0x0ea2, + [L'ㄳ'] 0x0ea3, + [L'ㄴ'] 0x0ea4, + [L'ㄵ'] 0x0ea5, + [L'ㄶ'] 0x0ea6, + [L'ㄷ'] 0x0ea7, + [L'ㄸ'] 0x0ea8, + [L'ㄹ'] 0x0ea9, + [L'ㄺ'] 0x0eaa, + [L'ㄻ'] 0x0eab, + [L'ㄼ'] 0x0eac, + [L'ㄽ'] 0x0ead, + [L'ㄾ'] 0x0eae, + [L'ㄿ'] 0x0eaf, + [L'ㅀ'] 0x0eb0, + [L'ㅁ'] 0x0eb1, + [L'ㅂ'] 0x0eb2, + [L'ㅃ'] 0x0eb3, + [L'ㅄ'] 0x0eb4, + [L'ㅅ'] 0x0eb5, + [L'ㅆ'] 0x0eb6, + [L'ㅇ'] 0x0eb7, + [L'ㅈ'] 0x0eb8, + [L'ㅉ'] 0x0eb9, + [L'ㅊ'] 0x0eba, + [L'ㅋ'] 0x0ebb, + [L'ㅌ'] 0x0ebc, + [L'ㅍ'] 0x0ebd, + [L'ㅎ'] 0x0ebe, + [L'ㅏ'] 0x0ebf, + [L'ㅐ'] 0x0ec0, + [L'ㅑ'] 0x0ec1, + [L'ㅒ'] 0x0ec2, + [L'ㅓ'] 0x0ec3, + [L'ㅔ'] 0x0ec4, + [L'ㅕ'] 0x0ec5, + [L'ㅖ'] 0x0ec6, + [L'ㅗ'] 0x0ec7, + [L'ㅘ'] 0x0ec8, + [L'ㅙ'] 0x0ec9, + [L'ㅚ'] 0x0eca, + [L'ㅛ'] 0x0ecb, + [L'ㅜ'] 0x0ecc, + [L'ㅝ'] 0x0ecd, + [L'ㅞ'] 0x0ece, + [L'ㅟ'] 0x0ecf, + [L'ㅠ'] 0x0ed0, + [L'ㅡ'] 0x0ed1, + [L'ㅢ'] 0x0ed2, + [L'ㅣ'] 0x0ed3, + [L'ᆨ'] 0x0ed4, + [L'ᆩ'] 0x0ed5, + [L'ᆪ'] 0x0ed6, + [L'ᆫ'] 0x0ed7, + [L'ᆬ'] 0x0ed8, + [L'ᆭ'] 0x0ed9, + [L'ᆮ'] 0x0eda, + [L'ᆯ'] 0x0edb, + [L'ᆰ'] 0x0edc, + [L'ᆱ'] 0x0edd, + [L'ᆲ'] 0x0ede, + [L'ᆳ'] 0x0edf, + [L'ᆴ'] 0x0ee0, + [L'ᆵ'] 0x0ee1, + [L'ᆶ'] 0x0ee2, + [L'ᆷ'] 0x0ee3, + [L'ᆸ'] 0x0ee4, + [L'ᆹ'] 0x0ee5, + [L'ᆺ'] 0x0ee6, + [L'ᆻ'] 0x0ee7, + [L'ᆼ'] 0x0ee8, + [L'ᆽ'] 0x0ee9, + [L'ᆾ'] 0x0eea, + [L'ᆿ'] 0x0eeb, + [L'ᇀ'] 0x0eec, + [L'ᇁ'] 0x0eed, + [L'ᇂ'] 0x0eee, + [L'ㅭ'] 0x0eef, + [L'ㅱ'] 0x0ef0, + [L'ㅸ'] 0x0ef1, + [L'ㅿ'] 0x0ef2, + [L'ㆄ'] 0x0ef4, + [L'ㆆ'] 0x0ef5, + [L'ㆍ'] 0x0ef6, + [L'ㆎ'] 0x0ef7, + [L'ᇫ'] 0x0ef8, + [L'ᇹ'] 0x0efa, + [L'₩'] 0x0eff, + [L'Œ'] 0x13bc, + [L'œ'] 0x13bd, + [L'Ÿ'] 0x13be, + [L'₠'] 0x20a0, + [L'₡'] 0x20a1, + [L'₢'] 0x20a2, + [L'₣'] 0x20a3, + [L'₤'] 0x20a4, + [L'₥'] 0x20a5, + [L'₦'] 0x20a6, + [L'₧'] 0x20a7, + [L'₨'] 0x20a8, +/* [L'₩'] 0x20a9, andrey: mapped earlier */ + [L'₪'] 0x20aa, + [L'₫'] 0x20ab, + [L'€'] 0x20ac, + +};