From: Julian Andres Klode Date: Tue, 10 Aug 2010 12:55:36 +0000 (+0200) Subject: apt-pkg/contrib/fileutl.cc: Revert WriteEmpty to old behavior (LP: #613211) X-Git-Tag: 0.8.0^2~7 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/fc81e8f2deff3b86738cad78aa491b1b514b3c59 apt-pkg/contrib/fileutl.cc: Revert WriteEmpty to old behavior (LP: #613211) --- diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index f86bf2942..91aecee65 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -670,7 +670,6 @@ bool FileFd::Open(string FileName,OpenMode Mode, unsigned long Perms) break; case WriteAtomic: - case WriteEmpty: { Flags |= Replace; char *name = strdup((FileName + ".XXXXXX").c_str()); @@ -680,6 +679,14 @@ bool FileFd::Open(string FileName,OpenMode Mode, unsigned long Perms) break; } + case WriteEmpty: + { + struct stat Buf; + if (lstat(FileName.c_str(),&Buf) == 0 && S_ISLNK(Buf.st_mode)) + unlink(FileName.c_str()); + iFd = open(FileName.c_str(),O_RDWR | O_CREAT | O_TRUNC,Perms); + break; + } case WriteExists: iFd = open(FileName.c_str(),O_RDWR); diff --git a/debian/changelog b/debian/changelog index 9f3d1df85..0f3d0d499 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,7 @@ apt (0.7.26~exp13) UNRELEASEDexperimental; urgency=low [ Julian Andres Klode ] * apt-pkg/contrib/fileutl.cc: - Add WriteAtomic mode. + - Revert WriteEmpty to old behavior (LP: #613211) * apt-pkg/depcache.cc: - Only try upgrade for Breaks if there is a newer version, otherwise handle it as Conflicts (by removing it) (helps for #591882).