From eba58f50a0bfe36477669a843ccb4c3b4cfb8ae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ben=20Gr=C3=A4f?= Date: Fri, 31 May 2019 20:03:22 +0200 Subject: [PATCH] Cleanup in remotelog --- src/log/RemoteLog.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/log/RemoteLog.cpp b/src/log/RemoteLog.cpp index 91d6e2a1..5d405c1f 100644 --- a/src/log/RemoteLog.cpp +++ b/src/log/RemoteLog.cpp @@ -21,6 +21,7 @@ #include "log/RemoteLog.h" RemoteLog* RemoteLog::m_self = nullptr; +static const std::regex COLOR_PATTERN("\x1B\\[[0-9;]*[a-zA-Z]"); RemoteLog::RemoteLog(size_t maxRows) : m_maxRows(maxRows) @@ -60,15 +61,16 @@ void RemoteLog::message(int level, const char* fmt, va_list args) size = vsnprintf(buf + size, static_cast(512 - size - 1), fmt, args) + size; buf[size] = '\n'; + std::string coloredLogLine(buf, static_cast(size + 1)); + std::string logLine = std::regex_replace(coloredLogLine, COLOR_PATTERN, ""); + uv_mutex_lock(&m_mutex); if (m_rows.size() == m_maxRows) { m_rows.pop_front(); } - std::string row = std::regex_replace(std::string(buf, static_cast(size + 1)), std::regex("\x1B\\[[0-9;]*[a-zA-Z]"), ""); - - m_rows.push_back(row); + m_rows.push_back(logLine); uv_mutex_unlock(&m_mutex);