/* Output generating routines for GDB.
- Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+
+ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005
+ Free Software Foundation, Inc.
+
Contributed by Cygnus Solutions.
Written by Fernando Nasser for Cygnus.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#ifndef UI_OUT_H
#define UI_OUT_H 1
struct ui_out;
struct ui_out_data;
-
+struct ui_file;
/* the current ui_out */
struct ui_stream *buf);
extern void ui_out_field_fmt (struct ui_out *uiout, const char *fldname,
- const char *format, ...);
+ const char *format, ...)
+ ATTR_FORMAT (printf, 3, 4);
extern void ui_out_field_skip (struct ui_out *uiout, const char *fldname);
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, ...);
+ const char *format, ...)
+ ATTR_FORMAT (printf, 3, 4);
extern struct ui_stream *ui_out_stream_new (struct ui_out *uiout);
enum ui_align align,
const char *fldname,
const char *format,
- va_list args);
+ va_list args) ATTRIBUTE_FPTR_PRINTF(6,0);
typedef void (spaces_ftype) (struct ui_out * uiout, int numspaces);
typedef void (text_ftype) (struct ui_out * uiout,
const char *string);
typedef void (message_ftype) (struct ui_out * uiout, int verbosity,
- const char *format, va_list args);
+ const char *format, va_list args)
+ ATTRIBUTE_FPTR_PRINTF(3,0);
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 */
message_ftype *message;
wrap_hint_ftype *wrap_hint;
flush_ftype *flush;
+ redirect_ftype *redirect;
int is_mi_like_p;
};
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 */