From efd3baf0dcb38d7ecc2c8b4d1553254d3c022b7a Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 23 Jun 2022 11:09:28 -0600 Subject: [PATCH] Replace input_interactive_p with a method This replaces the global input_interactive_p function with a new method ui::input_interactive_p. --- gdb/cli/cli-script.c | 4 ++-- gdb/defs.h | 2 -- gdb/event-top.c | 4 ++-- gdb/top.c | 18 +++++++++--------- gdb/top.h | 5 ++++- gdb/utils.c | 2 +- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c index aa73d5307b3..5f81db418bc 100644 --- a/gdb/cli/cli-script.c +++ b/gdb/cli/cli-script.c @@ -1176,7 +1176,7 @@ counted_command_line read_command_lines (const char *prompt_arg, int from_tty, int parse_commands, gdb::function_view validator) { - if (from_tty && input_interactive_p (current_ui)) + if (from_tty && current_ui->input_interactive_p ()) { if (deprecated_readline_begin_hook) { @@ -1203,7 +1203,7 @@ read_command_lines (const char *prompt_arg, int from_tty, int parse_commands, validator); } - if (from_tty && input_interactive_p (current_ui) + if (from_tty && current_ui->input_interactive_p () && deprecated_readline_end_hook) { (*deprecated_readline_end_hook) (); diff --git a/gdb/defs.h b/gdb/defs.h index 19f379d6588..99a03fb0704 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -322,8 +322,6 @@ extern void print_prompt (void); struct ui; -extern int input_interactive_p (struct ui *); - extern bool info_verbose; /* From printcmd.c */ diff --git a/gdb/event-top.c b/gdb/event-top.c index 2863a8aff69..02b3786320f 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -687,7 +687,7 @@ handle_line_of_input (struct buffer *cmd_line_buffer, } /* Do history expansion if that is wished. */ - if (history_expansion_p && from_tty && input_interactive_p (current_ui)) + if (history_expansion_p && from_tty && current_ui->input_interactive_p ()) { char *cmd_expansion; int expanded; @@ -729,7 +729,7 @@ handle_line_of_input (struct buffer *cmd_line_buffer, and then later fetch it from the value history and remove the '#'. The kill ring is probably better, but some people are in the habit of commenting things out. */ - if (*cmd != '\0' && from_tty && input_interactive_p (current_ui)) + if (*cmd != '\0' && from_tty && current_ui->input_interactive_p ()) gdb_add_history (cmd); /* Save into global buffer if appropriate. */ diff --git a/gdb/top.c b/gdb/top.c index 86c9971fa6d..60835acd5e5 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -308,7 +308,7 @@ ui::ui (FILE *instream_, FILE *outstream_, FILE *errstream_) outstream (outstream_), errstream (errstream_), input_fd (fileno (instream)), - input_interactive_p (ISATTY (instream)), + m_input_interactive_p (ISATTY (instream)), prompt_state (PROMPT_NEEDED), m_gdb_stdout (new pager_file (new stdio_file (outstream))), m_gdb_stdin (new stdio_file (instream)), @@ -1405,13 +1405,13 @@ command_line_input (const char *prompt_arg, const char *annotation_suffix) /* Don't use fancy stuff if not talking to stdin. */ if (deprecated_readline_hook && from_tty - && input_interactive_p (current_ui)) + && current_ui->input_interactive_p ()) { rl.reset ((*deprecated_readline_hook) (prompt)); } else if (command_editing_p && from_tty - && input_interactive_p (current_ui)) + && current_ui->input_interactive_p ()) { rl.reset (gdb_readline_wrapper (prompt)); } @@ -1875,7 +1875,7 @@ quit_force (int *exit_arg, int from_tty) any UI with a terminal, save history. */ for (ui *ui : all_uis ()) { - if (input_interactive_p (ui)) + if (ui->input_interactive_p ()) { save = 1; break; @@ -1923,23 +1923,23 @@ show_interactive_mode (struct ui_file *file, int from_tty, if (interactive_mode == AUTO_BOOLEAN_AUTO) gdb_printf (file, "Debugger's interactive mode " "is %s (currently %s).\n", - value, input_interactive_p (current_ui) ? "on" : "off"); + value, current_ui->input_interactive_p () ? "on" : "off"); else gdb_printf (file, "Debugger's interactive mode is %s.\n", value); } /* Returns whether GDB is running on an interactive terminal. */ -int -input_interactive_p (struct ui *ui) +bool +ui::input_interactive_p () const { if (batch_flag) - return 0; + return false; if (interactive_mode != AUTO_BOOLEAN_AUTO) return interactive_mode == AUTO_BOOLEAN_TRUE; - return ui->input_interactive_p; + return m_input_interactive_p; } static void diff --git a/gdb/top.h b/gdb/top.h index 18c49cc5513..5c1db84b2ce 100644 --- a/gdb/top.h +++ b/gdb/top.h @@ -124,7 +124,7 @@ struct ui /* Whether ISATTY returns true on input_fd. Cached here because quit_force needs to know this _after_ input_fd might be closed. */ - int input_interactive_p; + bool m_input_interactive_p; /* See enum prompt_state's description. */ enum prompt_state prompt_state; @@ -154,6 +154,9 @@ struct ui /* Unregister the UI's input file descriptor from the event loop. */ void unregister_file_handler (); + + /* Return true if this UI's input fd is a tty. */ + bool input_interactive_p () const; }; /* The main UI. This is the UI that is bound to stdin/stdout/stderr. diff --git a/gdb/utils.c b/gdb/utils.c index 5503acfd6bc..b0841e1fe5e 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -880,7 +880,7 @@ defaulted_query (const char *ctlstr, const char defchar, va_list args) way, important error messages don't get lost when talking to GDB over a pipe. */ if (current_ui->instream != current_ui->stdin_stream - || !input_interactive_p (current_ui) + || !current_ui->input_interactive_p () /* Restrict queries to the main UI. */ || current_ui != main_ui) {