From bc721476893e76b8428488a022c2c045c91b55f7 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Mon, 15 Jan 2024 15:36:15 +0100 Subject: [PATCH] fix(logger): detect and remove \r from log messages --- src/dwarfs/logger.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/dwarfs/logger.cpp b/src/dwarfs/logger.cpp index efcaed4c..dbad9b5c 100644 --- a/src/dwarfs/logger.cpp +++ b/src/dwarfs/logger.cpp @@ -162,8 +162,17 @@ void stream_logger::write(level_type level, const std::string& output, } } + std::string tmp; folly::small_vector lines; - folly::split('\n', output, lines); + + if (output.find('\r') != std::string::npos) { + tmp.reserve(output.size()); + std::copy_if(output.begin(), output.end(), std::back_inserter(tmp), + [](char c) { return c != '\r'; }); + folly::split('\n', tmp, lines); + } else { + folly::split('\n', output, lines); + } if (lines.back().empty()) { lines.pop_back();