|
@@ -926,7 +926,6 @@ static void qemu_chr_set_echo_stdio(CharDriverState *chr, bool echo)
|
|
|
tty.c_cc[VMIN] = 1;
|
|
|
tty.c_cc[VTIME] = 0;
|
|
|
}
|
|
|
- /* if graphical mode, we allow Ctrl-C handling */
|
|
|
if (!stdio_allow_signal)
|
|
|
tty.c_lflag &= ~ISIG;
|
|
|
|
|
@@ -955,7 +954,6 @@ static CharDriverState *qemu_chr_open_stdio(ChardevStdio *opts)
|
|
|
chr = qemu_chr_open_fd(0, 1);
|
|
|
chr->chr_close = qemu_chr_close_stdio;
|
|
|
chr->chr_set_echo = qemu_chr_set_echo_stdio;
|
|
|
- stdio_allow_signal = display_type != DT_NOGRAPHIC;
|
|
|
if (opts->has_signal) {
|
|
|
stdio_allow_signal = opts->signal;
|
|
|
}
|
|
@@ -2932,6 +2930,14 @@ QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)
|
|
|
if (strstart(filename, "mon:", &p)) {
|
|
|
filename = p;
|
|
|
qemu_opt_set(opts, "mux", "on");
|
|
|
+ if (strcmp(filename, "stdio") == 0) {
|
|
|
+ /* Monitor is muxed to stdio: do not exit on Ctrl+C by default
|
|
|
+ * but pass it to the guest. Handle this only for compat syntax,
|
|
|
+ * for -chardev syntax we have special option for this.
|
|
|
+ * This is what -nographic did, redirecting+muxing serial+monitor
|
|
|
+ * to stdio causing Ctrl+C to be passed to guest. */
|
|
|
+ qemu_opt_set(opts, "signal", "off");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (strcmp(filename, "null") == 0 ||
|
|
@@ -3060,8 +3066,7 @@ static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
|
|
|
{
|
|
|
backend->stdio = g_new0(ChardevStdio, 1);
|
|
|
backend->stdio->has_signal = true;
|
|
|
- backend->stdio->signal =
|
|
|
- qemu_opt_get_bool(opts, "signal", display_type != DT_NOGRAPHIC);
|
|
|
+ backend->stdio->signal = qemu_opt_get_bool(opts, "signal", true);
|
|
|
}
|
|
|
|
|
|
static void qemu_chr_parse_serial(QemuOpts *opts, ChardevBackend *backend,
|