Decompression Source Code
Version 1.10 12/01/02 I-11
return 0;
}
i = 0;
while (i < n) {
c = (UINT16)(Sd->mBitBuf >> (BITBUFSIZ - 3));
if (c == 7) {
Mask = 1U << (BITBUFSIZ - 1 - 3);
while (Mask & Sd->mBitBuf) {
Mask >>= 1;
c += 1;
}
}
FillBuf (Sd, (UINT16)((c < 7) ? 3 : c - 3));
Sd->mPTLen [i++] = (UINT8)c;
if (i == Special) {
c = GetBits (Sd, 2);
while ((INT16)(--c) >= 0) {
Sd->mPTLen[i++] = 0;
}
}
}
while (i < nn) {
Sd->mPTLen [i++] = 0;
}
return ( MakeTable (Sd, nn, Sd->mPTLen, 8, Sd->mPTTable) );
}
STATIC
VOID
ReadCLen (
SCRATCH_DATA *Sd
)
/*++
Routine Description:
Reads code lengths for Char&Len Set.
Arguments:
Sd - the global scratch data
Returns: (VOID)
--*/
{
UINT16 n;
UINT16 c;
UINT16 i;
UINT16 Mask;