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