forked from Imagelibrary/binutils-gdb
gdb/
2011-09-12 Pedro Alves <pedro@codesourcery.com> Matt Rice <ratmice@gmail.com> PR gdb/13175 * interps.c (struct interp) <interpreter_out>: Delete field. (interp_new): Remove the data and uiout parameters and adjust. (interp_set): Only set the current_uiout from the interpreter's uiout after initializing the interpreter. Adjust call to init_proc. (interp_ui_out): Adjust to call procs->ui_out_proc. (interp_data, interp_name): New. * interps.h (interp_init_ftype): Add `self' parameter. (interp_ui_out_ftype): New typedef. (struct interp_procs) <ui_out_proc>: New method pointer. (interp_new): Remove the data and uiout parameters. (interp_data, interp_name): Declare. * tui/tui-interp.c (tui_init): Adjust prototype. (tui_ui_out): New. (_initialize_tui_interp): Install tui_ui_out. Don't instanciate tui_out here. Adjust call to interp_new. * tui/tui-io.c (tui_initialize_io): Don't set current_uiout here. * cli/cli-interp.c (cli_interpreter_init): Adjust prototype. (cli_ui_out): New. (_initialize_cli_interp): Install it. Adjust call to interp_new. * mi/mi-common.h (struct mi_interp) <uiout>: New field. * mi/mi-interp.c (mi_interpreter_init): Adjust prototype. Initialize mi->uiout depending on the mi_version as extracted from the interpreter's name. (mi_ui_out): New. (_initialize_mi_interp): Install mi_ui_out. Adjust calls to interp_new. Don't allocate the ui_out's of the interpreters here. gdb/testsuite/ 2011-09-12 Matt Rice <ratmice@gmail.com> Pedro Alves <pedro@codesourcery.com> PR gdb/13175 * gdb.base/interp.exp: New tests. * gdb.base/interp.c: New file.
This commit is contained in:
@@ -40,7 +40,7 @@ static struct gdb_exception safe_execute_command (struct ui_out *uiout,
|
||||
/* These implement the cli out interpreter: */
|
||||
|
||||
static void *
|
||||
cli_interpreter_init (int top_level)
|
||||
cli_interpreter_init (struct interp *self, int top_level)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@@ -135,6 +135,11 @@ safe_execute_command (struct ui_out *command_uiout, char *command, int from_tty)
|
||||
return e;
|
||||
}
|
||||
|
||||
static struct ui_out *
|
||||
cli_ui_out (struct interp *self)
|
||||
{
|
||||
return cli_uiout;
|
||||
}
|
||||
|
||||
/* Standard gdb initialization hook. */
|
||||
extern initialize_file_ftype _initialize_cli_interp; /* -Wmissing-prototypes */
|
||||
@@ -147,13 +152,14 @@ _initialize_cli_interp (void)
|
||||
cli_interpreter_resume, /* resume_proc */
|
||||
cli_interpreter_suspend, /* suspend_proc */
|
||||
cli_interpreter_exec, /* exec_proc */
|
||||
cli_interpreter_display_prompt_p /* prompt_proc_p */
|
||||
cli_interpreter_display_prompt_p, /* prompt_proc_p */
|
||||
cli_ui_out /* ui_out_proc */
|
||||
};
|
||||
struct interp *cli_interp;
|
||||
|
||||
/* Create a default uiout builder for the CLI. */
|
||||
cli_uiout = cli_out_new (gdb_stdout);
|
||||
cli_interp = interp_new (INTERP_CONSOLE, NULL, cli_uiout, &procs);
|
||||
cli_interp = interp_new (INTERP_CONSOLE, &procs);
|
||||
|
||||
interp_add (cli_interp);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user