diff options
author | Pedro Alves <palves@redhat.com> | 2016-06-21 01:11:48 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2016-06-21 01:11:48 +0100 |
commit | b6dcde571e1a230d12fc483ba6d38a1253ab097e (patch) | |
tree | 84ac376d97a1f55df78e029ce77794e6d0a2f1da | |
parent | 23ff98d2fed4a1eaeb815e18cd4169e5aa7aaa60 (diff) | |
download | gdb-b6dcde571e1a230d12fc483ba6d38a1253ab097e.zip gdb-b6dcde571e1a230d12fc483ba6d38a1253ab097e.tar.gz gdb-b6dcde571e1a230d12fc483ba6d38a1253ab097e.tar.bz2 |
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.
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/top.c | 1 | ||||
-rw-r--r-- | gdb/top.h | 3 | ||||
-rw-r--r-- | gdb/ui-out.c | 5 | ||||
-rw-r--r-- | gdb/ui-out.h | 3 |
5 files changed, 16 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ccf31f2..58afe3b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 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. (def_uiout): Delete. (current_uiout): Set to NULL. @@ -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. */ @@ -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. diff --git a/gdb/ui-out.c b/gdb/ui-out.c index 4ea571b..3972a56 100644 --- a/gdb/ui-out.c +++ b/gdb/ui-out.c @@ -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, diff --git a/gdb/ui-out.h b/gdb/ui-out.h index 905d73c..9e1e74d 100644 --- a/gdb/ui-out.h +++ b/gdb/ui-out.h @@ -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 |