summaryrefslogtreecommitdiffhomepage
path: root/windows/nsis-plugins/src/log/logger.cpp
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-02-18 12:49:12 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-02-18 12:49:12 +0100
commit56924f780f39fb89222b43a438b65d4cac7ff42d (patch)
tree4b1e78a0999d68d8888eeb97c3be4823ae8d63fb /windows/nsis-plugins/src/log/logger.cpp
parent06a01e394f011bd8ae689aa9c206b20010c000b6 (diff)
parent2029e433b0d65f7c07f050652df259994304b2ff (diff)
downloadmullvadvpn-56924f780f39fb89222b43a438b65d4cac7ff42d.tar.xz
mullvadvpn-56924f780f39fb89222b43a438b65d4cac7ff42d.zip
Merge branch 'update-install-log-encoding'
Diffstat (limited to 'windows/nsis-plugins/src/log/logger.cpp')
-rw-r--r--windows/nsis-plugins/src/log/logger.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/windows/nsis-plugins/src/log/logger.cpp b/windows/nsis-plugins/src/log/logger.cpp
index 8e3b6e6298..611e323282 100644
--- a/windows/nsis-plugins/src/log/logger.cpp
+++ b/windows/nsis-plugins/src/log/logger.cpp
@@ -5,7 +5,7 @@
#include <sstream>
#include <iomanip>
-AnsiFileLogSink::AnsiFileLogSink(const std::wstring &file, bool append, bool flush)
+Utf8FileLogSink::Utf8FileLogSink(const std::wstring &file, bool append, bool flush)
: m_flush(flush)
{
const DWORD creationDisposition = (append ? OPEN_ALWAYS : CREATE_ALWAYS);
@@ -31,20 +31,27 @@ AnsiFileLogSink::AnsiFileLogSink(const std::wstring &file, bool append, bool flu
}
}
-AnsiFileLogSink::~AnsiFileLogSink()
+Utf8FileLogSink::~Utf8FileLogSink()
{
CloseHandle(m_logfile);
}
-void AnsiFileLogSink::log(const std::wstring &message)
+void Utf8FileLogSink::log(const std::wstring &message)
{
- auto ansi = common::string::ToAnsi(message);
+ auto utf8String = common::string::ToUtf8(message);
+ utf8String.pop_back(); // remove the null char
- ansi.append("\xd\xa");
+ if (0 == utf8String.size())
+ {
+ return;
+ }
+
+ utf8String.push_back('\xd');
+ utf8String.push_back('\xa');
DWORD bytesWritten;
- WriteFile(m_logfile, ansi.c_str(), ansi.size(), &bytesWritten, nullptr);
+ WriteFile(m_logfile, utf8String.data(), utf8String.size(), &bytesWritten, nullptr);
if (m_flush)
{