enum libinput_key_state state;
int key_count;
xkb_keysym_t sym = XKB_KEY_NoSymbol;
- char key[256], keyname[256], compose_buffer[256];
+ char key[256] = {0, }, keyname[256] = {0, }, compose_buffer[256] = {0, };
Ecore_Event_Key *e;
char *tmp = NULL, *compose = NULL;
E_Keyrouter_Event_Data *key_data;
nsyms = xkb_key_get_syms(edev->xkb.state, code, &syms);
if (nsyms == 1) sym = syms[0];
- /* get the keyname for this sym */
- memset(key, 0, sizeof(key));
- xkb_keysym_get_name(sym, key, sizeof(key));
-
- memset(keyname, 0, sizeof(keyname));
- memcpy(keyname, key, sizeof(keyname));
+ /* If no keysym was found, name it "Keycode-NNN" */
+ if (sym == XKB_KEY_NoSymbol)
+ snprintf(key, sizeof(key), "Keycode-%u", code);
+ else
+ {
+ /* get the keyname for this sym */
+ xkb_keysym_get_name(sym, key, sizeof(key));
+ }
- if (keyname[0] == '\0')
- snprintf(keyname, sizeof(keyname), "Keycode-%u", code);
+ if (key[0] == '\0')
+ {
+ /* If no keyname was found, name it "Keycode-NNN" */
+ snprintf(keyname, sizeof(keyname), "Keycode-%u", code);
+ }
+ else
+ {
+ memcpy(keyname, key, sizeof(keyname));
+ }
/* if shift is active, we need to transform the key to lower */
if (xkb_state_mod_index_is_active(edev->xkb.state,
keyname[0] = tolower(keyname[0]);
}
- memset(compose_buffer, 0, sizeof(compose_buffer));
if (_device_keysym_translate(sym, edev->xkb.modifiers,
compose_buffer, sizeof(compose_buffer)))
{