- unsigned char buf;
-
- v = read(_ecore_fb_kbd_fd, &buf, 1);
- if (v < 0) return 1;
- if (v < 1) return 1;
- if (!(buf & 0x80))
- {
- /* DOWN */
- int vt_switch = -1;
- Ecore_Fb_Event_Key_Down *e;
-
- e = calloc(1, sizeof(Ecore_Fb_Event_Key_Down));
- if (!e) goto retry;
- if (_ecore_fb_kbd_fd == _ecore_fb_tty_fd)
- {
- int add = 0;
-
- if (_ecore_fb_shift) add = 1;
- else if (_ecore_fb_lock) add = 2;
- e->keyname = strdup(_ecore_fb_kbd_syms[(buf & 0x7f) * 6]);
- e->keysymbol = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) + add]);
- e->key_compose = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) + 3 + add]);
- }
- else
- e->keyname = strdup(_ecore_fb_btn_syms[buf & 0x7f]);
- if (!e->keyname)
- {
- free(e);
- goto retry;
- }
- ecore_event_add(ECORE_FB_EVENT_KEY_DOWN, e, _ecore_fb_event_free_key_down, NULL);
- if (!strcmp(e->keyname, "Control_L"))
- _ecore_fb_ctrl++;
- else if (!strcmp(e->keyname, "Control_R"))
- _ecore_fb_ctrl++;
- else if (!strcmp(e->keyname, "Alt_L"))
- _ecore_fb_alt++;
- else if (!strcmp(e->keyname, "Alt_R"))
- _ecore_fb_alt++;
- else if (!strcmp(e->keyname, "Shift_L"))
- _ecore_fb_shift++;
- else if (!strcmp(e->keyname, "Shift_R"))
- _ecore_fb_shift++;
- else if (!strcmp(e->keyname, "Caps_Lock"))
- _ecore_fb_lock++;
- else if (!strcmp(e->keyname, "F1")) vt_switch = 0;
- else if (!strcmp(e->keyname, "F2")) vt_switch = 1;
- else if (!strcmp(e->keyname, "F3")) vt_switch = 2;
- else if (!strcmp(e->keyname, "F4")) vt_switch = 3;
- else if (!strcmp(e->keyname, "F5")) vt_switch = 4;
- else if (!strcmp(e->keyname, "F6")) vt_switch = 5;
- else if (!strcmp(e->keyname, "F7")) vt_switch = 6;
- else if (!strcmp(e->keyname, "F8")) vt_switch = 7;
- else if (!strcmp(e->keyname, "F9")) vt_switch = 8;
- else if (!strcmp(e->keyname, "F10")) vt_switch = 9;
- else if (!strcmp(e->keyname, "F11")) vt_switch = 10;
- else if (!strcmp(e->keyname, "F12")) vt_switch = 11;
- if (_ecore_fb_ctrl > 2) _ecore_fb_ctrl = 2;
- if (_ecore_fb_alt > 2) _ecore_fb_alt = 2;
- if ((vt_switch >= 0) &&
- (_ecore_fb_ctrl) &&
- (_ecore_fb_alt))
- _ecore_fb_vt_switch(vt_switch);
- }
- else
- {
- /* UP */
- Ecore_Fb_Event_Key_Up *e;
-
- e = calloc(1, sizeof(Ecore_Fb_Event_Key_Up));
- if (!e) goto retry;
- if (_ecore_fb_kbd_fd == _ecore_fb_tty_fd)
- {
- int add = 0;
-
- if (_ecore_fb_shift) add = 1;
- else if (_ecore_fb_lock) add = 2;
- e->keyname = strdup(_ecore_fb_kbd_syms[(buf & 0x7f) * 6]);
- e->keysymbol = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) + add]);
- e->key_compose = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) + 3 + add]);
- }
- else
- e->keyname = strdup(_ecore_fb_btn_syms[buf & 0x7f]);
- if (!e->keyname)
- {
- free(e);
- goto retry;
- }
- ecore_event_add(ECORE_FB_EVENT_KEY_UP, e, _ecore_fb_event_free_key_up, NULL);
- if (!strcmp(e->keyname, "Control_L"))
- _ecore_fb_ctrl--;
- else if (!strcmp(e->keyname, "Control_R"))
- _ecore_fb_ctrl--;
- else if (!strcmp(e->keyname, "Alt_L"))
- _ecore_fb_alt--;
- else if (!strcmp(e->keyname, "Alt_R"))
- _ecore_fb_alt--;
- else if (!strcmp(e->keyname, "Shift_L"))
- _ecore_fb_shift--;
- else if (!strcmp(e->keyname, "Shift_R"))
- _ecore_fb_shift--;
- else if (!strcmp(e->keyname, "Caps_Lock"))
- _ecore_fb_lock--;
- if (_ecore_fb_ctrl < 0) _ecore_fb_ctrl = 0;
- if (_ecore_fb_alt < 0) _ecore_fb_alt = 0;
- if (_ecore_fb_shift < 0) _ecore_fb_shift = 0;
- if (_ecore_fb_lock < 0) _ecore_fb_lock = 0;
- }
- retry:
- ;
+ unsigned char buf;
+
+ v = read(_ecore_fb_kbd_fd, &buf, 1);
+ if (v < 0) return EINA_TRUE;
+ if (v < 1) return EINA_TRUE;
+ if (!(buf & 0x80))
+ {
+ /* DOWN */
+ int vt_switch = -1;
+ Ecore_Fb_Event_Key_Down *e;
+
+ e = calloc(1, sizeof(Ecore_Fb_Event_Key_Down));
+ if (!e) goto retry;
+ if (_ecore_fb_kbd_fd == _ecore_fb_tty_fd)
+ {
+ int add = 0;
+
+ if (_ecore_fb_shift) add = 1;
+ else if (_ecore_fb_lock) add = 2;
+ e->keyname = strdup(_ecore_fb_kbd_syms[(buf & 0x7f) * 7]);
+ e->keysymbol = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 7) + add]);
+ e->key_compose = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 7) + 3 + add]);
+ }
+ else
+ e->keyname = strdup(_ecore_fb_btn_syms[buf & 0x7f]);
+ if (!e->keyname)
+ {
+ free(e);
+ goto retry;
+ }
+ e->window = 1;
+ e->event_window = e->window;
+ e->root_window = e->window;
+ e->same_screen = 1;
+ e->timestamp = ecore_loop_time_get() * 1000.0;
+ if (!strcmp(e->keyname, "Control_L"))
+ _ecore_fb_ctrl++;
+ else if (!strcmp(e->keyname, "Control_R"))
+ _ecore_fb_ctrl++;
+ else if (!strcmp(e->keyname, "Alt_L"))
+ _ecore_fb_alt++;
+ else if (!strcmp(e->keyname, "Alt_R"))
+ _ecore_fb_alt++;
+ else if (!strcmp(e->keyname, "Shift_L"))
+ _ecore_fb_shift++;
+ else if (!strcmp(e->keyname, "Shift_R"))
+ _ecore_fb_shift++;
+ else if (!strcmp(e->keyname, "Caps_Lock"))
+ _ecore_fb_lock++;
+ else if (!strcmp(e->keyname, "F1")) vt_switch = 0;
+ else if (!strcmp(e->keyname, "F2")) vt_switch = 1;
+ else if (!strcmp(e->keyname, "F3")) vt_switch = 2;
+ else if (!strcmp(e->keyname, "F4")) vt_switch = 3;
+ else if (!strcmp(e->keyname, "F5")) vt_switch = 4;
+ else if (!strcmp(e->keyname, "F6")) vt_switch = 5;
+ else if (!strcmp(e->keyname, "F7")) vt_switch = 6;
+ else if (!strcmp(e->keyname, "F8")) vt_switch = 7;
+ else if (!strcmp(e->keyname, "F9")) vt_switch = 8;
+ else if (!strcmp(e->keyname, "F10")) vt_switch = 9;
+ else if (!strcmp(e->keyname, "F11")) vt_switch = 10;
+ else if (!strcmp(e->keyname, "F12")) vt_switch = 11;
+ if (_ecore_fb_ctrl > 2) _ecore_fb_ctrl = 2;
+ if (_ecore_fb_alt > 2) _ecore_fb_alt = 2;
+ if ((_ecore_fb_kbd_fd == _ecore_fb_tty_fd) &&
+ (_ecore_fb_ctrl))
+ {
+ const char *ts = _ecore_fb_kbd_syms[(buf & 0x7f) + 3 + 3];
+
+ if (ts)
+ {
+ if (e->key_compose) free(e->key_compose);
+ e->key_compose = strdup(ts);
+ }
+ }
+ if ((vt_switch >= 0) &&
+ (_ecore_fb_ctrl) &&
+ (_ecore_fb_alt))
+ _ecore_fb_vt_switch(vt_switch);
+ ecore_event_add(ECORE_FB_EVENT_KEY_DOWN, e, _ecore_fb_event_free_key_down, NULL);
+ }
+ else
+ {
+ /* UP */
+ Ecore_Fb_Event_Key_Up *e;
+
+ e = calloc(1, sizeof(Ecore_Fb_Event_Key_Up));
+ if (!e) goto retry;
+ if (_ecore_fb_kbd_fd == _ecore_fb_tty_fd)
+ {
+ int add = 0;
+
+ if (_ecore_fb_shift) add = 1;
+ else if (_ecore_fb_lock) add = 2;
+ e->keyname = strdup(_ecore_fb_kbd_syms[(buf & 0x7f) * 7]);
+ e->keysymbol = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 7) + add]);
+ e->key_compose = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 7) + 3 + add]);
+ }
+ else
+ e->keyname = strdup(_ecore_fb_btn_syms[buf & 0x7f]);
+ if (!e->keyname)
+ {
+ free(e);
+ goto retry;
+ }
+ e->window = 1;
+ e->event_window = e->window;
+ e->root_window = e->window;
+ e->same_screen = 1;
+ e->timestamp = ecore_loop_time_get() * 1000.0;
+ ecore_event_add(ECORE_FB_EVENT_KEY_UP, e, _ecore_fb_event_free_key_up, NULL);
+ if (!strcmp(e->keyname, "Control_L"))
+ _ecore_fb_ctrl--;
+ else if (!strcmp(e->keyname, "Control_R"))
+ _ecore_fb_ctrl--;
+ else if (!strcmp(e->keyname, "Alt_L"))
+ _ecore_fb_alt--;
+ else if (!strcmp(e->keyname, "Alt_R"))
+ _ecore_fb_alt--;
+ else if (!strcmp(e->keyname, "Shift_L"))
+ _ecore_fb_shift--;
+ else if (!strcmp(e->keyname, "Shift_R"))
+ _ecore_fb_shift--;
+ else if (!strcmp(e->keyname, "Caps_Lock"))
+ _ecore_fb_lock--;
+ if (_ecore_fb_ctrl < 0) _ecore_fb_ctrl = 0;
+ if (_ecore_fb_alt < 0) _ecore_fb_alt = 0;
+ if (_ecore_fb_shift < 0) _ecore_fb_shift = 0;
+ if (_ecore_fb_lock < 0) _ecore_fb_lock = 0;
+ }
+retry:
+ ;