/* Output generating routines for GDB.
- Copyright (C) 1999-2013 Free Software Foundation, Inc.
+ Copyright (C) 1999-2016 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
Written by Fernando Nasser for Cygnus.
/* 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
typedef void (flush_ftype) (struct ui_out * uiout);
typedef int (redirect_ftype) (struct ui_out * uiout,
struct ui_file * outstream);
+typedef void (data_destroy_ftype) (struct ui_out *uiout);
/* ui-out-impl */
wrap_hint_ftype *wrap_hint;
flush_ftype *flush;
redirect_ftype *redirect;
+ data_destroy_ftype *data_destroy;
int is_mi_like_p;
};
/* Create a ui_out object */
-extern struct ui_out *ui_out_new (struct ui_out_impl *impl,
+extern struct ui_out *ui_out_new (const struct ui_out_impl *impl,
void *data,
int flags);
+/* Destroy a ui_out object. */
+
+extern void ui_out_destroy (struct ui_out *uiout);
+
/* Redirect the ouptut of a ui_out object temporarily. */
extern int ui_out_redirect (struct ui_out *uiout, struct ui_file *outstream);