Make current_ui_out be per UI

Similarly to gdb_stdout&co.

gdb/ChangeLog:
2016-06-21  Pedro Alves  <palves@redhat.com>

	* top.c: Call gen_ret_current_ui_field_ptr for current_uiout.
	* top.h (struct ui) <m_current_uiout>: New field.
	* ui-out.c (current_uiout): Delete.
	* ui-out.h (current_uiout): Delete.
	(current_ui_current_uiout_ptr): New declaration.
	(current_uiout): Reimplement as wrapper around
	current_ui_current_uiout_ptr.
This commit is contained in:
Pedro Alves 2016-06-21 01:11:48 +01:00
parent 23ff98d2fe
commit b6dcde571e
5 changed files with 16 additions and 6 deletions

View File

@ -1,3 +1,13 @@
2016-06-21 Pedro Alves <palves@redhat.com>
* top.c: Call gen_ret_current_ui_field_ptr for current_uiout.
* top.h (struct ui) <m_current_uiout>: New field.
* ui-out.c (current_uiout): Delete.
* ui-out.h (current_uiout): Delete.
(current_ui_current_uiout_ptr): New declaration.
(current_uiout): Reimplement as wrapper around
current_ui_current_uiout_ptr.
2016-06-21 Pedro Alves <palves@redhat.com>
* ui-out.c (default_ui_out_impl): Delete.

View File

@ -100,6 +100,7 @@ gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdout)
gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdin)
gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stderr)
gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdlog)
gen_ret_current_ui_field_ptr (struct ui_out *, current_uiout)
/* Initialization file name for gdb. This is host-dependent. */

View File

@ -98,6 +98,9 @@ struct ui
*_unfiltered. In the very near future that restriction shall be
removed - either call shall be unfiltered. (cagney 1999-06-13). */
struct ui_file *m_gdb_stdlog;
/* The current ui_out. */
struct ui_out *m_current_uiout;
};
/* The main UI. This is the UI that is bound to stdin/stdout/stderr.

View File

@ -147,11 +147,6 @@ pop_level (struct ui_out *uiout,
return uiout->level + 1;
}
/* FIXME: This should not be a global, but something passed down from main.c
or top.c. */
struct ui_out *current_uiout = NULL;
/* These are the interfaces to implementation functions. */
static void uo_table_begin (struct ui_out *uiout, int nbrofcols,

View File

@ -32,7 +32,8 @@ struct ui_file;
/* FIXME: This should not be a global but something passed down from main.c
or top.c. */
extern struct ui_out *current_uiout;
extern struct ui_out **current_ui_current_uiout_ptr (void);
#define current_uiout (*current_ui_current_uiout_ptr ())
/* alignment enum */
enum ui_align