diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-07 04:48:35 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-07 04:48:35 +0000 |
commit | 207df6fc406e81bfeebdff7f404bd242ff3f099f (patch) | |
tree | a1a796b056909dd0a04ffec163db9363a8757808 /src/base/lnav.console.hh | |
parent | Releasing progress-linux version 0.11.2-1~progress7.99u1. (diff) | |
download | lnav-207df6fc406e81bfeebdff7f404bd242ff3f099f.tar.xz lnav-207df6fc406e81bfeebdff7f404bd242ff3f099f.zip |
Merging upstream version 0.12.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/base/lnav.console.hh')
-rw-r--r-- | src/base/lnav.console.hh | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/base/lnav.console.hh b/src/base/lnav.console.hh index ac4c2b0..591093e 100644 --- a/src/base/lnav.console.hh +++ b/src/base/lnav.console.hh @@ -42,6 +42,11 @@ namespace console { void println(FILE* file, const attr_line_t& al); struct snippet { + static snippet from_content_with_offset(intern_string_t src, + const attr_line_t& content, + size_t offset, + const std::string& errmsg); + static snippet from(intern_string_t src, const attr_line_t& content) { snippet retval; @@ -114,6 +119,26 @@ struct user_message { } template<typename C> + user_message& with_context_snippets(C snippets) + { + this->um_snippets.insert(this->um_snippets.begin(), + std::make_move_iterator(std::begin(snippets)), + std::make_move_iterator(std::end(snippets))); + if (this->um_snippets.size() > 1) { + for (auto iter = this->um_snippets.begin(); + iter != this->um_snippets.end();) + { + if (iter->s_content.empty()) { + iter = this->um_snippets.erase(iter); + } else { + ++iter; + } + } + } + return *this; + } + + template<typename C> user_message& with_snippets(C snippets) { this->um_snippets.insert(this->um_snippets.end(), @@ -121,7 +146,8 @@ struct user_message { std::make_move_iterator(std::end(snippets))); if (this->um_snippets.size() > 1) { for (auto iter = this->um_snippets.begin(); - iter != this->um_snippets.end();) { + iter != this->um_snippets.end();) + { if (iter->s_content.empty()) { iter = this->um_snippets.erase(iter); } else { |