From cfa54bc81a694d390f9aedc71056e4e991db1901 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Wed, 28 Jun 2023 03:01:18 +0200 Subject: [PATCH] Add sys_string_to_string() conversion function --- include/dwarfs/util.h | 4 ++++ src/dwarfs/util.cpp | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/dwarfs/util.h b/include/dwarfs/util.h index 6794d668..db0ea971 100644 --- a/include/dwarfs/util.h +++ b/include/dwarfs/util.h @@ -25,6 +25,8 @@ #include #include +#include "dwarfs/types.h" + namespace dwarfs { std::string time_with_unit(double sec); @@ -40,4 +42,6 @@ inline std::string u8string_to_string(std::u8string const& in) { return std::string(reinterpret_cast(in.data()), in.size()); } +std::string sys_string_to_string(sys_string const& in); + } // namespace dwarfs diff --git a/src/dwarfs/util.cpp b/src/dwarfs/util.cpp index fd869e21..c07ebdb2 100644 --- a/src/dwarfs/util.cpp +++ b/src/dwarfs/util.cpp @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include #include @@ -118,4 +120,13 @@ std::chrono::milliseconds parse_time_with_unit(std::string const& str) { DWARFS_THROW(runtime_error, "unsupported time suffix"); } +std::string sys_string_to_string(sys_string const& in) { +#ifdef _WIN32 + static std::wstring_convert, wchar_t> converter; + return converter.to_bytes(in); +#else + return in; +#endif +} + } // namespace dwarfs