]> git.saurik.com Git - apt.git/blobdiff - methods/gzip.cc
Various fixes
[apt.git] / methods / gzip.cc
index 33721931649be044cce9ae88dc14cd0df0fd4716..78b196115aafae26819414dd8345e090ac83fa74 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: gzip.cc,v 1.9 1999/12/10 23:40:29 jgg Exp $
+// $Id: gzip.cc,v 1.10 2000/03/18 07:39:33 jgg Exp $
 /* ######################################################################
 
    GZip method - Take a file URI in and decompress it into the target 
 /* ######################################################################
 
    GZip method - Take a file URI in and decompress it into the target 
@@ -35,13 +35,14 @@ class GzipMethod : public pkgAcqMethod
 bool GzipMethod::Fetch(FetchItem *Itm)
 {
    URI Get = Itm->Uri;
 bool GzipMethod::Fetch(FetchItem *Itm)
 {
    URI Get = Itm->Uri;
-
+   string Path = Get.Host + Get.Path; // To account for relative paths
+   
    FetchResult Res;
    Res.Filename = Itm->DestFile;
    URIStart(Res);
    
    // Open the source and destintation files
    FetchResult Res;
    Res.Filename = Itm->DestFile;
    URIStart(Res);
    
    // Open the source and destintation files
-   FileFd From(Get.Path,FileFd::ReadOnly);
+   FileFd From(Path,FileFd::ReadOnly);
    FileFd To(Itm->DestFile,FileFd::WriteEmpty);   
    To.EraseOnFailure();
    if (_error->PendingError() == true)
    FileFd To(Itm->DestFile,FileFd::WriteEmpty);   
    To.EraseOnFailure();
    if (_error->PendingError() == true)
@@ -82,7 +83,7 @@ bool GzipMethod::Fetch(FetchItem *Itm)
    
    // Transfer the modification times
    struct stat Buf;
    
    // Transfer the modification times
    struct stat Buf;
-   if (stat(Get.Path.c_str(),&Buf) != 0)
+   if (stat(Path.c_str(),&Buf) != 0)
       return _error->Errno("stat","Failed to stat");
 
    struct utimbuf TimeBuf;
       return _error->Errno("stat","Failed to stat");
 
    struct utimbuf TimeBuf;