diff options
| author | Dan Engelbrecht <[email protected]> | 2025-04-04 19:16:00 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-04-04 19:16:00 +0200 |
| commit | abd29e8c81594244e476d9def5333fc726597fb0 (patch) | |
| tree | 4f56f36d9fa086d2ba13061f499e733a7a6edeef /src | |
| parent | 5.6.3-pre2 (diff) | |
| download | zen-abd29e8c81594244e476d9def5333fc726597fb0.tar.xz zen-abd29e8c81594244e476d9def5333fc726597fb0.zip | |
"unlimited" line length when using plain progress (#347)
Diffstat (limited to 'src')
| -rw-r--r-- | src/zen/zen.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/zen/zen.cpp b/src/zen/zen.cpp index 50ee43341..5ce0a89ec 100644 --- a/src/zen/zen.cpp +++ b/src/zen/zen.cpp @@ -334,16 +334,28 @@ ProgressBar::UpdateState(const State& NewState, bool DoLinebreak) uint64_t Completed = NewState.TotalCount - NewState.RemainingCount; uint64_t ETAMS = (PercentDone > 5) ? (ElapsedTimeMS * NewState.RemainingCount) / Completed : 0; + uint32_t ConsoleColumns = 1024; + +#if ZEN_PLATFORM_WINDOWS + static HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); +#endif + + if (!m_PlainProgress) + { #if ZEN_PLATFORM_WINDOWS - static HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); - CONSOLE_SCREEN_BUFFER_INFO csbi; - GetConsoleScreenBufferInfo(hStdOut, &csbi); - uint32_t ConsoleColumns = (uint32_t)(csbi.srWindow.Right - csbi.srWindow.Left + 1); + CONSOLE_SCREEN_BUFFER_INFO csbi; + if (GetConsoleScreenBufferInfo(hStdOut, &csbi) == TRUE) + { + ConsoleColumns = (uint32_t)(csbi.srWindow.Right - csbi.srWindow.Left + 1); + } #else - struct winsize w; - ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); - uint32_t ConsoleColumns = (uint32_t)w.ws_col; + struct winsize w; + if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) == 0) + { + ConsoleColumns = (uint32_t)w.ws_col; + } #endif + } std::string_view TaskString = NewState.Task; |