diff options
Diffstat (limited to 'gdb/ui-out.h')
-rw-r--r-- | gdb/ui-out.h | 187 |
1 files changed, 64 insertions, 123 deletions
diff --git a/gdb/ui-out.h b/gdb/ui-out.h index d62a86c6dc5..d8db5885457 100644 --- a/gdb/ui-out.h +++ b/gdb/ui-out.h @@ -1,8 +1,5 @@ /* Output generating routines for GDB. - - Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008 - Free Software Foundation, Inc. - + Copyright 1999, 2000 Free Software Foundation, Inc. Contributed by Cygnus Solutions. Written by Fernando Nasser for Cygnus. @@ -10,7 +7,7 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or + the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -19,16 +16,20 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ #ifndef UI_OUT_H #define UI_OUT_H 1 /* The ui_out structure */ +#if __STDC__ struct ui_out; struct ui_out_data; -struct ui_file; +#endif + /* the current ui_out */ @@ -66,128 +67,90 @@ struct ui_stream /* Prototypes for ui-out API. */ -/* A result is a recursive data structure consisting of lists and - tuples. */ - -enum ui_out_type - { - ui_out_type_tuple, - ui_out_type_list - }; - -extern void ui_out_begin (struct ui_out *uiout, - enum ui_out_type level_type, - const char *id); +extern void ui_out_table_begin PARAMS ((struct ui_out * uiout, int nbrofcols, + char *tblid)); -extern void ui_out_end (struct ui_out *uiout, enum ui_out_type type); +extern void ui_out_table_header PARAMS ((struct ui_out * uiout, int width, + enum ui_align align, char *colhdr)); -extern struct cleanup *ui_out_begin_cleanup_end (struct ui_out *uiout, - enum ui_out_type level_type, - const char *id); +extern void ui_out_table_body PARAMS ((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. */ -extern void ui_out_table_header (struct ui_out *uiout, int width, - enum ui_align align, const char *col_name, - const char *colhdr); +extern void ui_out_table_end PARAMS ((struct ui_out * uiout)); -extern void ui_out_table_body (struct ui_out *uiout); +extern void ui_out_list_begin PARAMS ((struct ui_out * uiout, char *lstid)); -extern struct cleanup *make_cleanup_ui_out_table_begin_end (struct ui_out *ui_out, - int nr_cols, - int nr_rows, - const char *tblid); -/* Compatibility wrappers. */ +extern void ui_out_list_end PARAMS ((struct ui_out * uiout)); -extern struct cleanup *make_cleanup_ui_out_list_begin_end (struct ui_out *uiout, - const char *id); +extern void ui_out_field_int PARAMS ((struct ui_out * uiout, char *fldname, + int value)); -extern struct cleanup *make_cleanup_ui_out_tuple_begin_end (struct ui_out *uiout, - const char *id); +extern void ui_out_field_core_addr PARAMS ((struct ui_out * uiout, char *fldname, + CORE_ADDR address)); -extern void ui_out_field_int (struct ui_out *uiout, const char *fldname, - int value); - -extern void ui_out_field_fmt_int (struct ui_out *uiout, int width, - enum ui_align align, const char *fldname, - int value); - -extern void ui_out_field_core_addr (struct ui_out *uiout, const char *fldname, - CORE_ADDR address); - -extern void ui_out_field_string (struct ui_out * uiout, const char *fldname, +extern void ui_out_field_string (struct ui_out * uiout, char *fldname, const char *string); -extern void ui_out_field_stream (struct ui_out *uiout, const char *fldname, - struct ui_stream *buf); +extern void ui_out_field_stream PARAMS ((struct ui_out * uiout, char *fldname, + struct ui_stream * buf)); -extern void ui_out_field_fmt (struct ui_out *uiout, const char *fldname, - const char *format, ...) - ATTR_FORMAT (printf, 3, 4); +extern void ui_out_field_fmt PARAMS ((struct ui_out * uiout, char *fldname, + char *format,...)); -extern void ui_out_field_skip (struct ui_out *uiout, const char *fldname); +extern void ui_out_field_skip PARAMS ((struct ui_out * uiout, char *fldname)); -extern void ui_out_spaces (struct ui_out *uiout, int numspaces); +extern void ui_out_spaces PARAMS ((struct ui_out * uiout, int numspaces)); -extern void ui_out_text (struct ui_out *uiout, const char *string); +extern void ui_out_text PARAMS ((struct ui_out * uiout, char *string)); -extern void ui_out_message (struct ui_out *uiout, int verbosity, - const char *format, ...) - ATTR_FORMAT (printf, 3, 4); +extern void ui_out_message PARAMS ((struct ui_out * uiout, int verbosity, + char *format,...)); -extern struct ui_stream *ui_out_stream_new (struct ui_out *uiout); +extern struct ui_stream *ui_out_stream_new PARAMS ((struct ui_out * uiout)); -extern void ui_out_stream_delete (struct ui_stream *buf); +extern void ui_out_stream_delete PARAMS ((struct ui_stream * buf)); struct cleanup *make_cleanup_ui_out_stream_delete (struct ui_stream *buf); -extern void ui_out_wrap_hint (struct ui_out *uiout, char *identstring); +extern void ui_out_wrap_hint PARAMS ((struct ui_out * uiout, char *identstring)); -extern void ui_out_flush (struct ui_out *uiout); +extern void ui_out_flush PARAMS ((struct ui_out * uiout)); -extern void ui_out_get_field_separator (struct ui_out *uiout); +extern void ui_out_get_field_separator PARAMS ((struct ui_out * uiout)); -extern int ui_out_set_flags (struct ui_out *uiout, int mask); +extern int ui_out_set_flags PARAMS ((struct ui_out * uiout, int mask)); -extern int ui_out_clear_flags (struct ui_out *uiout, int mask); +extern int ui_out_clear_flags PARAMS ((struct ui_out * uiout, int mask)); -extern int ui_out_get_verblvl (struct ui_out *uiout); +extern int ui_out_get_verblvl PARAMS ((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_begin PARAMS ((struct ui_out * uiout, char *class)); -extern void ui_out_result_end (struct ui_out *uiout); +extern void ui_out_result_end PARAMS ((struct ui_out * uiout)); -extern void ui_out_info_begin (struct ui_out *uiout, char *class); +extern void ui_out_info_begin PARAMS ((struct ui_out * uiout, char *class)); -extern void ui_out_info_end (struct ui_out *uiout); +extern void ui_out_info_end PARAMS ((struct ui_out * uiout)); -extern void ui_out_notify_begin (struct ui_out *uiout, char *class); +extern void ui_out_notify_begin PARAMS ((struct ui_out * uiout, char *class)); -extern void ui_out_notify_end (struct ui_out *uiout); +extern void ui_out_notify_end PARAMS ((struct ui_out * uiout)); -extern void ui_out_error_begin (struct ui_out *uiout, char *class); +extern void ui_out_error_begin PARAMS ((struct ui_out * uiout, char *class)); -extern void ui_out_error_end (struct ui_out *uiout); +extern void ui_out_error_end PARAMS ((struct ui_out * uiout)); #endif #if 0 -extern void gdb_error (struct ui_out *uiout, int severity, char *format, ...); +extern void gdb_error PARAMS ((struct ui_out * uiout, int severity, + char *format,...)); -extern void gdb_query (struct ui_out *uiout, int qflags, char *qprompt); +extern void gdb_query PARAMS ((struct ui_out * uiout, + int qflags, char *qprompt)); #endif -/* HACK: Code in GDB is currently checking to see the type of ui_out - builder when determining which output to produce. This function is - a hack to encapsulate that test. Once GDB manages to separate the - CLI/MI from the core of GDB the problem should just go away .... */ - -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 */ @@ -197,46 +160,30 @@ extern int ui_out_is_mi_like_p (struct ui_out *uiout); /* Type definition of all implementation functions. */ typedef void (table_begin_ftype) (struct ui_out * uiout, - int nbrofcols, int nr_rows, - const char *tblid); + int nbrofcols, char *tblid); typedef void (table_body_ftype) (struct ui_out * uiout); typedef void (table_end_ftype) (struct ui_out * uiout); 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. */ -typedef void (ui_out_begin_ftype) (struct ui_out *uiout, - enum ui_out_type type, - int level, const char *id); -typedef void (ui_out_end_ftype) (struct ui_out *uiout, - enum ui_out_type type, - int level); + enum ui_align align, char *colhdr); +typedef void (list_begin_ftype) (struct ui_out * uiout, + int list_flag, char *lstid); +typedef void (list_end_ftype) (struct ui_out * uiout, int list_flag); typedef void (field_int_ftype) (struct ui_out * uiout, int fldno, int width, - enum ui_align align, - const char *fldname, int value); + enum ui_align align, char *fldname, int value); typedef void (field_skip_ftype) (struct ui_out * uiout, int fldno, int width, - enum ui_align align, - const char *fldname); + enum ui_align align, char *fldname); typedef void (field_string_ftype) (struct ui_out * uiout, int fldno, int width, - enum ui_align align, - const char *fldname, + enum ui_align align, char *fldname, const char *string); typedef void (field_fmt_ftype) (struct ui_out * uiout, int fldno, int width, - enum ui_align align, - const char *fldname, - const char *format, - va_list args) ATTRIBUTE_FPTR_PRINTF(6,0); + enum ui_align align, char *fldname, + char *format, va_list args); typedef void (spaces_ftype) (struct ui_out * uiout, int numspaces); -typedef void (text_ftype) (struct ui_out * uiout, - const char *string); +typedef void (text_ftype) (struct ui_out * uiout, char *string); typedef void (message_ftype) (struct ui_out * uiout, int verbosity, - const char *format, va_list args) - ATTRIBUTE_FPTR_PRINTF(3,0); + char *format, va_list args); 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); /* ui-out-impl */ @@ -249,8 +196,8 @@ struct ui_out_impl table_body_ftype *table_body; table_end_ftype *table_end; table_header_ftype *table_header; - ui_out_begin_ftype *begin; - ui_out_end_ftype *end; + list_begin_ftype *list_begin; + list_end_ftype *list_end; field_int_ftype *field_int; field_skip_ftype *field_skip; field_string_ftype *field_string; @@ -260,8 +207,6 @@ struct ui_out_impl message_ftype *message; wrap_hint_ftype *wrap_hint; flush_ftype *flush; - redirect_ftype *redirect; - int is_mi_like_p; }; extern struct ui_out_data *ui_out_data (struct ui_out *uiout); @@ -273,8 +218,4 @@ extern struct ui_out *ui_out_new (struct ui_out_impl *impl, struct ui_out_data *data, int flags); -/* Redirect the ouptut of a ui_out object temporarily. */ - -extern int ui_out_redirect (struct ui_out *uiout, struct ui_file *outstream); - #endif /* UI_OUT_H */ |