X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fui-out.h;h=cbd0b9b5d15c522b38ea1c0fc5b96f665c924ae6;hb=89de4da46b3b3629c51e6e1a37177a6269dc8b05;hp=f4e23c13c5e638363cc27c2d310daf06b24e551e;hpb=4c38e0a4fcb69f8586d8db0b9cdb8dbab5980811;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ui-out.h b/gdb/ui-out.h index f4e23c13c5..cbd0b9b5d1 100644 --- a/gdb/ui-out.h +++ b/gdb/ui-out.h @@ -1,7 +1,6 @@ /* Output generating routines for GDB. - Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008, 2009, 2010 - Free Software Foundation, Inc. + Copyright (C) 1999-2014 Free Software Foundation, Inc. Contributed by Cygnus Solutions. Written by Fernando Nasser for Cygnus. @@ -27,14 +26,13 @@ /* The ui_out structure */ struct ui_out; -struct ui_out_data; struct ui_file; /* the current ui_out */ /* FIXME: This should not be a global but something passed down from main.c - or top.c */ -extern struct ui_out *uiout; + or top.c. */ +extern struct ui_out *current_uiout; /* alignment enum */ enum ui_align @@ -53,21 +51,10 @@ enum ui_flags }; -/* The ui_out stream structure. */ -/* NOTE: cagney/2000-02-01: The ui_stream object can be subsumed by - the more generic ui_file object. */ - -struct ui_stream - { - struct ui_out *uiout; - struct ui_file *stream; - }; - - -/* Prototypes for ui-out API. */ +/* Prototypes for ui-out API. */ /* A result is a recursive data structure consisting of lists and - tuples. */ + tuples. */ enum ui_out_type { @@ -87,8 +74,8 @@ extern struct cleanup *ui_out_begin_cleanup_end (struct ui_out *uiout, /* 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 - least one row. */ + field, ... }, ... ] }''. If NR_ROWS is negative then there is at + least one row. */ extern void ui_out_table_header (struct ui_out *uiout, int width, enum ui_align align, const char *col_name, const char *colhdr); @@ -97,8 +84,8 @@ extern void ui_out_table_body (struct ui_out *uiout); extern struct cleanup *make_cleanup_ui_out_table_begin_end (struct ui_out *ui_out, int nr_cols, - int nr_rows, - const char *tblid); + int nr_rows, + const char *tblid); /* Compatibility wrappers. */ extern struct cleanup *make_cleanup_ui_out_list_begin_end (struct ui_out *uiout, @@ -114,6 +101,8 @@ extern void ui_out_field_fmt_int (struct ui_out *uiout, int width, enum ui_align align, const char *fldname, int value); +/* Output a field containing an address. */ + extern void ui_out_field_core_addr (struct ui_out *uiout, const char *fldname, struct gdbarch *gdbarch, CORE_ADDR address); @@ -121,11 +110,11 @@ extern void ui_out_field_string (struct ui_out * uiout, const char *fldname, const char *string); extern void ui_out_field_stream (struct ui_out *uiout, const char *fldname, - struct ui_stream *buf); + struct ui_file *stream); extern void ui_out_field_fmt (struct ui_out *uiout, const char *fldname, const char *format, ...) - ATTR_FORMAT (printf, 3, 4); + ATTRIBUTE_PRINTF (3, 4); extern void ui_out_field_skip (struct ui_out *uiout, const char *fldname); @@ -135,20 +124,12 @@ extern void ui_out_text (struct ui_out *uiout, const char *string); extern void ui_out_message (struct ui_out *uiout, int verbosity, const char *format, ...) - ATTR_FORMAT (printf, 3, 4); - -extern struct ui_stream *ui_out_stream_new (struct ui_out *uiout); - -extern void ui_out_stream_delete (struct ui_stream *buf); - -struct cleanup *make_cleanup_ui_out_stream_delete (struct ui_stream *buf); + ATTRIBUTE_PRINTF (3, 4); extern void ui_out_wrap_hint (struct ui_out *uiout, char *identstring); extern void ui_out_flush (struct ui_out *uiout); -extern void ui_out_get_field_separator (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); @@ -157,29 +138,8 @@ extern int ui_out_get_verblvl (struct ui_out *uiout); extern int ui_out_test_flags (struct ui_out *uiout, int mask); -#if 0 -extern void ui_out_result_begin (struct ui_out *uiout, char *class); - -extern void ui_out_result_end (struct ui_out *uiout); - -extern void ui_out_info_begin (struct ui_out *uiout, char *class); - -extern void ui_out_info_end (struct ui_out *uiout); - -extern void ui_out_notify_begin (struct ui_out *uiout, char *class); - -extern void ui_out_notify_end (struct ui_out *uiout); - -extern void ui_out_error_begin (struct ui_out *uiout, char *class); - -extern void ui_out_error_end (struct ui_out *uiout); -#endif - -#if 0 -extern void gdb_error (struct ui_out *uiout, int severity, char *format, ...); - -extern void gdb_query (struct ui_out *uiout, int qflags, char *qprompt); -#endif +extern int ui_out_query_field (struct ui_out *uiout, int colno, + int *width, int *alignment, char **col_name); /* HACK: Code in GDB is currently checking to see the type of ui_out builder when determining which output to produce. This function is @@ -190,11 +150,11 @@ extern int ui_out_is_mi_like_p (struct ui_out *uiout); /* From here on we have things that are only needed by implementation routines and main.c. We should pehaps have a separate file for that, - like a ui-out-impl.h file */ + like a ui-out-impl.h file. */ /* User Interface Output Implementation Function Table */ -/* Type definition of all implementation functions. */ +/* Type definition of all implementation functions. */ typedef void (table_begin_ftype) (struct ui_out * uiout, int nbrofcols, int nr_rows, @@ -205,7 +165,7 @@ typedef void (table_header_ftype) (struct ui_out * uiout, int width, enum ui_align align, const char *col_name, const char *colhdr); /* Note: level 0 is the top-level so LEVEL is always greater than - zero. */ + zero. */ typedef void (ui_out_begin_ftype) (struct ui_out *uiout, enum ui_out_type type, int level, const char *id); @@ -237,11 +197,12 @@ typedef void (wrap_hint_ftype) (struct ui_out * uiout, char *identstring); 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 */ + initialization in ui-out.c. */ struct ui_out_impl { @@ -261,18 +222,26 @@ struct ui_out_impl wrap_hint_ftype *wrap_hint; flush_ftype *flush; redirect_ftype *redirect; + data_destroy_ftype *data_destroy; int is_mi_like_p; }; -extern struct ui_out_data *ui_out_data (struct ui_out *uiout); +extern void *ui_out_data (struct ui_out *uiout); +extern void uo_field_string (struct ui_out *uiout, int fldno, int width, + enum ui_align align, const char *fldname, + const char *string); /* Create a ui_out object */ -extern struct ui_out *ui_out_new (struct ui_out_impl *impl, - struct ui_out_data *data, +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);