aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-04-04 19:16:00 +0200
committerGitHub Enterprise <[email protected]>2025-04-04 19:16:00 +0200
commitabd29e8c81594244e476d9def5333fc726597fb0 (patch)
tree4f56f36d9fa086d2ba13061f499e733a7a6edeef /src
parent5.6.3-pre2 (diff)
downloadzen-abd29e8c81594244e476d9def5333fc726597fb0.tar.xz
zen-abd29e8c81594244e476d9def5333fc726597fb0.zip
"unlimited" line length when using plain progress (#347)
Diffstat (limited to 'src')
-rw-r--r--src/zen/zen.cpp26
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;