// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: extracttar.cc,v 1.2 2001/02/20 07:03:17 jgg Exp $
+// $Id: extracttar.cc,v 1.5 2002/03/26 07:38:58 jgg Exp $
/* ######################################################################
Extract a Tar - Tar Extractor
#include <unistd.h>
#include <signal.h>
#include <fcntl.h>
+#include <iostream>
/*}}}*/
-
+
// The on disk header for a tar file.
struct ExtractTar::TarHeader
{
/* */
ExtractTar::~ExtractTar()
{
- Done(false);
+ // Error close
+ Done(true);
}
/*}}}*/
// ExtractTar::Done - Reap the gzip sub process /*{{{*/
// Decode all of the fields
pkgDirStream::Item Itm;
- unsigned long UID;
- unsigned long GID;
if (StrToNum(Tar->Mode,Itm.Mode,sizeof(Tar->Mode),8) == false ||
- StrToNum(Tar->UserID,UID,sizeof(Tar->UserID),8) == false ||
- StrToNum(Tar->GroupID,GID,sizeof(Tar->GroupID),8) == false ||
+ StrToNum(Tar->UserID,Itm.UID,sizeof(Tar->UserID),8) == false ||
+ StrToNum(Tar->GroupID,Itm.GID,sizeof(Tar->GroupID),8) == false ||
StrToNum(Tar->Size,Itm.Size,sizeof(Tar->Size),8) == false ||
StrToNum(Tar->MTime,Itm.MTime,sizeof(Tar->MTime),8) == false ||
StrToNum(Tar->Major,Itm.Major,sizeof(Tar->Major),8) == false ||