From f87308f8fe673e605c8249a86ce9262b27fe22bc Mon Sep 17 00:00:00 2001 From: Jeremy Rifkin <51220084+jeremy-rifkin@users.noreply.github.com> Date: Sat, 1 Feb 2025 16:19:53 -0600 Subject: [PATCH] A fix for snippet formatting --- src/formatting.cpp | 15 ++++++++++++--- src/snippets/snippet.cpp | 5 ++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/formatting.cpp b/src/formatting.cpp index 2414c37..bfcf6e7 100644 --- a/src/formatting.cpp +++ b/src/formatting.cpp @@ -144,12 +144,21 @@ namespace cpptrace { continue; } print_frame_internal(stream, frame, color, frame_number_width, counter); + if(frame.line.has_value() && !frame.filename.empty() && options.snippets) { + auto snippet = detail::get_snippet( + frame.filename, + frame.line.value(), + options.context_lines, + color + ); + if(!snippet.empty()) { + stream << '\n'; + stream << snippet; + } + } if(newline_at_end || &frame != &frames.back()) { stream << '\n'; } - if(frame.line.has_value() && !frame.filename.empty() && options.snippets) { - stream << detail::get_snippet(frame.filename, frame.line.value(), options.context_lines, color); - } counter++; } } diff --git a/src/snippets/snippet.cpp b/src/snippets/snippet.cpp index c776d3e..5b819d8 100644 --- a/src/snippets/snippet.cpp +++ b/src/snippets/snippet.cpp @@ -135,7 +135,10 @@ namespace detail { if(color && line == target_line) { snippet += RESET; } - snippet += lines[line - original_begin] + "\n"; + snippet += lines[line - original_begin]; + if(line != end) { + snippet += '\n'; + } } return snippet; }