diff --git a/cmake/common.cmake b/cmake/common.cmake index 7c8ba985..f1e1a258 100644 --- a/cmake/common.cmake +++ b/cmake/common.cmake @@ -4,6 +4,8 @@ set(LIBRARY_VERSION 0.9.0) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + # Global platform-specific definitions if(MSVC) add_definitions(-DUNICODE -D_UNICODE) diff --git a/include/xlnt/workbook/workbook.hpp b/include/xlnt/workbook/workbook.hpp index ce38ba40..07ea8599 100644 --- a/include/xlnt/workbook/workbook.hpp +++ b/include/xlnt/workbook/workbook.hpp @@ -375,7 +375,7 @@ public: void load(std::istream &stream, const std::string &password); void load(const std::vector &data, const std::string &password); -#ifdef WIN32 +#ifdef _MSC_VER void save(const std::wstring &filename); void save(const std::wstring &filename, const std::string &password); diff --git a/source/cell/tests/test_cell.hpp b/source/cell/tests/test_cell.hpp index 5ba2f6fd..3fd3308b 100644 --- a/source/cell/tests/test_cell.hpp +++ b/source/cell/tests/test_cell.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include diff --git a/source/detail/xml/details/config.h b/source/detail/xml/details/config.h index 90beb67e..da254f6e 100644 --- a/source/detail/xml/details/config.h +++ b/source/detail/xml/details/config.h @@ -9,6 +9,7 @@ #define XML_DETAILS_CONFIG_H #undef LIBSTUDXML_STATIC_LIB +#define LIBSTUDXML_STATIC_LIB #undef LIBSTUDXML_EXTERNAL_EXPAT #undef LIBSTUDXML_BYTEORDER diff --git a/source/utils/path.cpp b/source/utils/path.cpp index 7dda5427..0a6a36c7 100644 --- a/source/utils/path.cpp +++ b/source/utils/path.cpp @@ -37,7 +37,7 @@ namespace { -#ifdef _MSC_VER +#ifdef WIN32 char system_separator() { diff --git a/source/utils/timedelta.cpp b/source/utils/timedelta.cpp index 38d9be05..392debb2 100644 --- a/source/utils/timedelta.cpp +++ b/source/utils/timedelta.cpp @@ -59,10 +59,8 @@ timedelta timedelta::from_number(long double raw_time) { timedelta result; - long double integer_part; - long double fractional_part = std::modf(raw_time, &integer_part); - - result.days = static_cast(integer_part); + result.days = static_cast(raw_time); + long double fractional_part = raw_time - result.days; fractional_part *= 24; result.hours = static_cast(fractional_part); diff --git a/source/workbook/tests/test_consume_xlsx.hpp b/source/workbook/tests/test_consume_xlsx.hpp index 1c168551..1aa78553 100644 --- a/source/workbook/tests/test_consume_xlsx.hpp +++ b/source/workbook/tests/test_consume_xlsx.hpp @@ -67,13 +67,15 @@ public: void test_read_unicode_filename() { -#ifdef WIN32 +#ifdef _MSC_VER xlnt::workbook wb; wb.load(L"data\\19_unicode_Λ.xlsx"); TS_ASSERT_EQUALS(wb.get_active_sheet().get_cell("A1").get_value(), "unicode!"); #endif +#ifndef __MINGW32__ xlnt::workbook wb2; wb2.load(u8"data/19_unicode_Λ.xlsx"); TS_ASSERT_EQUALS(wb2.get_active_sheet().get_cell("A1").get_value(), "unicode!"); +#endif } }; diff --git a/source/workbook/workbook.cpp b/source/workbook/workbook.cpp index a387eb22..218c1c03 100644 --- a/source/workbook/workbook.cpp +++ b/source/workbook/workbook.cpp @@ -64,7 +64,7 @@ namespace { -#ifdef WIN32 +#ifdef _MSC_VER std::wstring utf8_to_utf16(const std::string &utf8_string) { std::wstring_convert> convert; @@ -822,7 +822,7 @@ void workbook::save(std::ostream &stream, const std::string &password) producer.write(stream, password); } -#ifdef WIN32 +#ifdef _MSC_VER void workbook::save(const std::wstring &filename) { std::ofstream file_stream; diff --git a/tests/helpers/temporary_file.hpp b/tests/helpers/temporary_file.hpp index cd7c958a..bc894071 100644 --- a/tests/helpers/temporary_file.hpp +++ b/tests/helpers/temporary_file.hpp @@ -11,24 +11,7 @@ namespace { static std::string create_temporary_filename() { -#ifdef _MSC_VER - std::array buffer; - DWORD result = GetTempPath(static_cast(buffer.size()), buffer.data()); - - if (result > MAX_PATH) - { - throw std::runtime_error("buffer is too small"); - } - - if (result == 0) - { - throw std::runtime_error("GetTempPath failed"); - } - - return std::string(buffer.begin(), buffer.begin() + result) + "xlnt.xlsx"; -#else - return "/tmp/xlnt.xlsx"; -#endif + return "temp.xlsx"; } } // namespace diff --git a/third-party/botan b/third-party/botan index 923a95d5..523b2a4c 160000 --- a/third-party/botan +++ b/third-party/botan @@ -1 +1 @@ -Subproject commit 923a95d546df5b6d31f39b0af900d0361fb2e6a6 +Subproject commit 523b2a4ca48fa5cf04ea371aabe7167ce2e5cd13