--- branches/development/src/utils/ProgressBar.cpp 2012/07/06 22:01:58 1767 +++ branches/development/src/utils/ProgressBar.cpp 2013/01/09 22:02:30 1830 @@ -52,6 +52,7 @@ #else #include #include +#include #endif #ifdef IS_MPI @@ -98,10 +99,10 @@ namespace OpenMD { #ifdef _MSC_VER CONSOLE_SCREEN_BUFFER_INFO csbi; - int ret = GetConsoleScreenBufferInfo(GetStdHandle( STD_OUTPUT_HANDLE ), - &csbi); + HANDLE hConsole = GetStdHandle( STD_OUTPUT_HANDLE ); + int ret = GetConsoleScreenBufferInfo(hConsole, &csbi); if(ret) { - width = csbi.dwSize.X; + width = csbi.dwSize.X - 1; } #else struct winsize w; @@ -134,8 +135,13 @@ namespace OpenMD { struct tm * ender = localtime(&end_); char buffer[22]; strftime(buffer, 22, "%a %b %d @ %I:%M %p", ender); - + +#ifdef _MSC_VER + csbi.dwCursorPosition.X = 0; + SetConsoleCursorPosition(hConsole, csbi.dwCursorPosition); +#else cout << '\r'; +#endif cout.width(3); cout << right << int(percent); cout.width(3);