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);
      }
    }
  }