- unsigned char *b, *b1, *b2, *b3;
-
- /* the decoder works on the least-significant three bytes of the bits integer,
- but their position in memory depend on both endian-ness and size of
- long int... for little-endian architectures the size is irrelevant, for
- big-endian archs it's crucial... ideally we'd adopt posix and use a64l instead
- of this mess. */
- b = (unsigned char *) &bits;
- b1 = &b[endian > 0 ? sizeof(bits)==8?5:1 : 2];
- b2 = &b[endian > 0 ? sizeof(bits)==8?6:2 : 1];
- b3 = &b[endian > 0 ? sizeof(bits)==8?7:3 : 0];