public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@efficios.com>
To: gdb-patches@sourceware.org
Cc: Simon Marchi <simon.marchi@efficios.com>
Subject: [PATCH 08/21] gdb: pass ui down to gdb_setup_readline and gdb_disable_readline
Date: Fri,  8 Sep 2023 14:23:02 -0400	[thread overview]
Message-ID: <20230908190227.96319-9-simon.marchi@efficios.com> (raw)
In-Reply-To: <20230908190227.96319-1-simon.marchi@efficios.com>

This is useful for the upcoming patches that make interps use m_ui
instead of current_ui.

Change-Id: I27a3e586a7e1063050b84714fe408e57953ec108
---
 gdb/cli/cli-interp.c | 4 ++--
 gdb/event-top.c      | 8 ++------
 gdb/event-top.h      | 4 ++--
 gdb/mi/mi-interp.c   | 4 ++--
 gdb/top.c            | 2 +-
 gdb/tui/tui-interp.c | 4 ++--
 6 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/gdb/cli/cli-interp.c b/gdb/cli/cli-interp.c
index 374d379ec7a3..f0fa26919e76 100644
--- a/gdb/cli/cli-interp.c
+++ b/gdb/cli/cli-interp.c
@@ -206,7 +206,7 @@ cli_interp::resume ()
       stream = NULL;
     }
 
-  gdb_setup_readline (1);
+  gdb_setup_readline (ui, 1);
 
   ui->input_handler = command_line_handler;
 
@@ -217,7 +217,7 @@ cli_interp::resume ()
 void
 cli_interp::suspend ()
 {
-  gdb_disable_readline ();
+  gdb_disable_readline (current_ui);
 }
 
 void
diff --git a/gdb/event-top.c b/gdb/event-top.c
index d1be23bcbe9b..54f199d2e393 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -1275,10 +1275,8 @@ async_sigtstp_handler (gdb_client_data arg)
    loop.  */
 
 void
-gdb_setup_readline (int editing)
+gdb_setup_readline (ui *ui, int editing)
 {
-  struct ui *ui = current_ui;
-
   /* If the input stream is connected to a terminal, turn on editing.
      However, that is only allowed on the main UI, as we can only have
      one instance of readline.  Also, INSTREAM might be nullptr when
@@ -1316,10 +1314,8 @@ gdb_setup_readline (int editing)
    interface, like the cli & the mi.  */
 
 void
-gdb_disable_readline (void)
+gdb_disable_readline (ui *ui)
 {
-  struct ui *ui = current_ui;
-
   if (ui->command_editing)
     gdb_rl_callback_handler_remove ();
   ui->unregister_file_handler ();
diff --git a/gdb/event-top.h b/gdb/event-top.h
index f7247f5c4f23..ab78f95a9f62 100644
--- a/gdb/event-top.h
+++ b/gdb/event-top.h
@@ -30,8 +30,8 @@ struct cmd_list_element;
    FIXME: these should really go into top.h.  */
 
 extern void display_gdb_prompt (const char *new_prompt);
-extern void gdb_setup_readline (int);
-extern void gdb_disable_readline (void);
+extern void gdb_setup_readline (ui *ui, int editing);
+extern void gdb_disable_readline (ui *ui);
 extern void gdb_init_signals (void);
 extern void change_line_handler (int);
 
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c
index be9dacaf9304..3095301b2f11 100644
--- a/gdb/mi/mi-interp.c
+++ b/gdb/mi/mi-interp.c
@@ -122,7 +122,7 @@ mi_interp::resume ()
 
   /* As per hack note in mi_interpreter_init, swap in the output
      channels... */
-  gdb_setup_readline (0);
+  gdb_setup_readline (ui, 0);
 
   ui->call_readline = gdb_readline_no_editing_callback;
   ui->input_handler = mi_execute_command_input_handler;
@@ -142,7 +142,7 @@ mi_interp::resume ()
 void
 mi_interp::suspend ()
 {
-  gdb_disable_readline ();
+  gdb_disable_readline (current_ui);
 }
 
 void
diff --git a/gdb/top.c b/gdb/top.c
index 483e201140e7..a1ef328242c8 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1714,7 +1714,7 @@ undo_terminal_modifications_before_exit (void)
 #if defined(TUI)
   tui_disable ();
 #endif
-  gdb_disable_readline ();
+  gdb_disable_readline (current_ui);
 
   current_ui = saved_top_level;
 }
diff --git a/gdb/tui/tui-interp.c b/gdb/tui/tui-interp.c
index 227b37f374dc..af99501ac69f 100644
--- a/gdb/tui/tui-interp.c
+++ b/gdb/tui/tui-interp.c
@@ -121,7 +121,7 @@ tui_interp::resume ()
       stream = NULL;
     }
 
