From 6040f5893a85c0206d3fd234c46a608b87a5e9ac Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 29 Aug 2005 14:57:50 +0000 Subject: * debug support (Debug::pkgAcquire::RRed) for rred method added --- apt-pkg/deb/debindexfile.cc | 15 +++++++++++++++ apt-pkg/deb/debindexfile.h | 2 +- methods/rred.cc | 16 ++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index ff8bce85d..3ceeffdca 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -158,6 +158,21 @@ debPackagesIndex::debPackagesIndex(string URI,string Dist,string Section,bool Tr { } /*}}}*/ + +string debPackagesIndex::ArchiveURI(string File) const +{ + // FIXME: Remove as soon as pdiff support is offical + string remap = _config->Find("APT::Diffs::Remap::"+URI,""); + if(!remap.empty()) + { + std::cout << "doing a evil remapping to the URI as requested!\n"; + std::cout << URI << " -> " << remap << std::endl; + return remap+File; + } + + return URI + File; +} + // PackagesIndex::ArchiveInfo - Short version of the archive url /*{{{*/ // --------------------------------------------------------------------- /* This is a shorter version that is designed to be < 60 chars or so */ diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h index a1b9583a4..48a345adf 100644 --- a/apt-pkg/deb/debindexfile.h +++ b/apt-pkg/deb/debindexfile.h @@ -59,7 +59,7 @@ class debPackagesIndex : public pkgIndexFile // Stuff for accessing files on remote items virtual string ArchiveInfo(pkgCache::VerIterator Ver) const; - virtual string ArchiveURI(string File) const {return URI + File;}; + virtual string ArchiveURI(string File) const; // Interface for acquire virtual string Describe(bool Short) const; diff --git a/methods/rred.cc b/methods/rred.cc index f4d77c64c..6fa57f3a6 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -24,6 +24,7 @@ const char *Prog; class RredMethod : public pkgAcqMethod { + bool Debug; // the size of this doesn't really matter (except for performance) const static int BUF_SIZE = 1024; // the ed commands @@ -70,12 +71,23 @@ int RredMethod::ed_rec(FILE *ed_cmds, FILE *in_file, FILE *out_file, int line, } if (*idx == 'c') { mode = MODE_CHANGED; + if (Debug == true) { + std::clog << "changing from line " << startline + << " to " << stopline << std::endl; + } } else if (*idx == 'a') { mode = MODE_ADDED; + if (Debug == true) { + std::clog << "adding after line " << startline << std::endl; + } } else if (*idx == 'd') { mode = MODE_DELETED; + if (Debug == true) { + std::clog << "deleting from line " << startline + << " to " << stopline << std::endl; + } } else { return ED_PARSER; @@ -177,6 +189,7 @@ int RredMethod::ed_file(FILE *ed_cmds, FILE *in_file, FILE *out_file, bool RredMethod::Fetch(FetchItem *Itm) { + Debug = _config->FindB("Debug::pkgAcquire::RRed",false); URI Get = Itm->Uri; string Path = Get.Host + Get.Path; // To account for relative paths // Path contains the filename to patch @@ -185,6 +198,9 @@ bool RredMethod::Fetch(FetchItem *Itm) URIStart(Res); // Res.Filename the destination filename + if (Debug == true) + std::clog << "Patching " << Path << " with " << Path + << ".ed and putting result into " << Itm->DestFile << std::endl; // Open the source and destination files (the d'tor of FileFd will do // the cleanup/closing of the fds) FileFd From(Path,FileFd::ReadOnly); -- cgit v1.2.3