]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/progress.cc
Make private sha2 functions static
[apt.git] / apt-pkg / contrib / progress.cc
index ab81e064350818a01bf6585e4167359222cc94f0..84ee4c124cf3c1c0c9c733f5a58e1aeca4e5f499 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: progress.cc,v 1.11 2001/05/07 05:25:13 jgg Exp $
+// $Id: progress.cc,v 1.12 2003/01/11 07:17:04 jgg Exp $
 /* ######################################################################
    
    OpProgress - Operation Progress
 /* ######################################################################
    
    OpProgress - Operation Progress
@@ -8,9 +8,6 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#ifdef __GNUG__
-#pragma implementation "apt-pkg/progress.h"
-#endif 
 #include <apt-pkg/progress.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/progress.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
@@ -19,6 +16,7 @@
 
 #include <iostream>
 #include <stdio.h>
 
 #include <iostream>
 #include <stdio.h>
+#include <cstring>
                                                                        /*}}}*/
 
 using namespace std;
                                                                        /*}}}*/
 
 using namespace std;
@@ -50,7 +48,7 @@ void OpProgress::Progress(unsigned long Cur)
 // ---------------------------------------------------------------------
 /* */
 void OpProgress::OverallProgress(unsigned long Current, unsigned long Total,
 // ---------------------------------------------------------------------
 /* */
 void OpProgress::OverallProgress(unsigned long Current, unsigned long Total,
-                                unsigned long Size,string Op)
+                                unsigned long Size,const string &Op)
 {
    this->Current = Current;
    this->Total = Total;
 {
    this->Current = Current;
    this->Total = Total;
@@ -67,27 +65,18 @@ void OpProgress::OverallProgress(unsigned long Current, unsigned long Total,
 // OpProgress::SubProgress - Set the sub progress state                        /*{{{*/
 // ---------------------------------------------------------------------
 /* */
 // OpProgress::SubProgress - Set the sub progress state                        /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void OpProgress::SubProgress(unsigned long SubTotal,string Op)
+void OpProgress::SubProgress(unsigned long SubTotal,const string &Op,
+                            float const Percent)
 {
    this->SubTotal = SubTotal;
 {
    this->SubTotal = SubTotal;
-   SubOp = Op;
-   if (Total == 0)
-      Percent = 0;
-   else
-      Percent = Current*100.0/Total;
-   Update();
-}
-                                                                       /*}}}*/
-// OpProgress::SubProgress - Set the sub progress state                        /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-void OpProgress::SubProgress(unsigned long SubTotal)
-{
-   this->SubTotal = SubTotal;
-   if (Total == 0)
-      Percent = 0;
+   if (Op.empty() == false)
+      SubOp = Op;
+   if (Total == 0 || Percent == 0)
+      this->Percent = 0;
+   else if (Percent != -1)
+      this->Percent = this->Current += (Size*Percent)/SubTotal;
    else
    else
-      Percent = Current*100.0/Total;
+      this->Percent = Current*100.0/Total;
    Update();
 }
                                                                        /*}}}*/
    Update();
 }
                                                                        /*}}}*/
@@ -115,6 +104,8 @@ bool OpProgress::CheckChange(float Interval)
    
    if ((int)LastPercent == (int)Percent)
       return false;
    
    if ((int)LastPercent == (int)Percent)
       return false;
+
+   LastPercent = Percent;
    
    if (Interval == 0)
       return false;
    
    if (Interval == 0)
       return false;
@@ -126,7 +117,6 @@ bool OpProgress::CheckChange(float Interval)
    if (Diff < Interval)
       return false;
    LastTime = Now;   
    if (Diff < Interval)
       return false;
    LastTime = Now;   
-   LastPercent = Percent;
    return true;
 }
                                                                        /*}}}*/
    return true;
 }
                                                                        /*}}}*/
@@ -136,7 +126,7 @@ bool OpProgress::CheckChange(float Interval)
 OpTextProgress::OpTextProgress(Configuration &Config) : 
                                NoUpdate(false), NoDisplay(false), LastLen(0) 
 {
 OpTextProgress::OpTextProgress(Configuration &Config) : 
                                NoUpdate(false), NoDisplay(false), LastLen(0) 
 {
-   if (Config.FindI("quiet",0) >= 1)
+   if (Config.FindI("quiet",0) >= 1 || Config.FindB("quiet::NoUpdate", false) == true)
       NoUpdate = true;
    if (Config.FindI("quiet",0) >= 2)
       NoDisplay = true;
       NoUpdate = true;
    if (Config.FindI("quiet",0) >= 2)
       NoDisplay = true;
@@ -151,9 +141,9 @@ void OpTextProgress::Done()
    {
       char S[300];
       if (_error->PendingError() == true)
    {
       char S[300];
       if (_error->PendingError() == true)
-        snprintf(S,sizeof(S),_("\r%s... Error!"),OldOp.c_str());
+        snprintf(S,sizeof(S),_("%c%s... Error!"),'\r',OldOp.c_str());
       else
       else
-        snprintf(S,sizeof(S),_("\r%s... Done"),OldOp.c_str());
+        snprintf(S,sizeof(S),_("%c%s... Done"),'\r',OldOp.c_str());
       Write(S);
       cout << endl;
       OldOp = string();
       Write(S);
       cout << endl;
       OldOp = string();