]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/clean.cc
cachefile: Only set members that were initialized successfully
[apt.git] / apt-pkg / clean.cc
index ebe8a8a530569ad5df7f80d49e5754bac23c41dd..fe57c26a2287da6015394321a857242b753e27c6 100644 (file)
@@ -38,6 +38,11 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache)
    if(Dir == "/")
       return _error->Error(_("Clean of %s is not supported"), Dir.c_str());
 
+   // non-existing directories are always clean
+   // we do not check for a directory explicitly to support symlinks
+   if (FileExists(Dir) == false)
+      return true;
+
    DIR *D = opendir(Dir.c_str());
    if (D == 0)
       return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str());
@@ -54,6 +59,7 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache)
       // Skip some files..
       if (strcmp(Dir->d_name,"lock") == 0 ||
          strcmp(Dir->d_name,"partial") == 0 ||
+         strcmp(Dir->d_name,"lost+found") == 0 ||
          strcmp(Dir->d_name,".") == 0 ||
          strcmp(Dir->d_name,"..") == 0)
         continue;