/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1998-2011 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
#include "pzlib.h"
/*
* restore lo+hi into ob
*/
static int
restore(register Pz_t* pz, Pzpart_t* pp, register Sfio_t* ip, Sfio_t* op, register unsigned char* pat, register unsigned char* buf, size_t row, size_t m, register size_t* map, register unsigned char** mix, register size_t* inc)
{
register size_t z;
register int i;
for (;;)
{
do
{
for (i = 0; i < m; i++)
{
}
if (writef)
{
return -1;
}
{
return -1;
}
} while (--z);
for (;;)
{
}
}
return 0;
}
/*
* pz inflate from pz->io to op
*/
int
{
register int i;
register int j;
register int k;
register size_t n;
register size_t m;
register unsigned char* pat;
ssize_t r;
{
(*pz->disc->errorf)(pz, pz->disc, ERROR_SYSTEM|2, "%s: cannot inflate -- not open for read", pz->path);
return -1;
}
{
{
do
{
{
{
return -1;
}
break;
}
if (r < 0)
return -1;
}
{
return -1;
}
{
return -1;
}
return 0;
}
/*
* copy the prefix
*/
{
if (!pz->prefix.skip && pz->prefix.data && sfwrite(op, pz->prefix.data, pz->prefix.count) != pz->prefix.count)
{
return -1;
}
}
else
{
/*
* inflate each file
*/
do
{
/*
* inflate each window
*/
{
/*
* hi frequency data in pz->buf
*/
{
{
return -1;
}
m = 0;
j = 0;
k = 0;
{
j++;
else
j = m;
m += n;
}
}
else if (m != 1)
{
return -1;
}
/*
* lo frequency
*/
{
return -1;
}
{
return -1;
}
/*
* restore lo+hi on op
*/
return -1;
}
{
{
if ((m = sfgetu(pz->io)) && !sferror(pz->io) && !sfeof(pz->io) && (pat = (unsigned char*)sfreserve(pz->io, m, 0)))
}
else if (k != EOF)
}
{
return -1;
}
}
{
return -1;
}
return i;
}