This is lha.h in view mode; [Download] [Up]
/* ------------------------------------------------------------------------ */ /* LHa for UNIX Archiver Driver */ /* */ /* Modified Nobutaka Watazaki */ /* */ /* Ver. 1.14 Soruce All chagned 1995.01.14 N.Watazaki */ /* ------------------------------------------------------------------------ */ /* Included... lharc.h interface.h slidehuf.h */ #include <stdio.h> #include <errno.h> #include <ctype.h> #include <sys/types.h> #include <sys/file.h> #include <sys/stat.h> #include <signal.h> #include "lha_macro.h" 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 }; /* ------------------------------------------------------------------------ */ /* LHa File Type Definition */ /* ------------------------------------------------------------------------ */ struct string_pool { int used; int size; int n; char *buffer; }; typedef struct LzHeader { unsigned char header_size; char method[METHOD_TYPE_STRAGE]; long packed_size; long original_size; long last_modified_stamp; unsigned char attribute; unsigned char header_level; char name[256]; unsigned short crc; boolean has_crc; unsigned char extend_type; unsigned char minor_version; /* extend_type == EXTEND_UNIX and convert from other type. */ time_t unix_last_modified_stamp; unsigned short unix_mode; unsigned short unix_uid; unsigned short unix_gid; } LzHeader; struct interfacing { FILE *infile; FILE *outfile; unsigned long original; unsigned long packed; int dicbit; int method; }; /* ------------------------------------------------------------------------ */ /* Option switch variable */ /* ------------------------------------------------------------------------ */ /* command line options (common options) */ EXTERN boolean quiet; EXTERN boolean text_mode; EXTERN boolean verbose; EXTERN boolean noexec; /* debugging option */ EXTERN boolean force; EXTERN boolean prof; EXTERN boolean delete_after_append; EXTERN int compress_method; EXTERN int header_level; /* EXTERN int quiet_mode; */ /* 1996.8.13 t.okamoto */ #ifdef EUC EXTERN boolean euc_mode; #endif /* list command flags */ EXTERN boolean verbose_listing; /* extract/print command flags */ EXTERN boolean output_to_stdout; /* add/update/delete command flags */ EXTERN boolean new_archive; EXTERN boolean update_if_newer; EXTERN boolean generic_format; EXTERN boolean remove_temporary_at_error; EXTERN boolean recover_archive_when_interrupt; EXTERN boolean remove_extracting_file_when_interrupt; EXTERN boolean get_filename_from_stdin; EXTERN boolean ignore_directory; EXTERN boolean verify_mode; /* Indicator flag */ EXTERN int quiet_mode; /* ------------------------------------------------------------------------ */ /* Globale Variable */ /* ------------------------------------------------------------------------ */ EXTERN char **cmd_filev; EXTERN int cmd_filec; EXTERN char *archive_name; EXTERN char expanded_archive_name[FILENAME_LENGTH]; EXTERN char temporary_name[FILENAME_LENGTH]; EXTERN char backup_archive_name[FILENAME_LENGTH]; EXTERN char *reading_filename, *writting_filename; /* 1996.8.13 t.okamoto */ #if 0 EXTERN boolean remove_temporary_at_error; EXTERN boolean recover_archive_when_interrupt; EXTERN boolean remove_extracting_file_when_interrupt; #endif EXTERN int archive_file_mode; EXTERN int archive_file_gid; EXTERN struct interfacing interface; EXTERN node *next; /* EXTERN unsigned short crc; */ /* 1996.8.13 t.okamoto */ /* slide.c */ EXTERN int unpackable; EXTERN unsigned long origsize, compsize; EXTERN unsigned short dicbit; EXTERN unsigned short maxmatch; EXTERN unsigned long count; EXTERN unsigned long loc; /* short -> long .. Changed N.Watazaki */ EXTERN unsigned char *text; EXTERN int prev_char; /* huf.c */ #ifndef LHA_MAIN_SRC /* t.okamoto 96/2/20 */ EXTERN unsigned short left[], right[]; EXTERN unsigned char c_len[], pt_len[]; EXTERN unsigned short c_freq[], c_table[], c_code[]; EXTERN unsigned short p_freq[], pt_table[], pt_code[], t_freq[]; #endif /* append.c */ #ifdef NEED_INCREMENTAL_INDICATOR EXTERN long indicator_count; EXTERN long indicator_threshold; #endif /* crcio.c */ EXTERN FILE *infile, *outfile; EXTERN unsigned short crc, bitbuf; EXTERN int dispflg; EXTERN long reading_size; /* from dhuf.c */ EXTERN unsigned int n_max; /* lhadd.c */ EXTERN FILE *temporary_fp; /* ------------------------------------------------------------------------ */ /* Functions */ /* ------------------------------------------------------------------------ */ /* from lharc.c */ extern int patmatch(); extern void interrupt(); extern void message(); extern void warning(); extern void error(); extern void fatal_error(); extern boolean need_file(); extern int inquire(); extern FILE *xfopen(); extern boolean find_files(); extern void free_files(); extern void init_sp(); extern void add_sp(); extern void finish_sp(); extern void free_sp(); extern void cleaning_files(); extern void build_temporary_name(); extern void build_backup_file_name(); extern void build_standard_archive_name(); extern FILE *open_old_archive(); extern void init_header(); extern boolean get_header(); extern boolean archive_is_msdos_sfx1(); extern boolean skip_msdos_sfx1_code(); extern void write_header(); extern void write_archive_tail(); extern void copy_old_one(); extern unsigned char *convdelim(); extern long copyfile(); extern void cmd_list(), cmd_extract(), cmd_add(), cmd_delete(); extern boolean ignore_directory; extern boolean compress_method; extern boolean verify_mode; extern char *extract_directory; /* from slide.c */ extern int encode_alloc(); extern void encode(); extern void decode(); /* from append.c */ extern void start_indicator(); extern void finish_indicator(); extern void finish_indicator2(); /* slide.c */ extern void output_st1(); extern unsigned char *alloc_buf(); extern void encode_start_st1(); extern void encode_end_st1(); extern unsigned short decode_c_st1(); extern unsigned short decode_p_st1(); extern void decode_start_st1(); /* from shuf.c */ extern void decode_start_st0(); extern void encode_p_st0( /* unsigned short j */ ); extern void encode_start_fix(); extern void decode_start_fix(); extern unsigned short decode_c_st0(); extern unsigned short decode_p_st0(); /* from dhuf.c */ extern void start_c_dyn(); extern void decode_start_dyn(); extern unsigned short decode_c_dyn(); extern unsigned short decode_p_dyn(); extern void output_dyn( /* int code, unsigned int pos */ ); extern void encode_end_dyn(); extern int decode_lzhuf(); /* from larc.c */ extern unsigned short decode_c_lzs(); extern unsigned short decode_p_lzs(); extern unsigned short decode_c_lz5(); extern unsigned short decode_p_lz5(); extern void decode_start_lzs(); extern void decode_start_lz5(); 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 void make_crctable(); 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(); extern void init_putbits(); extern void make_crctable(); extern unsigned short calccrc(); /* from lhadd.c */ extern int encode_lzhuf(); extern int encode_stored_crc();
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.