X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fcli-out.h;h=7d5b4febba5435b1c568547d4107f8e11a81b881;hb=7cac64af7bc6a7f7a86f90a1465f7c3d2b6f07e8;hp=f017f807a969203f7429a781d6438e8281090643;hpb=72ec28b8afa357cdde70c612b4e0e9f37a34f8e4;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/cli-out.h b/gdb/cli-out.h index f017f807a9..7d5b4febba 100644 --- a/gdb/cli-out.h +++ b/gdb/cli-out.h @@ -1,12 +1,12 @@ /* Output generating routines for GDB CLI. - Copyright 1999-2000 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Cygnus Solutions. This file is part of GDB. 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 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,13 +15,75 @@ 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, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + along with this program. If not, see . */ #ifndef CLI_OUT_H #define CLI_OUT_H -extern struct ui_out *cli_out_new (struct ui_file *stream); +#include "ui-out.h" +#include + +class cli_ui_out : public ui_out +{ +public: + + explicit cli_ui_out (ui_file *stream, ui_out_flags flags); + virtual ~cli_ui_out (); + + ui_file *set_stream (ui_file *stream); + + bool can_emit_style_escape () const override; + +protected: + + virtual void do_table_begin (int nbrofcols, int nr_rows, + const char *tblid) override; + virtual void do_table_body () override; + virtual void do_table_end () override; + virtual void do_table_header (int width, ui_align align, + const std::string &col_name, + const std::string &col_hdr) override; + /* Note: level 0 is the top-level so LEVEL is always greater than + zero. */ + virtual void do_begin (ui_out_type type, const char *id) override; + virtual void do_end (ui_out_type type) override; + virtual void do_field_signed (int fldno, int width, ui_align align, + const char *fldname, LONGEST value) override; + virtual void do_field_unsigned (int fldno, int width, ui_align align, + const char *fldname, ULONGEST value) + override; + virtual void do_field_skip (int fldno, int width, ui_align align, + const char *fldname) override; + virtual void do_field_string (int fldno, int width, ui_align align, + const char *fldname, + const char *string, + const ui_file_style &style) override; + virtual void do_field_fmt (int fldno, int width, ui_align align, + const char *fldname, const ui_file_style &style, + const char *format, va_list args) + override ATTRIBUTE_PRINTF (7, 0); + virtual void do_spaces (int numspaces) override; + virtual void do_text (const char *string) override; + virtual void do_message (const ui_file_style &style, + const char *format, va_list args) override + ATTRIBUTE_PRINTF (3,0); + virtual void do_wrap_hint (const char *identstring) override; + virtual void do_flush () override; + virtual void do_redirect (struct ui_file *outstream) override; + + bool suppress_output () + { return m_suppress_output; } + +private: + + void field_separator (); + + std::vector m_streams; + bool m_suppress_output; +}; + +extern cli_ui_out *cli_out_new (struct ui_file *stream); + +extern void cli_display_match_list (char **matches, int len, int max); #endif