Eliminate interp::quiet_p

This commit removes interp::quiet_p / interp_quiet_p /
interp_set_quiet, because AFAICS, it doesn't really do anything.

interp_quiet is only ever checked inside interp_set nowadays:

  if (!first_time && !interp_quiet_p (interp))
    {
      xsnprintf (buffer, sizeof (buffer),
		 "Switching to interpreter \"%.24s\".\n", interp->name);
      current_uiout->text (buffer);
    }

I did a bit of archaelogy, and found that back in 4a8f6654 (2003), it
was also called in another place, to decide whether to print the CLI
prompt.

AFAICS, that condition is always false today, making that if/then
block always dead code.  If we remove that code, then there are no
interp_quiet_p uses left in the tree, so we can remove it all.

There are two paths that lead to interp_set calls:

#1 - When installing the top level interpreter.  In this case,
FIRST_TIME is true.

#2 - In interpreter_exec_cmd.  In this case, the interpreter is always
set quiet before interp_set is called.

Grepping a gdb.log of an x86_64 GNU/Linux run for "Switching to
interpreter" (before this patch) doesn't find any hits.

I suspect the intention of this message was to support something like
a "set interpreter ..." command that would change the interpreter
permanently.  But there's no such command.

Tested on x86_64 Fedora 23.

gdb/ChangeLog:
2017-02-08  Pedro Alves  <palves@redhat.com>

	* interps.c (interp::interp): Remove reference to quiet_p.
	(interp_set): Make static.  Remove dead "Switching to" output
	code.
	(interp_quiet_p, interp_set_quiet): Delete.
	(interpreter_exec_cmd): Don't set the interpreter quiet.
	* interps.h (interp_quiet_p): Make static.
	(class interp) <quiet_p>: Remove field
This commit is contained in:
Pedro Alves 2017-02-08 18:08:18 +00:00
parent 604c4576fd
commit a474bd8eee
3 changed files with 11 additions and 48 deletions

View File

@ -1,3 +1,13 @@
2017-02-08 Pedro Alves <palves@redhat.com>
* interps.c (interp::interp): Remove reference to quiet_p.
(interp_set): Make static. Remove dead "Switching to" output
code.
(interp_quiet_p, interp_set_quiet): Delete.
(interpreter_exec_cmd): Don't set the interpreter quiet.
* interps.h (interp_quiet_p): Make static.
(class interp) <quiet_p>: Remove field
2017-02-08 Jerome Guitton <guitton@adacore.com>
* cli/cli-decode.c (find_command_name_length): Make it extern.

View File

@ -82,7 +82,6 @@ static struct interp *interp_lookup_existing (struct ui *ui,
interp::interp (const char *name)
{
this->name = xstrdup (name);
this->quiet_p = false;
this->inited = false;
}
@ -156,13 +155,11 @@ interp_add (struct ui *ui, struct interp *interp)
events such as target stops and new thread creation, even if they
are caused by CLI commands. */
void
static void
interp_set (struct interp *interp, bool top_level)
{
struct ui_interp_info *ui_interp = get_current_interp_info ();
struct interp *old_interp = ui_interp->current_interpreter;
int first_time = 0;
char buffer[64];
/* If we already have an interpreter, then trying to
set top level interpreter is kinda pointless. */
@ -174,10 +171,6 @@ interp_set (struct interp *interp, bool top_level)
current_uiout->flush ();
old_interp->suspend ();
}
else
{
first_time = 1;
}
ui_interp->current_interpreter = interp;
if (top_level)
@ -207,13 +200,6 @@ interp_set (struct interp *interp, bool top_level)
clear_interpreter_hooks ();
interp->resume ();
if (!first_time && !interp_quiet_p (interp))
{
xsnprintf (buffer, sizeof (buffer),
"Switching to interpreter \"%.24s\".\n", interp->name);
current_uiout->text (buffer);
}
}
/* Look up the interpreter for NAME. If no such interpreter exists,
@ -375,26 +361,6 @@ interp_supports_command_editing (struct interp *interp)
return interp->supports_command_editing ();
}
int
interp_quiet_p (struct interp *interp)
{
struct ui_interp_info *ui_interp = get_current_interp_info ();
if (interp != NULL)
return interp->quiet_p;
else
return ui_interp->current_interpreter->quiet_p;
}
static int
interp_set_quiet (struct interp *interp, int quiet)
{
int old_val = interp->quiet_p;
interp->quiet_p = quiet;
return old_val;
}
/* interp_exec - This executes COMMAND_STR in the current
interpreter. */
@ -445,7 +411,6 @@ interpreter_exec_cmd (char *args, int from_tty)
char **trule = NULL;
unsigned int nrules;
unsigned int i;
int old_quiet, use_quiet;
struct cleanup *cleanup;
if (args == NULL)
@ -467,10 +432,6 @@ interpreter_exec_cmd (char *args, int from_tty)
if (interp_to_use == NULL)
error (_("Could not find interpreter \"%s\"."), prules[0]);
/* Temporarily set interpreters quiet. */
old_quiet = interp_set_quiet (old_interp, 1);
use_quiet = interp_set_quiet (interp_to_use, 1);
interp_set (interp_to_use, false);
for (i = 1; i < nrules; i++)
@ -480,15 +441,11 @@ interpreter_exec_cmd (char *args, int from_tty)
if (e.reason < 0)
{
interp_set (old_interp, 0);
interp_set_quiet (interp_to_use, use_quiet);
interp_set_quiet (old_interp, old_quiet);
error (_("error in command: \"%s\"."), prules[i]);
}
}
interp_set (old_interp, 0);
interp_set_quiet (interp_to_use, use_quiet);
interp_set_quiet (old_interp, old_quiet);
do_cleanups (cleanup);
}

View File

@ -39,7 +39,6 @@ extern int interp_resume (struct interp *interp);
extern int interp_suspend (struct interp *interp);
extern struct gdb_exception interp_exec (struct interp *interp,
const char *command);
extern int interp_quiet_p (struct interp *interp);
class interp
{
@ -86,12 +85,9 @@ public:
/* Has the init method been run? */
bool inited;
bool quiet_p;
};
extern void interp_add (struct ui *ui, struct interp *interp);
extern void interp_set (struct interp *interp, bool top_level);
/* Look up the interpreter for NAME, creating one if none exists yet.
If NAME is not a interpreter type previously registered with