From 17846abbd25bb4341577c80558eaba71af791c11 Mon Sep 17 00:00:00 2001
From: "H. William Welliver III" <bill@welliver.org>
Date: Fri, 27 Feb 2004 11:20:43 -0500
Subject: [PATCH] using Stdio.FakeFile works better when we have the
 possibility of using Gz and Bz2 files.

Rev: lib/modules/Filesystem.pmod/Tar.pmod:1.27
---
 lib/modules/Filesystem.pmod/Tar.pmod | 28 +++++-----------------------
 1 file changed, 5 insertions(+), 23 deletions(-)

diff --git a/lib/modules/Filesystem.pmod/Tar.pmod b/lib/modules/Filesystem.pmod/Tar.pmod
index f9bc5f0baa..4525259a94 100644
--- a/lib/modules/Filesystem.pmod/Tar.pmod
+++ b/lib/modules/Filesystem.pmod/Tar.pmod
@@ -1,5 +1,5 @@
 /*
- * $Id: Tar.pmod,v 1.26 2004/01/11 00:50:18 nilsson Exp $
+ * $Id: Tar.pmod,v 1.27 2004/02/27 16:20:43 bill Exp $
  */
 
 #pike __REAL_VERSION__
@@ -25,7 +25,7 @@ class _Tar  // filesystem
 
   class ReadFile
   {
-    inherit Stdio.File;
+    inherit Stdio.FakeFile;
 
     static private int start, pos, len;
 
@@ -35,31 +35,13 @@ class _Tar  // filesystem
 		     start, len, pos);
     }
 
-    int seek(int p)
-    {
-      if(p<0)
-	if((p += len)<0)
-	  p = 0;
-      if(p>=len) {
-	p = len-1;
-	if (!len) p = 0;
-      }
-      return ::seek((pos = p)+start);
-    }
-
-    string read(int|void n)
-    {
-      if(!query_num_arg() || n>len-pos)
-	n = len-pos;
-      pos += n;
-      return ::read(n);
-    }
-
     void create(int p, int l)
     {
-      assign(fd/*->dup()*/);
+//      assign(fd/*->dup()*/);
       start = p;
       len = l;
+      fd->seek(start);
+      ::create(fd->read(len));
       seek(0);
     }
   }
-- 
GitLab