{ KSYM_braceright, "XK_braceright", "brace right" },
{ KSYM_asciitilde, "XK_asciitilde", "~" },
- /* special (non-ASCII) keys (ISO-Latin-1) */
+ /* special (non-ASCII) keys */
{ KSYM_degree, "XK_degree", "degree" },
{ KSYM_Adiaeresis, "XK_Adiaeresis", "A umlaut" },
{ KSYM_Odiaeresis, "XK_Odiaeresis", "O umlaut" },
char getCharFromKey(Key key)
{
+ static struct
+ {
+ Key key;
+ byte key_char;
+ } translate_key_char[] =
+ {
+ /* special (non-ASCII) keys (ISO-8859-1) */
+ { KSYM_degree, CHAR_BYTE_DEGREE },
+ { KSYM_Adiaeresis, CHAR_BYTE_UMLAUT_A },
+ { KSYM_Odiaeresis, CHAR_BYTE_UMLAUT_O },
+ { KSYM_Udiaeresis, CHAR_BYTE_UMLAUT_U },
+ { KSYM_adiaeresis, CHAR_BYTE_UMLAUT_a },
+ { KSYM_odiaeresis, CHAR_BYTE_UMLAUT_o },
+ { KSYM_udiaeresis, CHAR_BYTE_UMLAUT_u },
+ { KSYM_ssharp, CHAR_BYTE_SHARP_S },
+
+ /* end-of-array identifier */
+ { 0, 0 }
+ };
+
char *keyname = getKeyNameFromKey(key);
char c = 0;
c = keyname[0];
else if (strEqual(keyname, "space"))
c = ' ';
+ else
+ {
+ int i = 0;
+
+ do
+ {
+ if (key == translate_key_char[i].key)
+ {
+ c = translate_key_char[i].key_char;
+
+ break;
+ }
+ }
+ while (translate_key_char[++i].key_char);
+ }
return c;
}
#define MAX_OUTPUT_LINESIZE 1024
/* special constants for old ISO-8859-1 character byte values */
-#define CHAR_BYTE_UMLAUT_A (0xc4)
-#define CHAR_BYTE_UMLAUT_O (0xd6)
-#define CHAR_BYTE_UMLAUT_U (0xdc)
-#define CHAR_BYTE_UMLAUT_a (0xe4)
-#define CHAR_BYTE_UMLAUT_o (0xf6)
-#define CHAR_BYTE_UMLAUT_u (0xfc)
-#define CHAR_BYTE_SHARP_S (0xdf)
-#define CHAR_BYTE_COPYRIGHT (0xa9)
-#define CHAR_BYTE_REGISTERED (0xae)
-#define CHAR_BYTE_DEGREE (0xb0)
-#define CHAR_BYTE_CURSOR (0xa0)
+#define CHAR_BYTE_UMLAUT_A ((char)0xc4)
+#define CHAR_BYTE_UMLAUT_O ((char)0xd6)
+#define CHAR_BYTE_UMLAUT_U ((char)0xdc)
+#define CHAR_BYTE_UMLAUT_a ((char)0xe4)
+#define CHAR_BYTE_UMLAUT_o ((char)0xf6)
+#define CHAR_BYTE_UMLAUT_u ((char)0xfc)
+#define CHAR_BYTE_SHARP_S ((char)0xdf)
+#define CHAR_BYTE_COPYRIGHT ((char)0xa9)
+#define CHAR_BYTE_REGISTERED ((char)0xae)
+#define CHAR_BYTE_DEGREE ((char)0xb0)
+#define CHAR_BYTE_CURSOR ((char)0xa0)
/* special character mapping for default fonts */
#define FONT_ASCII_CURSOR ((char)160)