aboutsummaryrefslogtreecommitdiff
path: root/gdb/tui
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-04-28 22:59:24 -0600
committerTom Tromey <tom@tromey.com>2017-08-03 07:59:01 -0600
commit31b68d4ad72ebb153e48e16c8d9edf3676a8af38 (patch)
treebb52dcb5e81a91b9fe15e17c8b421a453949ac03 /gdb/tui
parent2ec845e758762030f2333c21fa532fc57fe3762f (diff)
downloadgdb-31b68d4ad72ebb153e48e16c8d9edf3676a8af38.zip
gdb-31b68d4ad72ebb153e48e16c8d9edf3676a8af38.tar.gz
gdb-31b68d4ad72ebb153e48e16c8d9edf3676a8af38.tar.bz2
Replace tui_restore_gdbout with scoped_restore
This patch replaces tui_restore_gdbout (a cleaup function) with a use of scoped_restore. This one is broken out into its own patch because it might slightly change the behavior of gdb: it saves and restores pagination_enabled, whereas the tui_restore_gdbout unconditionally set pagination_enabled to 1; and I think this warrants closer review. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * tui/tui-regs.c (tui_restore_gdbout): Remove. (tui_register_format): Use scoped_restore.
Diffstat (limited to 'gdb/tui')
-rw-r--r--gdb/tui/tui-regs.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index c418203..217fff2 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -707,13 +707,6 @@ TUI command to control the register window."), tuicmd);
** STATIC LOCAL FUNCTIONS **
******************************************/
-static void
-tui_restore_gdbout (void *ui)
-{
- gdb_stdout = (struct ui_file*) ui;
- pagination_enabled = 1;
-}
-
/* Get the register from the frame and return a printable
representation of it. */
@@ -721,17 +714,14 @@ static char *
tui_register_format (struct frame_info *frame, int regnum)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
- struct ui_file *old_stdout;
- struct cleanup *cleanups;
- char *p, *s;
- char *ret;
string_file stream;
- pagination_enabled = 0;
- old_stdout = gdb_stdout;
- gdb_stdout = &stream;
- cleanups = make_cleanup (tui_restore_gdbout, (void*) old_stdout);
+ scoped_restore save_pagination
+ = make_scoped_restore (&pagination_enabled, 0);
+ scoped_restore save_stdout
+ = make_scoped_restore (&gdb_stdout, &stream);
+
gdbarch_print_registers_info (gdbarch, &stream, frame, regnum, 1);
/* Remove the possible \n. */
@@ -740,11 +730,7 @@ tui_register_format (struct frame_info *frame, int regnum)
str.resize (str.size () - 1);
/* Expand tabs into spaces, since ncurses on MS-Windows doesn't. */
- ret = tui_expand_tabs (str.c_str (), 0);
-
- do_cleanups (cleanups);
-
- return ret;
+ return tui_expand_tabs (str.c_str (), 0);
}
/* Get the register value from the given frame and format it for the