Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 120766
Collapse All | Expand All

(-)Eterm-0.9.3/src/term.c (+42 lines)
Lines 185-190 Link Here
185
#  define LK_RET()   return
185
#  define LK_RET()   return
186
#endif
186
#endif
187
187
188
189
190
191
#define CARON 0xfe5a 
192
#define ACUTE 0xfe51
193
194
static KeySym dead_key_previous = 0;
195
196
#define CHARS 8
197
KeySym TransformTable[CHARS][3] = {
198
	{0x74,0xbb,CARON},	//t
199
	{0x6e,0xf2,CARON},	//n
200
	{0x64,0xef,CARON},	//d
201
	{0x54,0xab,CARON},	//T
202
	{0x4e,0xd2,CARON},	//N
203
	{0x44,0xcf,CARON},	//D
204
	{0x6f,0xf3,ACUTE},	//o
205
	{0x4f,0xd3,ACUTE},	//O
206
};
207
208
/* Transform key according to given dead key.
209
   Restricted to czech keyboard. */
210
void
211
transform_with_dead_key(KeySym * key,KeySym dead_key)
212
{
213
	int i;
214
	for (i=0; i<CHARS; i++)
215
	    if (*key==TransformTable[i][0] && dead_key==TransformTable[i][2]) { *key = TransformTable[i][1]; return; }
216
	
217
}
218
219
220
221
 
188
/* This function is called for every keypress event we receive.  Its job is to convert
222
/* This function is called for every keypress event we receive.  Its job is to convert
189
   the keypress into its corresponding action.  It is responsible for calling the action
223
   the keypress into its corresponding action.  It is responsible for calling the action
190
   bindings routine to see if there is an action binding for that keysym; if there is,
224
   bindings routine to see if there is an action binding for that keysym; if there is,
Lines 282-287 Link Here
282
    if (valid_keysym) {
317
    if (valid_keysym) {
283
#endif
318
#endif
284
319
320
	/* Transform keysym according to previous dead key */
321
	if (keysym==CARON || keysym==ACUTE) { dead_key_previous=keysym; return; }
322
	if (dead_key_previous) {
323
 	    transform_with_dead_key(&keysym, dead_key_previous);
324
	    kbuf[0]=keysym;kbuf[1]=0;
325
	    dead_key_previous = 0;
326
	}
327
285
        /* Check for a corresponding action binding.  If there is one, we're done with this event. */
328
        /* Check for a corresponding action binding.  If there is one, we're done with this event. */
286
        if (action_dispatch(ev, keysym)) {
329
        if (action_dispatch(ev, keysym)) {
287
            LK_RET();
330
            LK_RET();

Return to bug 120766