/* * slidehuf.h -- part of LHa for UNIX * * modified: Feb. 26, 1992, Masaru Oki. */ #include #include #if defined(__STDC__) || defined(AIX) #include #else #ifndef CHAR_BIT #define CHAR_BIT 8 #endif #ifndef UCHAR_MAX #define UCHAR_MAX ((1<<(sizeof(unsigned char)*8))-1) #endif #ifndef USHRT_MAX #define USHRT_MAX ((1<<(sizeof(unsigned short)*8))-1) #endif #ifndef SHRT_MAX #define SHRT_MAX ((1<<(sizeof(short)*8-1))-1) #endif #ifndef SHRT_MIN #define SHRT_MIN (SHRT_MAX-USHRT_MAX) #endif #endif /* not __STDC__ */ /* #include "errmes.h" */ /* Your C-Compiler has no 'void' (from lharc.h) */ #if !defined(__STDC__) && !defined(AIX) /* NO_VOID */ #define void #endif struct encode_option { #if defined(__STDC__) || defined(AIX) void (*output)(); void (*encode_start)(); void (*encode_end)(); #else int (*output)(); int (*encode_start)(); int (*encode_end)(); #endif }; struct decode_option { unsigned short (*decode_c)(); unsigned short (*decode_p)(); #if defined(__STDC__) || defined(AIX) void (*decode_start)(); #else int (*decode_start)(); #endif }; /* from slide.c */ #define MAX_DICBIT 13 #define MAX_DICSIZ (1 << MAX_DICBIT) #define MATCHBIT 8 /* bits for MAXMATCH - THRESHOLD */ #define MAXMATCH 256 /* formerly F (not more than UCHAR_MAX + 1) */ #define THRESHOLD 3 /* choose optimal value */ extern int errno; extern int unpackable; extern unsigned long origsize, compsize; extern unsigned short dicbit; extern unsigned short maxmatch; extern unsigned long count; extern unsigned short loc; extern unsigned char *text; /* from huf.c */ #define NC (UCHAR_MAX + MAXMATCH + 2 - THRESHOLD) /* alphabet = {0, 1, 2, ..., NC - 1} */ #define CBIT 9 /* $\lfloor \log_2 NC \rfloor + 1$ */ #define USHRT_BIT 16 /* (CHAR_BIT * sizeof(ushort)) */ extern unsigned short left[], right[]; extern unsigned char c_len[], pt_len[]; extern unsigned short c_freq[], c_table[], c_code[], p_freq[], pt_table[], pt_code[], t_freq[]; extern void output_st1(); extern unsigned char *alloc_buf(void); extern void encode_start_st1(void); extern void encode_end_st1(void); extern unsigned short decode_c_st1(void); extern unsigned short decode_p_st1(void); extern void decode_start_st1(void); /* from shuf.c */ extern void decode_start_st0(void); extern void encode_p_st0(/*unsigned short j*/); extern void encode_start_fix(void); extern void decode_start_fix(void); extern unsigned short decode_c_st0(void); extern unsigned short decode_p_st0(void); /* from dhuf.c */ extern unsigned int n_max; extern void start_c_dyn(void); extern void decode_start_dyn(void); extern unsigned short decode_c_dyn(void); extern unsigned short decode_p_dyn(void); extern void output_dyn(/*int code, unsigned int pos*/); extern void encode_end_dyn(void); /* from larc.c */ extern unsigned short decode_c_lzs(void); extern unsigned short decode_p_lzs(void); extern unsigned short decode_c_lz5(void); extern unsigned short decode_p_lz5(void); extern void decode_start_lzs(void); extern void decode_start_lz5(void); /* from maketbl.c */ /* void make_table(short nchar, uchar bitlen[], short tablebits, ushort table[]); */ extern void make_table(/*int nchar, uchar bitlen[], int tablebits, ushort table[]*/); /* from maketree.c */ /* void make_code(short n, uchar len[], ushort code[]); short make_tree(short nparm, ushort freqparm[], uchar lenparm[], ushort codeparam[]); */ extern void make_code(/*int n, uchar len[], ushort code[]*/); extern short make_tree(/*int nparm, ushort freqparm[], uchar lenparm[], ushort codeparam[]*/); /* from crcio.c */ extern FILE *infile, *outfile; extern unsigned short crc, bitbuf; extern int dispflg; extern void make_crctable(void); extern unsigned short calccrc(/*uchar *p, uint n*/); extern void fillbuf(/*uchar n*/); extern unsigned short getbits(/*uchar n*/); extern void putcode(/*uchar n, ushort x*/); extern void putbits(/*uchar n, ushort x*/); extern int fread_crc(/*uchar *p, int n, FILE *f*/); extern void fwrite_crc(/*uchar *p, int n, FILE *f*/); extern void init_getbits(void); extern void init_putbits(void);