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