]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/fileutl.cc
- [ABI BREAK] add an ErrorType option to CacheSetHelper
[apt.git] / apt-pkg / contrib / fileutl.cc
index 49b2f3828f325ed6ad244775c9422efcf1f4ccbf..2a3b8a87daa0b062ea484f1b5d432a121e86658a 100644 (file)
@@ -700,6 +700,24 @@ bool FileFd::Open(string FileName,OpenMode Mode, unsigned long Perms)
    SetCloseExec(iFd,true);
    return true;
 }
+
+bool FileFd::OpenDescriptor(int Fd, OpenMode Mode, bool AutoClose)
+{
+   Close();
+   Flags = (AutoClose) ? FileFd::AutoClose : 0;
+   iFd = Fd;
+   if (Mode == ReadOnlyGzip) {
+      gz = gzdopen (iFd, "r");
+      if (gz == NULL) {
+        if (AutoClose)
+           close (iFd);
+        return _error->Errno("gzdopen",_("Could not open file descriptor %d"),
+                             Fd);
+      }
+   }
+   this->FileName = "";
+   return true;
+}
                                                                        /*}}}*/
 // FileFd::~File - Closes the file                                     /*{{{*/
 // ---------------------------------------------------------------------