]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/cdromutl.cc
Merge branch 'debian/sid' into feature/source-deb822
[apt.git] / apt-pkg / contrib / cdromutl.cc
index 551efa7d91a2cad6b5f2f60ee891bb77660b4ad7..afa01a56224d790f0cea9242f1976d78a83ff490 100644 (file)
@@ -10,6 +10,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/cdromutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/md5.h>
@@ -17,8 +19,6 @@
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/strutl.h>
 
-#include <apti18n.h>
-    
 #include <sys/wait.h>
 #include <sys/statvfs.h>
 #include <dirent.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <stdio.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
+using std::string;
+
 // IsMounted - Returns true if the mount point is mounted              /*{{{*/
 // ---------------------------------------------------------------------
 /* This is a simple algorithm that should always work, we stat the mount point
@@ -118,8 +122,9 @@ bool MountCdrom(string Path, string DeviceName)
    if (Child == 0)
    {
       // Make all the fds /dev/null
+      int null_fd = open("/dev/null",O_RDWR);
       for (int I = 0; I != 3; I++)
-        dup2(open("/dev/null",O_RDWR),I);
+        dup2(null_fd, I);
       
       if (_config->Exists("Acquire::cdrom::"+Path+"::Mount") == true)
       {
@@ -258,13 +263,9 @@ string FindMountPointForDevice(const char *devnode)
                if(TokSplitString(' ', buf, out, 10))
                {
                   fclose(f);
-                  // unescape \040 and return the path
-                  size_t pos;
+                  // unescape the \0XXX chars in the path
                   string mount_point = out[1];
-                  static const char *needle = "\\040";
-                  while ((pos = mount_point.find(needle)) != string::npos)
-                     mount_point.replace(pos, strlen(needle), " ");
-                  return mount_point;
+                  return DeEscapeString(mount_point);
                }
             }
          }