]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/fileutl.cc
simplify code to make compilers happy
[apt.git] / apt-pkg / contrib / fileutl.cc
index 37155b688173c2c25bc92f043867da53caf1a3e1..71ac9c73f5d6b4d535c79e2db5380c386b674221 100644 (file)
@@ -1594,11 +1594,17 @@ unsigned long long FileFd::Tell()
 unsigned long long FileFd::FileSize()
 {
    struct stat Buf;
-   if ((d == NULL || d->pipe == false) && fstat(iFd,&Buf) != 0)
-      return FileFdErrno("fstat","Unable to determine the file size");
+
+   bool ispipe = (d != NULL && d->pipe == true);
+   if (ispipe == false)
+   {
+      if (fstat(iFd,&Buf) != 0)
+        return FileFdErrno("fstat","Unable to determine the file size");
+      ispipe = S_ISFIFO(Buf.st_mode);
+   }
 
    // for compressor pipes st_size is undefined and at 'best' zero
-   if ((d != NULL && d->pipe == true) || S_ISFIFO(Buf.st_mode))
+   if (ispipe == true)
    {
       // we set it here, too, as we get the info here for free
       // in theory the Open-methods should take care of it already