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;
20 if (s->bitBufLen == 0) {
21 s->bitBuf = s->p[0] | s->p[1] << 8;
26 return (s->bitBuf >> s->bitBufLen) & 1;
30 int ComLib_getTmpBit(struct ComLib_Str *s)
32 //次のビットをtmpの一番下のビットに押し込んで、その次のビットを返す
33 s->tmp = (s->tmp << 1 | ComLib_getBit(s)) & 0xffff;
34 return ComLib_getBit(s);
37 unsigned char *ComLib_main(const unsigned char *p, unsigned char *q)
49 i = ComLib_getBit(&s);
56 i = ComLib_getTmpBit(&s);
62 dis = ~((s.tmp - 3) << 8 | *s.p++);
65 i = ComLib_getTmpBit(&s);
66 s.tmp = s.tmp << 1 | i;
70 i = ComLib_getTmpBit(&s);
78 for (i = 0; i < s.tmp; i++){