Mercurial > hg > xemacs-beta
changeset 3640:24b58b2d56ab
[xemacs-hg @ 2006-10-28 16:02:43 by aidan]
Support Ghe with upturn, other non-ISO-8859-5 Cyrillic keysyms in X11.
author | aidan |
---|---|
date | Sat, 28 Oct 2006 16:02:45 +0000 |
parents | a8a83fd6ea29 |
children | 2f2e6271e0a0 |
files | src/ChangeLog src/event-xlike-inc.c |
diffstat | 2 files changed, 107 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Fri Oct 27 21:50:56 2006 +0000 +++ b/src/ChangeLog Sat Oct 28 16:02:45 2006 +0000 @@ -1,3 +1,9 @@ +2006-10-28 Aidan Kehoe <kehoea@parhasard.net> + + * event-xlike-inc.c: + Rework the X11 keysym support to allow the use of Cyrillic keysyms + that are not in ISO-8859-5. + 2006-10-27 Aidan Kehoe <kehoea@parhasard.net> * fileio.c (Finsert_file_contents_internal) : Clarify that we
--- a/src/event-xlike-inc.c Fri Oct 27 21:50:56 2006 +0000 +++ b/src/event-xlike-inc.c Sat Oct 28 16:02:45 2006 +0000 @@ -459,6 +459,106 @@ 0x22A3, /* #x0BFC RIGHT TACK APL */ }; +static UINT_16_BIT const CYRILLIC[] = + { + 0x0452, /* #x06A1 CYRILLIC SMALL LETTER DJE */ +#define FIRST_KNOWN_CYRILLIC 0x6A1 + 0x0453, /* #x06A2 CYRILLIC SMALL LETTER GJE */ + 0x0451, /* #x06A3 CYRILLIC SMALL LETTER IO */ + 0x0454, /* #x06A4 CYRILLIC SMALL LETTER UKRAINIAN IE */ + 0x0455, /* #x06A5 CYRILLIC SMALL LETTER DZE */ + 0x0456, /* #x06A6 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ + 0x0457, /* #x06A7 CYRILLIC SMALL LETTER YI */ + 0x0458, /* #x06A8 CYRILLIC SMALL LETTER JE */ + 0x0459, /* #x06A9 CYRILLIC SMALL LETTER LJE */ + 0x045A, /* #x06AA CYRILLIC SMALL LETTER NJE */ + 0x045B, /* #x06AB CYRILLIC SMALL LETTER TSHE */ + 0x045C, /* #x06AC CYRILLIC SMALL LETTER KJE */ + 0x0491, /* #x06AD CYRILLIC SMALL LETTER GHE WITH UPTURN */ + 0x045E, /* #x06AE CYRILLIC SMALL LETTER SHORT U */ + 0x045F, /* #x06AF CYRILLIC SMALL LETTER DZHE */ + 0x2116, /* #x06B0 NUMERO SIGN */ + 0x0402, /* #x06B1 CYRILLIC CAPITAL LETTER DJE */ + 0x0403, /* #x06B2 CYRILLIC CAPITAL LETTER GJE */ + 0x0401, /* #x06B3 CYRILLIC CAPITAL LETTER IO */ + 0x0404, /* #x06B4 CYRILLIC CAPITAL LETTER UKRAINIAN IE */ + 0x0405, /* #x06B5 CYRILLIC CAPITAL LETTER DZE */ + 0x0406, /* #x06B6 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ + 0x0407, /* #x06B7 CYRILLIC CAPITAL LETTER YI */ + 0x0408, /* #x06B8 CYRILLIC CAPITAL LETTER JE */ + 0x0409, /* #x06B9 CYRILLIC CAPITAL LETTER LJE */ + 0x040A, /* #x06BA CYRILLIC CAPITAL LETTER NJE */ + 0x040B, /* #x06BB CYRILLIC CAPITAL LETTER TSHE */ + 0x040C, /* #x06BC CYRILLIC CAPITAL LETTER KJE */ + 0x0490, /* #x06BD CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ + 0x040E, /* #x06BE CYRILLIC CAPITAL LETTER SHORT U */ + 0x040F, /* #x06BF CYRILLIC CAPITAL LETTER DZHE */ + 0x044E, /* #x06C0 CYRILLIC SMALL LETTER YU */ + 0x0430, /* #x06C1 CYRILLIC SMALL LETTER A */ + 0x0431, /* #x06C2 CYRILLIC SMALL LETTER BE */ + 0x0446, /* #x06C3 CYRILLIC SMALL LETTER TSE */ + 0x0434, /* #x06C4 CYRILLIC SMALL LETTER DE */ + 0x0435, /* #x06C5 CYRILLIC SMALL LETTER IE */ + 0x0444, /* #x06C6 CYRILLIC SMALL LETTER EF */ + 0x0433, /* #x06C7 CYRILLIC SMALL LETTER GHE */ + 0x0445, /* #x06C8 CYRILLIC SMALL LETTER HA */ + 0x0438, /* #x06C9 CYRILLIC SMALL LETTER I */ + 0x0439, /* #x06CA CYRILLIC SMALL LETTER SHORT I */ + 0x043A, /* #x06CB CYRILLIC SMALL LETTER KA */ + 0x043B, /* #x06CC CYRILLIC SMALL LETTER EL */ + 0x043C, /* #x06CD CYRILLIC SMALL LETTER EM */ + 0x043D, /* #x06CE CYRILLIC SMALL LETTER EN */ + 0x043E, /* #x06CF CYRILLIC SMALL LETTER O */ + 0x043F, /* #x06D0 CYRILLIC SMALL LETTER PE */ + 0x044F, /* #x06D1 CYRILLIC SMALL LETTER YA */ + 0x0440, /* #x06D2 CYRILLIC SMALL LETTER ER */ + 0x0441, /* #x06D3 CYRILLIC SMALL LETTER ES */ + 0x0442, /* #x06D4 CYRILLIC SMALL LETTER TE */ + 0x0443, /* #x06D5 CYRILLIC SMALL LETTER U */ + 0x0436, /* #x06D6 CYRILLIC SMALL LETTER ZHE */ + 0x0432, /* #x06D7 CYRILLIC SMALL LETTER VE */ + 0x044C, /* #x06D8 CYRILLIC SMALL LETTER SOFT SIGN */ + 0x044B, /* #x06D9 CYRILLIC SMALL LETTER YERU */ + 0x0437, /* #x06DA CYRILLIC SMALL LETTER ZE */ + 0x0448, /* #x06DB CYRILLIC SMALL LETTER SHA */ + 0x044D, /* #x06DC CYRILLIC SMALL LETTER E */ + 0x0449, /* #x06DD CYRILLIC SMALL LETTER SHCHA */ + 0x0447, /* #x06DE CYRILLIC SMALL LETTER CHE */ + 0x044A, /* #x06DF CYRILLIC SMALL LETTER HARD SIGN */ + 0x042E, /* #x06E0 CYRILLIC CAPITAL LETTER YU */ + 0x0410, /* #x06E1 CYRILLIC CAPITAL LETTER A */ + 0x0411, /* #x06E2 CYRILLIC CAPITAL LETTER BE */ + 0x0426, /* #x06E3 CYRILLIC CAPITAL LETTER TSE */ + 0x0414, /* #x06E4 CYRILLIC CAPITAL LETTER DE */ + 0x0415, /* #x06E5 CYRILLIC CAPITAL LETTER IE */ + 0x0424, /* #x06E6 CYRILLIC CAPITAL LETTER EF */ + 0x0413, /* #x06E7 CYRILLIC CAPITAL LETTER GHE */ + 0x0425, /* #x06E8 CYRILLIC CAPITAL LETTER HA */ + 0x0418, /* #x06E9 CYRILLIC CAPITAL LETTER I */ + 0x0419, /* #x06EA CYRILLIC CAPITAL LETTER SHORT I */ + 0x041A, /* #x06EB CYRILLIC CAPITAL LETTER KA */ + 0x041B, /* #x06EC CYRILLIC CAPITAL LETTER EL */ + 0x041C, /* #x06ED CYRILLIC CAPITAL LETTER EM */ + 0x041D, /* #x06EE CYRILLIC CAPITAL LETTER EN */ + 0x041E, /* #x06EF CYRILLIC CAPITAL LETTER O */ + 0x041F, /* #x06F0 CYRILLIC CAPITAL LETTER PE */ + 0x042F, /* #x06F1 CYRILLIC CAPITAL LETTER YA */ + 0x0420, /* #x06F2 CYRILLIC CAPITAL LETTER ER */ + 0x0421, /* #x06F3 CYRILLIC CAPITAL LETTER ES */ + 0x0422, /* #x06F4 CYRILLIC CAPITAL LETTER TE */ + 0x0423, /* #x06F5 CYRILLIC CAPITAL LETTER U */ + 0x0416, /* #x06F6 CYRILLIC CAPITAL LETTER ZHE */ + 0x0412, /* #x06F7 CYRILLIC CAPITAL LETTER VE */ + 0x042C, /* #x06F8 CYRILLIC CAPITAL LETTER SOFT SIGN */ + 0x042B, /* #x06F9 CYRILLIC CAPITAL LETTER YERU */ + 0x0417, /* #x06FA CYRILLIC CAPITAL LETTER ZE */ + 0x0428, /* #x06FB CYRILLIC CAPITAL LETTER SHA */ + 0x042D, /* #x06FC CYRILLIC CAPITAL LETTER E */ + 0x0429, /* #x06FD CYRILLIC CAPITAL LETTER SHCHA */ + 0x0427, /* #x06FE CYRILLIC CAPITAL LETTER CHE */ + 0x042A, /* #x06FF CYRILLIC CAPITAL LETTER HARD SIGN */ + }; + /* For every key on the keyboard that has a known character correspondence, we define the character-of-keysym property of its XEmacs keysym, and make the default binding for the key be self-insert-command. @@ -542,21 +642,7 @@ break; case 6: /* Cyrillic */ { - static UExtbyte const cyrillic[] = /* 0x20 - 0x7f */ - {0x00, 0x72, 0x73, 0x71, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x00, 0x7e, 0x7f, - 0x70, 0x22, 0x23, 0x21, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x00, 0x2e, 0x2f, - 0x6e, 0x50, 0x51, 0x66, 0x54, 0x55, 0x64, 0x53, - 0x65, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, - 0x5f, 0x6f, 0x60, 0x61, 0x62, 0x63, 0x56, 0x52, - 0x6c, 0x6b, 0x57, 0x68, 0x6d, 0x69, 0x67, 0x6a, - 0x4e, 0x30, 0x31, 0x46, 0x34, 0x35, 0x44, 0x33, - 0x45, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, - 0x3f, 0x4f, 0x40, 0x41, 0x42, 0x43, 0x36, 0x32, - 0x4c, 0x4b, 0x37, 0x48, 0x4d, 0x49, 0x47, 0x4a}; - USE_CHARSET (charset, CYRILLIC_ISO8859_5); - code = cyrillic[(keysym & 0x7f) - 0x20]; + USE_UNICODE_MAP(keysym, CYRILLIC); break; } case 7: /* Greek */