/* 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
extern void ui_out_end (struct ui_out *uiout, enum ui_out_type type);
-extern struct cleanup *ui_out_begin_cleanup_end (struct ui_out *uiout,
- enum ui_out_type level_type,
- const char *id);
-
/* A table can be considered a special tuple/list combination with the
implied structure: ``table = { hdr = { header, ... } , body = [ {
field, ... }, ... ] }''. If NR_ROWS is negative then there is at
extern void ui_out_flush (struct ui_out *uiout);
-extern int ui_out_set_flags (struct ui_out *uiout, int mask);
-
-extern int ui_out_clear_flags (struct ui_out *uiout, int mask);
-
extern int ui_out_get_verblvl (struct ui_out *uiout);
extern int ui_out_test_flags (struct ui_out *uiout, int mask);
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 */
-/* IMPORTANT: If you change this structure, make sure to change the default
- initialization in ui-out.c. */
-
struct ui_out_impl
{
table_begin_ftype *table_begin;
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);