Remove set_batch_flag_and_make_cleanup_restore_page_info

This removes set_batch_flag_and_make_cleanup_restore_page_info and
make_cleanup_restore_page_info in favor of a new RAII class.  This
then allows for the removal of make_cleanup_restore_uinteger and
make_cleanup_restore_integer

ChangeLog
2017-10-03  Tom Tromey  <tom@tromey.com>

	* guile/scm-ports.c (ioscm_with_output_to_port_worker): Update.
	* top.c (execute_command_to_string): Update.
	* utils.c (make_cleanup_restore_page_info): Remove.
	(do_restore_page_info_cleanup): Remove.
	(set_batch_flag_and_restore_page_info):
	New.
	(make_cleanup_restore_page_info): Remove.
	(set_batch_flag_and_make_cleanup_restore_page_info): Remove.
	(~set_batch_flag_and_restore_page_info): New
	(make_cleanup_restore_uinteger): Remove.
	(make_cleanup_restore_integer): Remove.
	(struct restore_integer_closure): Remove.
	(restore_integer): Remove.
	* utils.h (struct set_batch_flag_and_restore_page_info): New
	class.
	(set_batch_flag_and_make_cleanup_restore_page_info): Remove.
	(make_cleanup_restore_page_info): Remove.
	(make_cleanup_restore_uinteger) Remove.
	(make_cleanup_restore_integer) Remove.
This commit is contained in:
Tom Tromey
2017-09-29 22:07:37 -06:00
parent 070365117b
commit b95de2b7ae
5 changed files with 58 additions and 85 deletions

View File

@@ -211,9 +211,6 @@ extern struct cleanup *(make_cleanup_free_section_addr_info
/* For make_cleanup_close see common/filestuff.h. */
extern struct cleanup *make_cleanup_restore_integer (int *variable);
extern struct cleanup *make_cleanup_restore_uinteger (unsigned int *variable);
struct target_ops;
extern struct cleanup *make_cleanup_unpush_target (struct target_ops *ops);
@@ -236,9 +233,27 @@ extern void free_current_contents (void *);
extern void init_page_info (void);
extern struct cleanup *make_cleanup_restore_page_info (void);
extern struct cleanup *
set_batch_flag_and_make_cleanup_restore_page_info (void);
/* Temporarily set BATCH_FLAG and the associated unlimited terminal size.
Restore when destroyed. */
struct set_batch_flag_and_restore_page_info
{
public:
set_batch_flag_and_restore_page_info ();
~set_batch_flag_and_restore_page_info ();
DISABLE_COPY_AND_ASSIGN (set_batch_flag_and_restore_page_info);
private:
/* Note that this doesn't use scoped_restore, because it's important
to control the ordering of operations in the destruction, and it
was simpler to avoid introducing a new ad hoc class. */
unsigned m_save_lines_per_page;
unsigned m_save_chars_per_line;
int m_save_batch_flag;
};
extern struct cleanup *make_bpstat_clear_actions_cleanup (void);