From 0bd3519e7e6e56c9199acf5d08ee3ea0c16e93a4 Mon Sep 17 00:00:00 2001 From: Tri11Paragon Date: Thu, 13 Mar 2025 13:47:44 -0700 Subject: [PATCH] fix for windows --- cmake/warnings.cmake | 4 +++- include/blt/iterator/enumerate.h | 8 ++++---- include/blt/iterator/zip.h | 8 ++++---- include/blt/parse/templating.h | 8 ++++++-- src/blt/logging/logging.cpp | 2 +- src/blt/logging/status.cpp | 10 ++++++++++ 6 files changed, 28 insertions(+), 12 deletions(-) diff --git a/cmake/warnings.cmake b/cmake/warnings.cmake index 035c0df..315d5fb 100644 --- a/cmake/warnings.cmake +++ b/cmake/warnings.cmake @@ -23,7 +23,9 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") message(STATUS "GCC libs: ${Green}stdc++fs${ColourReset}") target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wpedantic -fdiagnostics-color=always) target_link_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wpedantic -fdiagnostics-color=always) - target_link_options(${PROJECT_NAME} PUBLIC -rdynamic) + if (NOT WIN32) + target_link_options(${PROJECT_NAME} PUBLIC -rdynamic) + endif() target_link_libraries(${PROJECT_NAME} PUBLIC stdc++fs) include(GNUInstallDirs) elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") diff --git a/include/blt/iterator/enumerate.h b/include/blt/iterator/enumerate.h index 71f3687..7dd6293 100644 --- a/include/blt/iterator/enumerate.h +++ b/include/blt/iterator/enumerate.h @@ -82,14 +82,14 @@ namespace blt } template - class enumerate_iterator_container : public iterator::iterator_container> + class enumerate_iterator_container : public blt::iterator::iterator_container> { public: - using iterator::iterator_container>::iterator_container; + using blt::iterator::iterator_container>::iterator_container; enumerate_iterator_container(Iter begin, Iter end, blt::size_t size): - iterator::iterator_container>( - iterator::enumerate_wrapper{0, std::move(begin)}, iterator::enumerate_wrapper{size, std::move(end)}) + blt::iterator::iterator_container>( + blt::iterator::enumerate_wrapper{0, std::move(begin)}, blt::iterator::enumerate_wrapper{size, std::move(end)}) { } }; diff --git a/include/blt/iterator/zip.h b/include/blt/iterator/zip.h index df26e43..27a3760 100644 --- a/include/blt/iterator/zip.h +++ b/include/blt/iterator/zip.h @@ -112,11 +112,11 @@ namespace blt class zip_iterator_container : public iterator::iterator_container> { public: - using iterator::iterator_container>::iterator_container; + using blt::iterator::iterator_container>::iterator_container; - explicit zip_iterator_container(iterator::iterator_pair... iterator_pairs): - iterator::iterator_container>(iterator::zip_wrapper{std::move(iterator_pairs.begin)...}, - iterator::zip_wrapper{std::move(iterator_pairs.end)...}) + explicit zip_iterator_container(blt::iterator::iterator_pair... iterator_pairs): + blt::iterator::iterator_container>(blt::iterator::zip_wrapper{std::move(iterator_pairs.begin)...}, + blt::iterator::zip_wrapper{std::move(iterator_pairs.end)...}) {} }; diff --git a/include/blt/parse/templating.h b/include/blt/parse/templating.h index 5f10352..7cd9d30 100644 --- a/include/blt/parse/templating.h +++ b/include/blt/parse/templating.h @@ -223,8 +223,12 @@ namespace blt std::string_view from_last() { - if (!hasNext()) - return std::string_view(&raw_string[last_read_index], raw_string.size() - last_read_index); + if (!hasNext()) { + auto size = raw_string.size() - last_read_index; + if (size > 0) + return std::string_view(&raw_string[last_read_index], size); + return ""; + } auto token = storage[getCurrentIndex()]; auto len = ((&token.token.back()) - &raw_string[last_read_index]); auto str = std::string_view(&raw_string[last_read_index], len); diff --git a/src/blt/logging/logging.cpp b/src/blt/logging/logging.cpp index 67e5a66..d9339e0 100644 --- a/src/blt/logging/logging.cpp +++ b/src/blt/logging/logging.cpp @@ -204,7 +204,7 @@ namespace blt::logging if (end == std::string::npos) { std::stringstream ss; - ss << "Invalid format string, missing closing '}' near " << m_fmt.substr(std::min(static_cast(begin) - 5, 0l)); + ss << "Invalid format string, missing closing '}' near " << m_fmt.substr(std::min(static_cast(begin) - 5, 0ll)); throw std::runtime_error(ss.str()); } m_last_fmt_pos = end + 1; diff --git a/src/blt/logging/status.cpp b/src/blt/logging/status.cpp index 90696b4..1f3edfa 100644 --- a/src/blt/logging/status.cpp +++ b/src/blt/logging/status.cpp @@ -17,8 +17,10 @@ */ #include #include +#ifdef unix #include #include +#endif #include #include #include @@ -30,6 +32,7 @@ namespace blt::logging { vec2i get_cursor_position() { +#ifdef unix termios save{}, raw{}; tcgetattr(0, &save); @@ -68,12 +71,16 @@ namespace blt::logging tcsetattr(0,TCSANOW, &save); return vec2i{row, col}; +#else + return {0,0}; +#endif } #define SIZE 100 vec2i get_screen_size() { +#ifdef unix char in[SIZE] = ""; int each = 0; int ch = 0; @@ -113,6 +120,9 @@ namespace blt::logging return {rows, cols}; } throw std::runtime_error("Could not get screen size"); +#else + return {0,0}; +#endif } i32 get_size_no_ansi(const std::string& str)