diff options
author | Tom Tromey <tromey@adacore.com> | 2019-04-30 11:17:15 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2019-06-14 14:13:29 -0600 |
commit | 0735b091aba72d4b35aebb671a02c5cb4a837fe9 (patch) | |
tree | c261406309225cb02197ba53b895a8030f0fc442 /gdb/ui-file.h | |
parent | 52ce35e2894e55cea94011dda6443be51e154f37 (diff) | |
download | gdb-0735b091aba72d4b35aebb671a02c5cb4a837fe9.zip gdb-0735b091aba72d4b35aebb671a02c5cb4a837fe9.tar.gz gdb-0735b091aba72d4b35aebb671a02c5cb4a837fe9.tar.bz2 |
Do not emit style escape sequences to log file
PR gdb/24502 requests that the "set logging" log file not contain
style escape sequences emitted by gdb.
This seemed like a reasonable request to me, so this patch implements
filtering for the log file.
This also updates a comment in ui-style.h that I noticed while writing
the patch.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
PR gdb/24502:
* ui-style.h (skip_ansi_escape): Update comment.
* ui-file.h (class no_terminal_escape_file): New class.
* ui-file.c (no_terminal_escape_file::write)
(no_terminal_escape_file::puts): New methods.
* cli/cli-logging.c (handle_redirections): Use
no_terminal_escape_file.
gdb/testsuite/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
PR gdb/24502:
* gdb.base/style-logging.exp: New file.
Diffstat (limited to 'gdb/ui-file.h')
-rw-r--r-- | gdb/ui-file.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gdb/ui-file.h b/gdb/ui-file.h index 39f56d5..3f6f38a 100644 --- a/gdb/ui-file.h +++ b/gdb/ui-file.h @@ -287,4 +287,20 @@ private: ui_file_up m_two; }; +/* A ui_file implementation that filters out terminal escape + sequences. */ + +class no_terminal_escape_file : public stdio_file +{ +public: + no_terminal_escape_file () + { + } + + /* Like the stdio_file methods, but these filter out terminal escape + sequences. */ + void write (const char *buf, long length_buf) override; + void puts (const char *linebuffer) override; +}; + #endif |