diff --git a/src/utilities.cpp b/src/utilities.cpp index b8c57b6..5309a8b 100644 --- a/src/utilities.cpp +++ b/src/utilities.cpp @@ -66,27 +66,26 @@ std::string get_version_nr() #if defined(_WIN32) or defined(__MINGW32__) } -#include -#include -#include - -#include +# include +# include +# include +# include namespace cif { uint32_t get_terminal_width() { - CONSOLE_SCREEN_BUFFER_INFO csbi; - ::GetConsoleScreenBufferInfo(::GetStdHandle(STD_OUTPUT_HANDLE), &csbi); - return csbi.srWindow.Right - csbi.srWindow.Left + 1; + CONSOLE_SCREEN_BUFFER_INFO csbi; + ::GetConsoleScreenBufferInfo(::GetStdHandle(STD_OUTPUT_HANDLE), &csbi); + return csbi.srWindow.Right - csbi.srWindow.Left + 1; } #else -#include -#include -#include +# include +# include +# include uint32_t get_terminal_width() { @@ -126,7 +125,6 @@ struct progress_bar_impl uint64_t m_max_value; std::atomic m_consumed; - uint64_t m_last_consumed = 0; std::string m_action, m_message; time_point m_start = std::chrono::system_clock::now(); }; @@ -203,21 +201,14 @@ struct simple_progress_bar_impl : public progress_bar_impl // print at most 10 steps, but only if it took long enough - auto now = std::chrono::system_clock::now(); - - if (m_consumed > m_last_consumed or now - m_start >= 1s) + int percentile = static_cast(std::floor(10.f * m_consumed / m_max_value)); + if (percentile > m_last_percentile and (m_printed_any or std::chrono::system_clock::now() - m_start >= 1s)) { - m_last_consumed = m_consumed; + if (not std::exchange(m_printed_any, true)) + std::cout << m_action << ": "; - int percentile = static_cast(10.f * m_consumed / m_max_value); - if (percentile > m_last_percentile) - { - if (not std::exchange(m_printed_any, true)) - std::cout << m_action << ": "; - - std::cout << std::format("...{:d}0%", percentile) << std::flush; - m_last_percentile = percentile; - } + std::cout << std::format("...{:d}0%", percentile) << std::flush; + m_last_percentile = percentile; } } @@ -267,6 +258,7 @@ struct fancy_progress_bar_impl : public progress_bar_impl float m_progress; uint32_t m_width, m_bar_width; uint32_t m_steps, m_last_steps = 0; + uint64_t m_last_consumed = 0; }; fancy_progress_bar_impl::~fancy_progress_bar_impl() @@ -484,13 +476,13 @@ struct rsrc_imp #if _WIN32 -#if __MINGW32__ +# if __MINGW32__ extern "C" __attribute__((weak, alias("gResourceIndexDefault"))) const mrsrc::rsrc_imp gResourceIndex[]; extern "C" __attribute__((weak, alias("gResourceDataDefault"))) const char gResourceData[]; extern "C" __attribute__((weak, alias("gResourceNameDefault"))) const char gResourceName[]; -#else +# else extern "C" const mrsrc::rsrc_imp *gResourceIndexDefault[1] = {}; extern "C" const char *gResourceDataDefault[1] = {}; @@ -500,11 +492,11 @@ extern "C" const mrsrc::rsrc_imp gResourceIndex[]; extern "C" const char gResourceData[]; extern "C" const char gResourceName[]; -#pragma comment(linker, "/alternatename:gResourceIndex=gResourceIndexDefault") -#pragma comment(linker, "/alternatename:gResourceData=gResourceDataDefault") -#pragma comment(linker, "/alternatename:gResourceName=gResourceNameDefault") +# pragma comment(linker, "/alternatename:gResourceIndex=gResourceIndexDefault") +# pragma comment(linker, "/alternatename:gResourceData=gResourceDataDefault") +# pragma comment(linker, "/alternatename:gResourceName=gResourceNameDefault") -#endif +# endif #else extern const __attribute__((weak)) mrsrc::rsrc_imp gResourceIndex[];