* debug support (Debug::pkgAcquire::RRed) for rred method added
authorMichael Vogt <michael.vogt@ubuntu.com>
Mon, 29 Aug 2005 14:57:50 +0000 (14:57 +0000)
committerMichael Vogt <michael.vogt@ubuntu.com>
Mon, 29 Aug 2005 14:57:50 +0000 (14:57 +0000)
apt-pkg/deb/debindexfile.cc
apt-pkg/deb/debindexfile.h
methods/rred.cc

index ff8bce8..3ceeffd 100644 (file)
@@ -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 */
index a1b9583..48a345a 100644 (file)
@@ -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;   
index f4d77c6..6fa57f3 100644 (file)
@@ -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);