Fix tar -j support

Use the old fork() method of tar compression support, rather than
read_bz2....
 - (*uncompress)(int in, int out) seems like a more natural interface
for compression code.
 - it might improve performance by seperating the work into one cpu
bound and one io bound process.
 - There is extra code required to do read_[gz|bunzip] since (*uncompress)(int in,
int out) will normally be used by the standalone compression applet.

There have been problems with this method so if you see a "Short read"
error let me know.
This commit is contained in:
Glenn L McGrath
2003-11-05 04:55:58 +00:00
parent 6d687817a8
commit 2685724e23
3 changed files with 43 additions and 23 deletions

View File

@@ -590,22 +590,6 @@ extern int uncompressStream(int src_fd, int dst_fd)
return i;
}
/* This new version is not yet properly integrated with tar */
extern ssize_t read_bz2(int fd, void *buf, size_t count)
{
#warning FIXME "bzip2 tar support is broken!"
return(0);
}
extern void BZ2_bzReadOpen(int fd, void *unused, int nUnused)
{
#warning FIXME "bzip2 tar support is broken!"
}
extern void BZ2_bzReadClose(void)
{
#warning FIXME "bzip2 tar support is broken!"
}
#ifdef TESTING
static char * const bunzip_errors[]={NULL,"Bad file checksum","Not bzip data",