X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/df01b0d0d741eae61657b28a5111f40f05c215fe..f0983ff2091df782027a2e344cbd9e3df43c1450:/apt-pkg/cdrom.cc

diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc
index b42c82dd0..0cbdc178f 100644
--- a/apt-pkg/cdrom.cc
+++ b/apt-pkg/cdrom.cc
@@ -1,9 +1,6 @@
 /*
  */
 
-#ifdef __GNUG__
-#pragma implementation "apt-pkg/cdrom.h"
-#endif
 #include<apt-pkg/init.h>
 #include<apt-pkg/error.h>
 #include<apt-pkg/cdromutl.h>
@@ -18,6 +15,7 @@
 #include <dirent.h>
 #include <unistd.h>
 #include <stdio.h>
+#include <algorithm>
 
 
 #include "indexcopy.h"
@@ -562,10 +560,17 @@ bool pkgCdrom::Ident(string &ident, pkgCdromStatus *log)
    }
    if(log) {
       msg.str("");
-      ioprintf(msg, _("Stored label: %s \n"),
-	       Database.Find("CD::"+ident).c_str());
+      ioprintf(msg, _("Stored label: %s\n"),
+      Database.Find("CD::"+ident).c_str());
       log->Update(msg.str());
    }
+
+   // Unmount and finish
+   if (_config->FindB("APT::CDROM::NoMount",false) == false) {
+      log->Update(_("Unmounting CD-ROM...\n"), STEP_LAST);
+      UnmountCdrom(CDROM);
+   }
+
    return true;
 }
 
@@ -670,8 +675,8 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
    DropRepeats(TransList,"");
    if(log) {
       msg.str("");
-      ioprintf(msg, _("Found %i package indexes, %i source indexes, "
-		      "%i translation indexes and %i signatures\n"), 
+      ioprintf(msg, _("Found %u package indexes, %u source indexes, "
+		      "%u translation indexes and %u signatures\n"), 
 	       List.size(), SourceList.size(), TransList.size(),
 	       SigList.size());
       log->Update(msg.str(), STEP_SCAN);
@@ -679,7 +684,8 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
 
    if (List.size() == 0 && SourceList.size() == 0) 
    {
-      UnmountCdrom(CDROM);
+      if (_config->FindB("APT::CDROM::NoMount",false) == false) 
+	 UnmountCdrom(CDROM);
       return _error->Error("Unable to locate any package files, perhaps this is not a Debian Disc");
    }
 
@@ -706,7 +712,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
 	    
 	    if(log) {
 	       msg.str("");
-	       ioprintf(msg, "Found label '%s'\n", Name.c_str());
+	       ioprintf(msg, _("Found label '%s'\n"), Name.c_str());
 	       log->Update(msg.str());
 	    }
 	    Database.Set("CD::" + ID + "::Label",Name);
@@ -718,7 +724,8 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
       {
 	 if(!log) 
          {
-	    UnmountCdrom(CDROM);
+	    if (_config->FindB("APT::CDROM::NoMount",false) == false) 
+	       UnmountCdrom(CDROM);
 	    return _error->Error("No disc name found and no way to ask for it");
 	 }
 
@@ -796,7 +803,8 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
       string::size_type Space = (*I).find(' ');
       if (Space == string::npos)
       {
-	 UnmountCdrom(CDROM);
+	 if (_config->FindB("APT::CDROM::NoMount",false) == false) 
+	    UnmountCdrom(CDROM);
 	 return _error->Error("Internal error");
       }
 
@@ -813,7 +821,8 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
       string::size_type Space = (*I).find(' ');
       if (Space == string::npos)
       {
-	 UnmountCdrom(CDROM);
+	 if (_config->FindB("APT::CDROM::NoMount",false) == false) 
+	    UnmountCdrom(CDROM);
 	 return _error->Error("Internal error");
       }
 
@@ -829,7 +838,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
 
    // Unmount and finish
    if (_config->FindB("APT::CDROM::NoMount",false) == false) {
-      log->Update(_("Unmounting CD-ROM..."), STEP_LAST);
+      log->Update(_("Unmounting CD-ROM...\n"), STEP_LAST);
       UnmountCdrom(CDROM);
    }