From b618b84a39b515482a1f6d91ddbf30fa95c424b4 Mon Sep 17 00:00:00 2001 From: Erik Troan Date: Mon, 7 Jun 1999 16:20:28 +0000 Subject: *** empty log message *** --- isys/cpio.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 isys/cpio.c (limited to 'isys/cpio.c') diff --git a/isys/cpio.c b/isys/cpio.c new file mode 100644 index 000000000..06e41502f --- /dev/null +++ b/isys/cpio.c @@ -0,0 +1,34 @@ +#include +#include +#include +#include +#include +#include + +#include "cpio.h" + +int installCpioFile(FD_t fd, char * cpioName, char * outName, int inWin) { + struct cpioFileMapping map; + int rc; + char * failedFile; + CFD_t cfdbuf, *cfd = &cfdbuf; + + if (outName) { + map.archivePath = cpioName; + map.fsPath = outName; + map.mapFlags = CPIO_MAP_PATH; + } + + cfd->cpioIoType = cpioIoTypeGzFd; + cfd->cpioGzFd = gzdFdopen(fdDup(fdFileno(fd)), "r"); + + rc = cpioInstallArchive(cfd, outName ? &map : NULL, 1, NULL, NULL, + &failedFile); + gzdClose(cfd->cpioGzFd); + + if (rc || access(outName, R_OK)) { + return -1; + } + + return 0; +} -- cgit