Use a simple table for Unicode translation
authorPatrice Mandin <patmandin@gmail.com>
Mon, 02 Jan 2006 19:49:21 +0000
changeset 12218ef3e7e92a91
parent 1220 ca2f0da7b708
child 1222 09c1408645df
Use a simple table for Unicode translation
src/video/ataricommon/SDL_atarievents.c
src/video/ataricommon/SDL_atarievents_c.h
src/video/ataricommon/SDL_biosevents.c
src/video/ataricommon/SDL_gemdosevents.c
src/video/ataricommon/SDL_ikbdevents.c
src/video/gem/SDL_gemevents.c
     1.1 --- a/src/video/ataricommon/SDL_atarievents.c	Mon Jan 02 12:48:58 2006 +0000
     1.2 +++ b/src/video/ataricommon/SDL_atarievents.c	Mon Jan 02 19:49:21 2006 +0000
     1.3 @@ -128,12 +128,45 @@
     1.4  	this->PumpEvents(this);
     1.5  }
     1.6  
     1.7 -Uint16 SDL_AtariToUnicode(Uint8 caracter)
     1.8 -{
     1.9 -	/* Translate from Atari charset to Unicode */
    1.10 -	if ((caracter>=32) && (caracter<=127)) {
    1.11 -		return (Uint16) caracter;
    1.12 -	}
    1.13 +/* Atari to Unicode charset translation table */
    1.14  
    1.15 -	return 0;
    1.16 -}
    1.17 +Uint16 SDL_AtariToUnicodeTable[256]={
    1.18 +	/* Standard ASCII characters from 0x00 to 0x7e */
    1.19 +	/* Unicode stuff from 0x7f to 0xff */
    1.20 +
    1.21 +	0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
    1.22 +	0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
    1.23 +	0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
    1.24 +	0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
    1.25 +	0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
    1.26 +	0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
    1.27 +	0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
    1.28 +	0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
    1.29 +
    1.30 +	0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
    1.31 +	0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
    1.32 +	0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
    1.33 +	0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
    1.34 +	0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
    1.35 +	0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
    1.36 +	0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
    1.37 +	0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x0394,
    1.38 +
    1.39 +	0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7,
    1.40 +	0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5,
    1.41 +	0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9,
    1.42 +	0x00FF,0x00D6,0x00DC,0x00A2,0x00A3,0x00A5,0x00DF,0x0192,
    1.43 +	0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA,
    1.44 +	0x00BF,0x2310,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB,
    1.45 +	0x00C3,0x00F5,0x00D8,0x00F8,0x0153,0x0152,0x00C0,0x00C3,
    1.46 +	0x00D5,0x00A8,0x00B4,0x2020,0x00B6,0x00A9,0x00AE,0x2122,
    1.47 +
    1.48 +	0x0133,0x0132,0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,
    1.49 +	0x05D6,0x05D7,0x05D8,0x05D9,0x05DB,0x05DC,0x05DE,0x05E0,
    1.50 +	0x05E1,0x05E2,0x05E4,0x05E6,0x05E7,0x05E8,0x05E9,0x05EA,
    1.51 +	0x05DF,0x05DA,0x05DD,0x05E3,0x05E5,0x00A7,0x2038,0x221E,
    1.52 +	0x03B1,0x03B2,0x0393,0x03C0,0x03A3,0x03C3,0x00B5,0x03C4,
    1.53 +	0x03A6,0x0398,0x03A9,0x03B4,0x222E,0x03C6,0x2208,0x2229,
    1.54 +	0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248,
    1.55 +	0x00B0,0x2022,0x00B7,0x221A,0x207F,0x00B2,0x00B3,0x00AF
    1.56 +};
     2.1 --- a/src/video/ataricommon/SDL_atarievents_c.h	Mon Jan 02 12:48:58 2006 +0000
     2.2 +++ b/src/video/ataricommon/SDL_atarievents_c.h	Mon Jan 02 19:49:21 2006 +0000
     2.3 @@ -44,6 +44,7 @@
     2.4  extern void Atari_InitOSKeymap(_THIS);
     2.5  extern void Atari_PumpEvents(_THIS);
     2.6  
     2.7 -extern Uint16 SDL_AtariToUnicode(Uint8 caracter);
     2.8 +/* Atari to Unicode charset translation table */
     2.9 +extern Uint16 SDL_AtariToUnicodeTable[256];
    2.10  
    2.11  #endif /* _SDL_ATARI_EVENTS_H_ */
     3.1 --- a/src/video/ataricommon/SDL_biosevents.c	Mon Jan 02 12:48:58 2006 +0000
     3.2 +++ b/src/video/ataricommon/SDL_biosevents.c	Mon Jan 02 19:49:21 2006 +0000
     3.3 @@ -182,8 +182,8 @@
     3.4  
     3.5  	keysym->mod = KMOD_NONE;
     3.6  	keysym->unicode = 0;
     3.7 -	if (pressed && (asciicode!=0)) {
     3.8 -		keysym->unicode = SDL_AtariToUnicode(asciicode);
     3.9 +	if (SDL_TranslateUNICODE && pressed) {
    3.10 +		keysym->unicode = SDL_AtariToUnicodeTable[asciicode];
    3.11  	}
    3.12  
    3.13  	return(keysym);
     4.1 --- a/src/video/ataricommon/SDL_gemdosevents.c	Mon Jan 02 12:48:58 2006 +0000
     4.2 +++ b/src/video/ataricommon/SDL_gemdosevents.c	Mon Jan 02 19:49:21 2006 +0000
     4.3 @@ -187,8 +187,8 @@
     4.4  
     4.5  	keysym->mod = KMOD_NONE;
     4.6  	keysym->unicode = 0;
     4.7 -	if (pressed && (asciicode!=0)) {
     4.8 -		keysym->unicode = SDL_AtariToUnicode(asciicode);
     4.9 +	if (SDL_TranslateUNICODE && pressed) {
    4.10 +		keysym->unicode = SDL_AtariToUnicodeTable[asciicode];
    4.11  	}
    4.12  
    4.13  	return(keysym);
     5.1 --- a/src/video/ataricommon/SDL_ikbdevents.c	Mon Jan 02 12:48:58 2006 +0000
     5.2 +++ b/src/video/ataricommon/SDL_ikbdevents.c	Mon Jan 02 19:49:21 2006 +0000
     5.3 @@ -241,8 +241,8 @@
     5.4  
     5.5  	keysym->mod = KMOD_NONE;
     5.6  	keysym->unicode = 0;
     5.7 -	if (pressed && (asciicode!=0)) {
     5.8 -		keysym->unicode = SDL_AtariToUnicode(asciicode);
     5.9 +	if (SDL_TranslateUNICODE && pressed) {
    5.10 +		keysym->unicode = SDL_AtariToUnicodeTable[asciicode];
    5.11  	}
    5.12  
    5.13  	return(keysym);
     6.1 --- a/src/video/gem/SDL_gemevents.c	Mon Jan 02 12:48:58 2006 +0000
     6.2 +++ b/src/video/gem/SDL_gemevents.c	Mon Jan 02 19:49:21 2006 +0000
     6.3 @@ -83,8 +83,8 @@
     6.4  
     6.5  	keysym->mod = KMOD_NONE;
     6.6  	keysym->unicode = 0;
     6.7 -	if (pressed && (asciicode!=0)) {
     6.8 -		keysym->unicode = SDL_AtariToUnicode(asciicode);
     6.9 +	if (SDL_TranslateUNICODE && pressed) {
    6.10 +		keysym->unicode = SDL_AtariToUnicodeTable[asciicode];
    6.11  	}
    6.12  
    6.13  	return(keysym);