Patchwork [v2,2/2] qmp: revert "add set_echo implementation for qemu_chr_stdio"

login
register
mail settings
Submitter Pavel Hrdina
Date May 30, 2012, 4:01 p.m.
Message ID <cd656e6cd5bfd5addbbb3f39611577e727315c76.1338389477.git.phrdina@redhat.com>
Download mbox | patch
Permalink /patch/162029/
State New
Headers show

Comments

Pavel Hrdina - May 30, 2012, 4:01 p.m.
This reverts commit bb002513a9bd2bff169c3d431a8f00c5b2e3aa99 because this code is not used
in order that we use readline mode for '-qmp stdio'.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
 qemu-char.c |   26 ++++++++++----------------
 1 files changed, 10 insertions(+), 16 deletions(-)

Patch

diff --git a/qemu-char.c b/qemu-char.c
index fe1126f..ba336f4 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -727,7 +727,6 @@  static void stdio_read(void *opaque)
 /* init terminal so that we can grab keys */
 static struct termios oldtty;
 static int old_fd0_flags;
-static bool stdio_allow_signal;
 
 static void term_exit(void)
 {
@@ -735,24 +734,22 @@  static void term_exit(void)
     fcntl(0, F_SETFL, old_fd0_flags);
 }
 
-static void qemu_chr_set_echo_stdio(CharDriverState *chr, bool echo)
+static void term_init(QemuOpts *opts)
 {
     struct termios tty;
 
     tty = oldtty;
-    if (!echo) {
-        tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP
+    tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP
                           |INLCR|IGNCR|ICRNL|IXON);
-        tty.c_oflag |= OPOST;
-        tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN);
-        tty.c_cflag &= ~(CSIZE|PARENB);
-        tty.c_cflag |= CS8;
-        tty.c_cc[VMIN] = 1;
-        tty.c_cc[VTIME] = 0;
-    }
+    tty.c_oflag |= OPOST;
+    tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN);
     /* if graphical mode, we allow Ctrl-C handling */
-    if (!stdio_allow_signal)
+    if (!qemu_opt_get_bool(opts, "signal", display_type != DT_NOGRAPHIC))
         tty.c_lflag &= ~ISIG;
+    tty.c_cflag &= ~(CSIZE|PARENB);
+    tty.c_cflag |= CS8;
+    tty.c_cc[VMIN] = 1;
+    tty.c_cc[VTIME] = 0;
 
     tcsetattr (0, TCSANOW, &tty);
 }
@@ -781,12 +778,9 @@  static CharDriverState *qemu_chr_open_stdio(QemuOpts *opts)
 
     chr = qemu_chr_open_fd(0, 1);
     chr->chr_close = qemu_chr_close_stdio;
-    chr->chr_set_echo = qemu_chr_set_echo_stdio;
     qemu_set_fd_handler2(0, stdio_read_poll, stdio_read, NULL, chr);
     stdio_nb_clients++;
-    stdio_allow_signal = qemu_opt_get_bool(opts, "signal",
-                                           display_type != DT_NOGRAPHIC);
-    qemu_chr_fe_set_echo(chr, false);
+    term_init(opts);
 
     return chr;
 }