From: Michael Vogt <michael.vogt@ubuntu.com>
Date: Fri, 18 Dec 2009 14:43:49 +0000 (+0100)
Subject: apt-pkg/deb/dpkgpm.{cc,h}: refactor writing of the history tag, add ","
X-Git-Tag: 0.7.25ubuntu1~2^2^2
X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/d7a4ffd6525524000b6e529afa6e3ca63bd76c01

apt-pkg/deb/dpkgpm.{cc,h}: refactor writing of the history tag, add ","
---

diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index 8162405c7..4b118bc14 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -550,6 +550,17 @@ void pkgDPkgPM::DoDpkgStatusFd(int statusfd, int OutStatusFd)
    dpkgbuf_pos = dpkgbuf+dpkgbuf_pos-p;
 }
 									/*}}}*/
+// DPkgPM::WriteHistoryTag						/*{{{*/
+void pkgDPkgPM::WriteHistoryTag(string tag, string value)
+{
+   if (value.size() > 0)
+   {
+      // poor mans rstrip(", ")
+      if (value[value.size()-2] == ',' && value[value.size()-1] == ' ')
+	 value.erase(value.size() - 2, 2);
+      fprintf(history_out, "%s: %s\n", tag.c_str(), value.c_str());
+   }
+}									/*}}}*/
 // DPkgPM::OpenLog							/*{{{*/
 bool pkgDPkgPM::OpenLog()
 {
@@ -586,30 +597,25 @@ bool pkgDPkgPM::OpenLog()
       string remove, purge, install, upgrade, downgrade;
       for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
       {
-	 if (Cache[I].Upgrade())
-	    upgrade += I.Name() + string(" (") + Cache[I].CurVersion + string(", ") + Cache[I].CandVersion + string(") ");
+	 if (Cache[I].NewInstall())
+	    install += I.Name() + string(" (") + Cache[I].CandVersion + string("), ");
+	 else if (Cache[I].Upgrade())
+	    upgrade += I.Name() + string(" (") + Cache[I].CurVersion + string(", ") + Cache[I].CandVersion + string("), ");
 	 else if (Cache[I].Downgrade())
-	    downgrade += I.Name() + string(" (") + Cache[I].CurVersion + string(", ") + Cache[I].CandVersion + string(") ");
-	 else if (Cache[I].Install())
-	    install += I.Name() + string(" (") + Cache[I].CandVersion + string(") ");
+	    downgrade += I.Name() + string(" (") + Cache[I].CurVersion + string(", ") + Cache[I].CandVersion + string("), ");
 	 else if (Cache[I].Delete())
 	 {
 	    if ((Cache[I].iFlags & pkgDepCache::Purge) == pkgDepCache::Purge)
-	       purge += I.Name() + string(" (") + Cache[I].CurVersion + string(") ");	    
+	       purge += I.Name() + string(" (") + Cache[I].CurVersion + string("), ");	    
 	    else
-	       remove += I.Name() + string(" (") + Cache[I].CurVersion + string(") ");	    
+	       remove += I.Name() + string(" (") + Cache[I].CurVersion + string("), ");	    
 	 }
       }
-      if (install.size() > 0)
-	 fprintf(history_out, "Install: %s\n", install.c_str());
-      if (upgrade.size() > 0)
-	 fprintf(history_out, "Upgrade: %s\n", upgrade.c_str());
-      if (downgrade.size() > 0)
-	 fprintf(history_out, "Downgrade: %s\n", downgrade.c_str());
-      if (remove.size() > 0)
-	 fprintf(history_out, "Remove: %s\n", remove.c_str());
-      if (purge.size() > 0)
-	 fprintf(history_out, "Purge: %s\n", purge.c_str());
+      WriteHistoryTag("Install", install);
+      WriteHistoryTag("Upgrade", upgrade);
+      WriteHistoryTag("Downgrade",downgrade);
+      WriteHistoryTag("Remove",remove);
+      WriteHistoryTag("Purge",purge);
       fflush(history_out);
    }
    
diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h
index 67f1430be..330c788a2 100644
--- a/apt-pkg/deb/dpkgpm.h
+++ b/apt-pkg/deb/dpkgpm.h
@@ -68,6 +68,7 @@ class pkgDPkgPM : public pkgPackageManager
    // Helpers
    bool RunScriptsWithPkgs(const char *Cnf);
    bool SendV2Pkgs(FILE *F);
+   void WriteHistoryTag(string tag, string value);
 
    // dpkg log
    bool OpenLog();