]> git.saurik.com Git - apt.git/commitdiff
* apt-pkg/contrib/fileutl.cc:
authorJulian Andres Klode <jak@debian.org>
Fri, 23 Jul 2010 14:13:15 +0000 (16:13 +0200)
committerJulian Andres Klode <jak@debian.org>
Fri, 23 Jul 2010 14:13:15 +0000 (16:13 +0200)
  - Add FileFd::OpenDescriptor() (needed for python-apt's #383617).

apt-pkg/contrib/fileutl.cc
apt-pkg/contrib/fileutl.h
debian/changelog

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                                     /*{{{*/
 // ---------------------------------------------------------------------
index 0f70ab722c83f59e730051cc7673916fed987786..62705478def3b8789fe1e291092c90e8a0510cd1 100644 (file)
@@ -28,6 +28,9 @@
 
 #include <zlib.h>
 
+/* Define this for python-apt */
+#define APT_HAS_GZIP 1
+
 using std::string;
 
 class FileFd
@@ -60,6 +63,7 @@ class FileFd
    unsigned long Tell();
    unsigned long Size();
    bool Open(string FileName,OpenMode Mode,unsigned long Perms = 0666);
+   bool OpenDescriptor(int Fd, OpenMode Mode, bool AutoClose=false);
    bool Close();
    bool Sync();
    
index 311833192907221d1ad9f984b4e24492bd327da0..06454cd5a6122e6cec5e951ae42cfcfedcc5ba8c 100644 (file)
@@ -3,6 +3,8 @@ apt (0.7.26~exp11) experimental; urgency=low
   * apt-pkg/deb/dpkgpm.cc:
     - Write architecture information to history file.
     - Add to history whether a change was automatic or not.
+  * apt-pkg/contrib/fileutl.cc:
+    - Add FileFd::OpenDescriptor() (needed for python-apt's #383617).
 
  -- Julian Andres Klode <jak@debian.org>  Wed, 21 Jul 2010 17:09:11 +0200