- c = '-';
- tty_write (v->t, &c, 1);
- }
- break;
- case KEY_COMMA:
- if (v->application_keypad_mode)
- {
- uint8_t buf[] = { 033, 'O', 'l' };
- tty_write (v->t, &key, sizeof (buf));
- }
- else
- {
- c = ',';
- tty_write (v->t, &c, 1);
- }
- break;
- case KEY_PERIOD:
- if (v->application_keypad_mode)
- {
- uint8_t buf[] = { 033, 'O', 'n' };
- tty_write (v->t, &key, sizeof (buf));
- }
- else
- {
- c = '.';
- tty_write (v->t, &c, 1);
+ static char kpoff[KEY_NUM] = {
+ [KEY_STAR] = '*',
+ [KEY_PLUS] = '+',
+ [KEY_COMMA] = ',',
+ [KEY_MINUS] = '-',
+ [KEY_PERIOD] = '.',
+ [KEY_DIVIDE] = '/',
+ [KEY_0] = '0',
+ [KEY_1] = '1',
+ [KEY_2] = '2',
+ [KEY_3] = '3',
+ [KEY_4] = '4',
+ [KEY_5] = '5',
+ [KEY_6] = '6',
+ [KEY_7] = '7',
+ [KEY_8] = '8',
+ [KEY_9] = '9'
+ };
+
+ tty_write (v->tty, &kpoff[key], 1);