ftp.nice.ch/pub/next/unix/archiver/freeze.2.3.N.bs.tar.gz#/freeze/bitio.h

This is bitio.h in view mode; [Download] [Up]

/* Some definitions for faster bit-level I/O */

extern unsigned long getbuf;    /* Bit I/O buffers */
extern u_short putbuf;
extern uchar bitlen;            /* Number of bits actually in `???buf' */

extern uchar crpt_flag; /* 1 == EOF was read when melting */
extern  uchar   __;     /* temporary variable for GetBit/Byte */

extern void EncodeEnd(), Putcode(), crpt_message();

#define bits(x) ((int)sizeof(x)*8)
#define BYSH  (bits(getbuf)-8)
#define BISH  (bits(getbuf)-1)

#define GetByte()       (bitlen >= 8 ? (__ = getbuf >> BYSH, bitlen -= 8,\
			getbuf <<= 8, __) : (getbuf |= (unsigned long) \
			(getchar() & 0xFF) << (BYSH - bitlen), __ = getbuf\
			>> BYSH, getbuf <<= 8, __))

#define GetBit()        (bitlen ? (__ = getbuf >> BISH, bitlen--, \
			getbuf <<= 1, __) : (getbuf = __ = getchar(), \
			getbuf <<= BYSH + 1, bitlen = 7, __ >> 7))

#define InitIO()        { crpt_flag = bitlen = 0; putbuf = 0; getbuf = 0; }

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.