vt->out_flush(vt);
}
-/* called when an ascii key is pressed */
-void qemu_text_console_handle_keysym(QemuTextConsole *s, int keysym)
+static int vt100_input(QemuVT100 *vt, const uint8_t *buf, int len);
+
+static void vt100_keysym(QemuVT100 *vt, int keysym)
{
uint8_t buf[16], *q;
int c;
switch(keysym) {
case QEMU_KEY_CTRL_UP:
- vt100_scroll(&s->vt, -1);
+ vt100_scroll(vt, -1);
break;
case QEMU_KEY_CTRL_DOWN:
- vt100_scroll(&s->vt, 1);
+ vt100_scroll(vt, 1);
break;
case QEMU_KEY_CTRL_PAGEUP:
- vt100_scroll(&s->vt, -10);
+ vt100_scroll(vt, -10);
break;
case QEMU_KEY_CTRL_PAGEDOWN:
- vt100_scroll(&s->vt, 10);
+ vt100_scroll(vt, 10);
break;
default:
/* convert the QEMU keysym to VT100 key string */
*q++ = '\033';
*q++ = '[';
*q++ = keysym & 0xff;
- } else if (s->vt.echo && (keysym == '\r' || keysym == '\n')) {
- qemu_chr_write(s->chr, (uint8_t *)"\r", 1, true);
+ } else if (vt->echo && (keysym == '\r' || keysym == '\n')) {
+ vt100_input(vt, (uint8_t *)"\r", 1);
*q++ = '\n';
} else {
*q++ = keysym;
}
- if (s->vt.echo) {
- qemu_chr_write(s->chr, buf, q - buf, true);
+ if (vt->echo) {
+ vt100_input(vt, buf, q - buf);
}
- vt100_write(&s->vt, buf, q - buf);
+ vt100_write(vt, buf, q - buf);
break;
}
+
+}
+/* called when an ascii key is pressed */
+void qemu_text_console_handle_keysym(QemuTextConsole *s, int keysym)
+{
+ vt100_keysym(&s->vt, keysym);
}
static void text_console_update(void *opaque, console_ch_t *chardata)