-  gdb_setup_readline (1);
+  gdb_setup_readline (ui, 1);
 
   ui->input_handler = tui_command_line_handler;
 
@@ -135,7 +135,7 @@ tui_interp::resume ()
 void
 tui_interp::suspend ()
 {
-  gdb_disable_readline ();
+  gdb_disable_readline (current_ui);
   tui_start_enabled = tui_active;
   tui_disable ();
 }
-- 
2.42.0


  parent reply	other threads:[~2023-09-08 19:04 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-08 18:22 [PATCH 00/21] ui / interp cleansup Simon Marchi
2023-09-08 18:22 ` [PATCH 01/21] gdb: use intrusive_list for struct ui linked list Simon Marchi
2023-09-08 18:22 ` [PATCH 02/21] gdb: make interp_lookup_existing a method of struct ui Simon Marchi
2023-09-08 18:22 ` [PATCH 03/21] gdb: make interp_add " Simon Marchi
2023-09-08 18:22 ` [PATCH 04/21] gdb: make interp_lookup " Simon Marchi
2023-09-12  9:15   ` Andrew Burgess
2023-09-12 14:38     ` Simon Marchi
2023-09-08 18:22 ` [PATCH 05/21] gdb: remove ui:::add_interp and ui::lookup_existing_interp Simon Marchi
2023-09-08 18:23 ` [PATCH 06/21] gdb: uncover some current_ui uses in interp_set Simon Marchi
2023-09-08 18:23 ` [PATCH 07/21] gdb: add backlink to ui in interp Simon Marchi
2023-09-08 18:23 ` Simon Marchi [this message]
2023-09-08 18:23 ` [PATCH 09/21] gdb/python: use m_ui instead of current_ui in dap_interp::init Simon Marchi
2023-09-08 18:23 ` [PATCH 10/21] gdb/mi: use m_ui instead of current_ui in mi_interp::init Simon Marchi
2023-09-08 18:23 ` [PATCH 11/21] gdb/cli: use m_ui instead of current_ui in cli_interp::resume Simon Marchi
2023-09-12 10:40   ` Andrew Burgess
2023-09-12 15:42     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 12/21] gdb/tui: use m_ui instead of current_ui in tui_interp::resume Simon Marchi
2023-09-12 10:41   ` Andrew Burgess
2023-09-08 18:23 ` [PATCH 13/21] gdb/mi: use m_ui instead of current_ui in mi_interp::resume Simon Marchi
2023-09-12 10:44   ` Andrew Burgess
2023-09-12 16:36     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 14/21] gdb/cli: use m_ui instead of current_ui in cli_interp::suspend Simon Marchi
2023-09-08 18:23 ` [PATCH 15/21] gdb/tui: use m_ui instead of current_ui in tui_interp::suspend Simon Marchi
2023-09-08 18:23 ` [PATCH 16/21] gdb/mi: use m_ui instead of current_ui in mi_interp::suspend Simon Marchi
2023-09-08 18:23 ` [PATCH 17/21] gdb: pass current_ui down to interp_set Simon Marchi
2023-09-12 10:54   ` Andrew Burgess
2023-09-12 17:17     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 18/21] gdb: make interp_set a method of struct ui Simon Marchi
2023-09-12 10:58   ` Andrew Burgess
2023-09-12 17:23     ` Simon Marchi
2023-09-12 13:41   ` Tom Tromey
2023-09-12 17:32     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 19/21] gdb: pass down current_ui to set_top_level_interpreter Simon Marchi
2023-09-11 15:15   ` Simon Marchi
2023-09-08 18:23 ` [PATCH 20/21] gdb: make set_top_level_interpreter a method of struct ui Simon Marchi
2023-09-12 11:20   ` Andrew Burgess
2023-09-12 17:41     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 21/21] gdb: make top_level_interpreter " Simon Marchi
2023-09-12 11:35   ` Andrew Burgess
2023-09-12 17:54     ` Simon Marchi
2023-09-12 11:38 ` [PATCH 00/21] ui / interp cleansup Andrew Burgess
2023-09-12 17:51   ` Simon Marchi
2023-09-12 18:06   ` Tom Tromey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230908190227.96319-9-simon.marchi@efficios.com \
    --to=simon.marchi@efficios.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).