gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 06/09: progress-bar: get screen width on windows


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 06/09: progress-bar: get screen width on windows
Date: Sat, 27 Jan 2018 15:14:35 +0100

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit a0b5e894455aed4624682064b511d6522af7e6b2
Author: Gisle Vanem <address@hidden>
AuthorDate: Tue Jan 23 22:41:50 2018 +0100

    progress-bar: get screen width on windows
---
 src/tool_cb_prg.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/tool_cb_prg.c b/src/tool_cb_prg.c
index dd8941631..cf3251b29 100644
--- a/src/tool_cb_prg.c
+++ b/src/tool_cb_prg.c
@@ -202,6 +202,21 @@ void progressbarinit(struct ProgressData *bar,
     struct winsize ts;
     if(!ioctl(STDIN_FILENO, TIOCGWINSZ, &ts))
       cols = ts.ws_col;
+#elif defined(_WIN32)
+    {
+      HANDLE  stderr_hnd = GetStdHandle(STD_ERROR_HANDLE);
+      CONSOLE_SCREEN_BUFFER_INFO console_info;
+
+      if((stderr_hnd != INVALID_HANDLE_VALUE) &&
+         GetConsoleScreenBufferInfo(stderr_hnd, &console_info)) {
+        /*
+         * Do not use +1 to get the true screen-width since writing a
+         * character at the right edge will cause a line wrap.
+         */
+        cols = (int)
+          (console_info.srWindow.Right - console_info.srWindow.Left);
+      }
+    }
 #endif /* TIOCGSIZE */
     bar->width = cols;
   }

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]