]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/cdromutl.cc
cleanup the error header a bit by moving the printf-macros out
[apt.git] / apt-pkg / contrib / cdromutl.cc
index ab170ec5a8b0c17f2c3bfae51ea9542201fd9d4e..0cf9697acd48aedfcf1584bc6ba228c22f1ed288 100644 (file)
@@ -10,9 +10,6 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#ifdef __GNUG__
-#pragma implementation "apt-pkg/cdromutl.h"
-#endif
 #include <apt-pkg/cdromutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/md5.h>
@@ -101,7 +98,7 @@ bool UnmountCdrom(string Path)
 // MountCdrom - Mount a cdrom                                          /*{{{*/
 // ---------------------------------------------------------------------
 /* We fork mount and drop all messages */
-bool MountCdrom(string Path)
+bool MountCdrom(string Path, string DeviceName)
 {
    if (IsMounted(Path) == true)
       return true;
@@ -125,8 +122,15 @@ bool MountCdrom(string Path)
       {
         const char *Args[10];
         Args[0] = "mount";
-        Args[1] = Path.c_str();
-        Args[2] = 0;
+        if (DeviceName == "") 
+        {
+           Args[1] = Path.c_str();
+           Args[2] = 0;
+        } else {
+           Args[1] = DeviceName.c_str();
+           Args[2] = Path.c_str();
+           Args[3] = 0;
+        }
         execvp(Args[0],(char **)Args);      
         _exit(100);
       }      
@@ -179,7 +183,8 @@ bool IdentCdrom(string CD,string &Res,unsigned int Version)
       Hash.Add(Dir->d_name);
    };
    
-   chdir(StartDir.c_str());
+   if (chdir(StartDir.c_str()) != 0)
+      return _error->Errno("chdir",_("Unable to change to %s"),StartDir.c_str());
    closedir(D);
    
    // Some stats from the fsys