ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/utils/ProgressBar.cpp
(Generate patch)

Comparing trunk/src/utils/ProgressBar.cpp (file contents):
Revision 1431 by gezelter, Thu Apr 8 14:27:53 2010 UTC vs.
Revision 1790 by gezelter, Thu Aug 30 17:18:22 2012 UTC

# Line 36 | Line 36
36   * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37   * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38   * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
39 < * [4]  Vardeman, Stocker & Gezelter, in progress (2010).                        
39 > * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40 > * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
42  
43   #include <iostream>
44 + #include <cstdlib>
45 +
46 + #ifdef _MSC_VER
47 + #include <Windows.h>
48 + #include <stdio.h>
49 + #include <io.h>
50 + #define isatty _isatty
51 + #define fileno _fileno
52 + #else
53 + #include <cstdio>
54   #include <sys/ioctl.h>
55 + #endif
56 +
57   #ifdef IS_MPI
58   #include <mpi.h>
59   #endif
60 +
61   #include "utils/ProgressBar.hpp"
62  
63   using namespace std;
# Line 79 | Line 93 | namespace OpenMD {
93   #endif
94        
95        // only do the progress bar if we are actually running in a tty:
96 <      if (isatty(fileno(stdout))) {  
83 <      
96 >      if (isatty(fileno(stdout))  && (getenv("SGE_TASK_ID")==NULL)) {    
97          // get the window width:
98 +
99 + #ifdef _MSC_VER
100 +        CONSOLE_SCREEN_BUFFER_INFO csbi;
101 +        HANDLE hConsole = GetStdHandle( STD_OUTPUT_HANDLE );
102 +        int ret = GetConsoleScreenBufferInfo(hConsole, &csbi);
103 +        if(ret) {
104 +          width = csbi.dwSize.X - 1;
105 +        }
106 + #else
107          struct winsize w;
108          ioctl(fileno(stdout), TIOCGWINSZ, &w);
109          width = w.ws_col;
110 + #endif
111  
112          // handle the case when the width is returned as a nonsensical value.
113          if (width <= 0) width = 80;
# Line 111 | Line 134 | namespace OpenMD {
134            struct tm * ender = localtime(&end_);
135            char buffer[22];
136            strftime(buffer, 22, "%a %b %d @ %I:%M %p", ender);
137 <          
137 >
138 > #ifdef _MSC_VER
139 >          csbi.dwCursorPosition.X = 0;
140 >          SetConsoleCursorPosition(hConsole, csbi.dwCursorPosition);
141 > #else          
142            cout << '\r';
143 + #endif
144            cout.width(3);
145            cout << right << int(percent);
146            cout.width(3);

Comparing trunk/src/utils/ProgressBar.cpp (property svn:keywords):
Revision 1431 by gezelter, Thu Apr 8 14:27:53 2010 UTC vs.
Revision 1790 by gezelter, Thu Aug 30 17:18:22 2012 UTC

# Line 0 | Line 1
1 + Author Id Revision Date

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines