* breakpoint.c (save_breakpoints): Use RETURN_MASK_ALL.
	* cli-out.c: Include vec.h.
	(cli_field_fmt, cli_spaces, cli_text, cli_message, cli_flush): New
	variable stream, initialize it, use it.
	(cli_redirect): New function comment.  Replace the stream and
	original_stream fields by the new streams field.  Remove the
	original_stream != NULL conditional, assert error on NULL instead.
	(out_field_fmt, field_separator): New variable stream, initialize it, use it.
	(cli_out_data_ctor): Assert non-NULL stream.  Replace the stream and
	original_stream fields by the new streams field.
	(cli_out_set_stream): Replace the stream field by the new streams
	field.
	* cli-out.h: Include vec.h.
	(ui_filep): New typedef, call DEF_VEC_P for it.
	(struct cli_ui_out_data): Replace the stream and original_stream
	fields by the new streams field.
	* cli/cli-logging.c (set_logging_redirect): Call ui_out_redirect with
	NULL first.  Extend the comment.
	(handle_redirections): Call ui_out_redirect with output.
	* python/py-breakpoint.c (bppy_get_commands): Move ui_out_redirect
	calls outside of the TRY_CATCH block.

gdb/testsuite/
	* gdb.base/ui-redirect.exp: New file.
This commit is contained in:
Jan Kratochvil
2010-09-03 15:42:04 +00:00
parent c8cbd2725a
commit 14dba4b472
8 changed files with 127 additions and 28 deletions

View File

@ -118,8 +118,13 @@ set_logging_redirect (char *args, int from_tty, struct cmd_list_element *c)
gdb_stdtarg = output;
logging_no_redirect_file = new_logging_no_redirect_file;
/* It should not happen, the redirection has been already setup. */
if (ui_out_redirect (uiout, output) < 0)
/* There is a former output pushed on the ui_out_redirect stack. We want to
replace it by OUTPUT so we must pop the former value first. We should
either do both the pop and push or to do neither of it. At least do not
try to push OUTPUT if the pop already failed. */
if (ui_out_redirect (uiout, NULL) < 0
|| ui_out_redirect (uiout, output) < 0)
warning (_("Current output protocol does not support redirection"));
if (logging_redirect != 0)
@ -212,7 +217,7 @@ handle_redirections (int from_tty)
gdb_stdlog = output;
gdb_stdtarg = output;
if (ui_out_redirect (uiout, gdb_stdout) < 0)
if (ui_out_redirect (uiout, output) < 0)
warning (_("Current output protocol does not support redirection"));
}