X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/245dde96193702f7f51389d3583dee547f8ba366..a2025a9a307bf4796e90623b002a7fa80ae814ef:/apt-pkg/clean.cc diff --git a/apt-pkg/clean.cc b/apt-pkg/clean.cc index d05ae83b9..fe57c26a2 100644 --- a/apt-pkg/clean.cc +++ b/apt-pkg/clean.cc @@ -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; @@ -132,5 +138,5 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache) } /*}}}*/ -pkgArchiveCleaner::pkgArchiveCleaner() {} +pkgArchiveCleaner::pkgArchiveCleaner() : d(NULL) {} APT_CONST pkgArchiveCleaner::~pkgArchiveCleaner() {}