[COMMIT] Support Ghe with upturn in X11

Aidan Kehoe kehoea
Sat Oct 28 12:12:17 EDT 2006


 Ar an seacht? l? is fiche de m? Deireadh F?mhair, scr?obh Andriy Gapon:  
 
 > [...] P.S. Macedonian Gje is now OK, so it seems that the Soviet 
 > conspiracy against GHE WITH UPTURN lives on, kidding :-) 
 
The Soviet conspiracy against GHE WITH UPTURN, and its resulting exclusion
from ISO-8859-5 was indeed the problem. The patch below, which I?ve just
committed, allows you to input that character, but display won?t work until
the other patch I mentioned that uses Unicode fonts gets
committed. Hopefully tomorrow. 

APPROVE COMMIT

NOTE: This patch has been committed.

src/ChangeLog addition:

2006-10-28  Aidan Kehoe  <kehoea at 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.
	

XEmacs Trunk source patch:
Diff command:   cvs -q diff -Nu
Files affected: src/event-xlike-inc.c

Index: src/event-xlike-inc.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/event-xlike-inc.c,v
retrieving revision 1.4
diff -u -u -r1.4 event-xlike-inc.c
--- src/event-xlike-inc.c	2006/06/18 18:34:21	1.4
+++ src/event-xlike-inc.c	2006/10/28 15:54:09
@@ -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 */

-- 
Santa Maradona, priez pour moi!



More information about the XEmacs-Beta mailing list