4 const unsigned char *p;
9 int ComLib_getBit(struct ComLib_Str *s)
12 if (s->bitBufLen == 0) {
13 s->bitBuf = s->p[0] | s->p[1] << 8;
18 return (s->bitBuf >> s->bitBufLen) & 1;
21 int ComLib_getTmpBit(struct ComLib_Str *s)
23 //次のビットをtmpの一番下のビットに押し込んで、その次のビットを返す
24 s->tmp = (s->tmp << 1 | ComLib_getBit(s)) & 0xffff;
25 return ComLib_getBit(s);
28 unsigned char *ComLib_main(const unsigned char *p, unsigned char *q)
40 i = ComLib_getBit(&s);
47 i = ComLib_getTmpBit(&s);
53 dis = ~((s.tmp - 3) << 8 | *s.p++);
56 i = ComLib_getTmpBit(&s);
57 s.tmp = s.tmp << 1 | i;
61 i = ComLib_getTmpBit(&s);
69 for (i = 0; i < s.tmp; i++){