* Add a new helper progress method

* Make sure that the user sees the 100% mark
* Don't bother printing out X.0%, just print out X%


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10672 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2003-12-31 10:20:38 +00:00
parent 60837821e2
commit 9e26027b82
3 changed files with 31 additions and 4 deletions
+11 -4
View File
@@ -59,8 +59,12 @@ SlowOperationInformer::SlowOperationInformer(const std::string &Name)
SlowOperationInformer::~SlowOperationInformer() {
NestedSOI = false;
if (LastPrintAmount)
std::cout << "\n";
if (LastPrintAmount) {
// If we have printed something, make _sure_ we print the 100% amount, and
// also print a newline.
std::cout << std::string(LastPrintAmount, '\b') << "Progress "
<< OperationName << ": 100% \n";
}
alarm(0);
signal(SIGALRM, SIG_DFL);
@@ -87,8 +91,11 @@ void SlowOperationInformer::progress(unsigned Amount) {
std::string ToPrint = std::string(LastPrintAmount, '\b');
std::ostringstream OS;
OS << "Progress " << OperationName << ": " << Amount/10 << "." << Amount % 10
<< "%";
OS << "Progress " << OperationName << ": " << Amount/10;
if (unsigned Rem = Amount % 10)
OS << "." << Rem << "%";
else
OS << "% ";
LastPrintAmount = OS.str().size();
std::cout << ToPrint+OS.str() << std::flush;