This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v3 16/34] Make target_terminal_inferior/ours almost nops on non-main UIs
- From: Pedro Alves <palves at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Fri, 6 May 2016 13:34:46 +0100
- Subject: [PATCH v3 16/34] Make target_terminal_inferior/ours almost nops on non-main UIs
- Authentication-results: sourceware.org; auth=none
- References: <1462538104-19109-1-git-send-email-palves at redhat dot com>
Since we always run the inferior in the main console (unless "set
inferior-tty" is in effect), when some UI other than the main one
calls target_terminal_inferior/target_terminal_inferior, then we only
register/unregister the UI's input from the event loop, but leave the
main UI's terminal settings as is.
gdb/ChangeLog:
yyyy-mm-dd Pedro Alves <palves@redhat.com>
* target.c (target_terminal_inferior): Bail out after
unregistering input_fd if not on the main UI.
(target_terminal_ours): Bail out after registering input_fd if not
on the main UI.
(target_terminal_ours_for_output): Bail out if not on the main UI.
---
gdb/target.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/gdb/target.c b/gdb/target.c
index 2d16c96..12d5de2 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -493,6 +493,14 @@ target_terminal_inferior (void)
UI. */
delete_file_handler (ui->input_fd);
+ /* Since we always run the inferior in the main console (unless "set
+ inferior-tty" is in effect), when some UI other than the main one
+ calls target_terminal_inferior/target_terminal_inferior, then we
+ only register/unregister the UI's input from the event loop, but
+ leave the main UI's terminal settings as is. */
+ if (ui != main_ui)
+ return;
+
if (terminal_state == terminal_is_inferior)
return;
@@ -519,6 +527,10 @@ target_terminal_ours (void)
UI. */
add_file_handler (ui->input_fd, stdin_event_handler, ui);
+ /* See target_terminal_inferior. */
+ if (ui != main_ui)
+ return;
+
if (terminal_state == terminal_is_ours)
return;
@@ -531,6 +543,12 @@ target_terminal_ours (void)
void
target_terminal_ours_for_output (void)
{
+ struct ui *ui = current_ui;
+
+ /* See target_terminal_inferior. */
+ if (ui != main_ui)
+ return;
+
if (terminal_state != terminal_is_inferior)
return;
(*current_target.to_terminal_ours_for_output) (¤t_target);
--
2.5.5