2004/06/11 (金) 16:21:57 ◆ ▼ ◇ [mirai]while ( true )
{
Flags >>= 1;
if ( (Flags & 256) == 0 )
{
c = *( pSrcData++ );
Flags = c | 0xff00;
}
if ( Flags & 1 )
{
c = *(pSrcData++);
*(pDstData++) = c;
if ( --DstSize == 0 ) return true;
text[r++] = c;
r &= (LENGTH - 1);
}
else
{
long i = *(pSrcData++);
long j = *(pSrcData++);
i |= ((j & 0xF0) << 4);
j = (j & 0x0F) + 2;
for ( long k = 0; k <= j; k++ )
{
c = text[(i + k) & (LENGTH - 1)];
*(pDstData++) = c;
if ( --DstSize == 0 ) return true;
text[r++] = c;
r &= (LENGTH - 1);
}
}
}