Replace input_interactive_p with a method
authorTom Tromey <tromey@adacore.com>
Thu, 23 Jun 2022 17:09:28 +0000 (11:09 -0600)
committerTom Tromey <tromey@adacore.com>
Mon, 18 Jul 2022 14:49:55 +0000 (08:49 -0600)
This replaces the global input_interactive_p function with a new
method ui::input_interactive_p.

gdb/cli/cli-script.c
gdb/defs.h
gdb/event-top.c
gdb/top.c
gdb/top.h
gdb/utils.c

index aa73d5307b3e90e49267b8909f35dfb74206c92e..5f81db418bcd2b859baf92b3c9592929651bd88a 100644 (file)
@@ -1176,7 +1176,7 @@ counted_command_line
 read_command_lines (const char *prompt_arg, int from_tty, int parse_commands,
                    gdb::function_view<void (const char *)> 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) ();
index 19f379d6588ca1ca78d6a66223cd77de078b26cf..99a03fb0704558340c6a4e16b5e80faa972a5a77 100644 (file)
@@ -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 */
index 2863a8aff699567901c985a906571518b701029c..02b3786320f4eafc16d60d63d6358eec10e8bbd3 100644 (file)
@@ -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.  */
index 86c9971fa6dfb48e8301a58bfe09e785b109a2ce..60835acd5e5d859c6e98e8f08003e85dee64a2fe 100644 (file)
--- 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;
 }
 \f
 static void
index 18c49cc55138ffe8b53e383ce078edf6cf09407c..5c1db84b2ce1c3f0531f34f1272f9c2ec0304229 100644 (file)
--- 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.
index 5503acfd6bc0e32499140db7a0eef56e4fb27fbf..b0841e1fe5e54669607abdc400edd38b557dd143 100644 (file)
@@ -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)
     {