Browse Source

Add style-escape methods to ui_file

This adds emit_style_escape and reset_style methods to ui_file.  These
aren't used yet, but they will be once the pager is converted to be a
ui_file subclass.
binutils-2_39-branch
Tom Tromey 5 years ago
parent
commit
c8d74a7b4b
  1. 24
      gdb/ui-file.c
  2. 19
      gdb/ui-file.h

24
gdb/ui-file.c

@ -73,6 +73,30 @@ ui_file::vprintf (const char *format, va_list args)
/* See ui-file.h. */
void
ui_file::emit_style_escape (const ui_file_style &style)
{
if (can_emit_style_escape () && style != m_applied_style)
{
m_applied_style = style;
this->puts (style.to_ansi ().c_str ());
}
}
/* See ui-file.h. */
void
ui_file::reset_style ()
{
if (can_emit_style_escape ())
{
m_applied_style = ui_file_style ();
this->puts (m_applied_style.to_ansi ().c_str ());
}
}
/* See ui-file.h. */
void
ui_file::printchar (int c, int quoter, bool async_safe)
{

19
gdb/ui-file.h

@ -124,6 +124,12 @@ public:
used to force out output from the wrap_buffer. */
void wrap_here (int indent);
/* Emit an ANSI style escape for STYLE. */
virtual void emit_style_escape (const ui_file_style &style);
/* Rest the current output style to the empty style. */
virtual void reset_style ();
/* Print STR, bypassing any paging that might be done by this
ui_file. Note that nearly no code should call this -- it's
intended for use by printf_filtered, but nothing else. */
@ -132,6 +138,11 @@ public:
this->puts (str);
}
protected:
/* The currently applied style. */
ui_file_style m_applied_style;
private:
/* Helper function for putstr and putstrn. Print the character C on
@ -376,6 +387,14 @@ public:
sequences. */
void write (const char *buf, long length_buf) override;
void puts (const char *linebuffer) override;
void emit_style_escape (const ui_file_style &style) override
{
}
void reset_style () override
{
}
};
/* A ui_file that optionally puts a timestamp at the start of each

Loading…
Cancel
Save