#endif
/* append.c */
-int encode_lzhuf P_((FILE *infp, FILE *outfp, long size, long *original_size_var, long *packed_size_var, char *name, char *hdr_method));
-void start_indicator P_((char *name, long size, char *msg, long def_indicator_threshold));
+int encode_lzhuf P_((FILE *infp, FILE *outfp, size_t size, size_t *original_size_var, size_t *packed_size_var, char *name, char *hdr_method));
+void start_indicator P_((char *name, size_t size, char *msg, long def_indicator_threshold));
+void put_indicator P_((long int count));
void finish_indicator2 P_((char *name, char *msg, int pcnt));
void finish_indicator P_((char *name, char *msg));
-/* crcio.c */
-void make_crctable P_((void));
-unsigned int calccrc P_((unsigned int crc, unsigned char *p, unsigned int n));
+/* bitio.c */
void fillbuf P_((int n));
unsigned short getbits P_((int n));
void putcode P_((int n, int x));
void putbits P_((int n, int x));
+void init_getbits P_((void));
+void init_putbits P_((void));
+/* crcio.c */
+void make_crctable P_((void));
+unsigned int calccrc P_((unsigned int crc, unsigned char *p, unsigned int n));
int fread_crc P_((unsigned int *crcp, unsigned char *p, int n, FILE *fp));
void fwrite_crc P_((unsigned int *crcp, unsigned char *p, int n, FILE *fp));
void init_code_cache P_((void));
-void init_getbits P_((void));
-void init_putbits P_((void));
int fwrite_txt P_((unsigned char *p, int n, FILE *fp));
int fread_txt P_((unsigned char *p, int n, FILE *fp));
/* dhuf.c */
void output_dyn P_((unsigned int code, unsigned int pos));
void encode_end_dyn P_((void));
/* extract.c */
-int decode_lzhuf P_((FILE *infp, FILE *outfp, long original_size, long packed_size, char *name, int method));
+int decode_lzhuf P_((FILE *infp, FILE *outfp, size_t original_size, size_t packed_size, char *name, int method, size_t *read_sizep));
/* header.c */
-int calc_sum P_((register char *p, register int len));
+int calc_sum P_((char *p, int len));
void convert_filename P_((char *name, int len, int size, int from_code, int to_code, char *from_delim, char *to_delim, int case_to));
boolean get_header P_((FILE *fp, LzHeader *hdr));
+int seek_lha_header P_((FILE *fp));
void init_header P_((char *name, struct stat *v_stat, LzHeader *hdr));
void write_header P_((FILE *fp, LzHeader *hdr));
char *sjis_to_utf8 P_((char *dst, const char *src, size_t dstsize));
char *utf8_to_sjis P_((char *dst, const char *src, size_t dstsize));
void euc2sjis P_((int *p1, int *p2));
void sjis2euc P_((int *p1, int *p2));
+int cap_to_sjis P_((char *dst, const char *src, size_t dstsize));
+int sjis_to_cap P_((char *dst, const char *src, size_t dstsize));
/* huf.c */
void output_st1 P_((int c, int p));
unsigned char *alloc_buf P_((void));
void temporary_to_new_archive_file P_((long new_archive_size));
void cmd_add P_((void));
void cmd_delete P_((void));
-int strcmp_filename P_((char *str1, char *str2));
/* lharc.c */
-int main P_((int argc, char *argv[]));
void message P_((char *fmt, ...));
void warning P_((char *fmt, ...));
void error P_((char *fmt, ...));
void fatal_error P_((char *fmt, ...));
-void *xmalloc P_((int size));
-void *xrealloc P_((void *old, int size));
+RETSIGTYPE interrupt P_((int signo));
+void *xmalloc P_((size_t size));
+void *xrealloc P_((void *old, size_t size));
char *xstrdup P_((char *str));
void init_sp P_((struct string_pool *sp));
void add_sp P_((struct string_pool *sp, char *name, int len));
/* maketbl.c */
void make_table P_((int nchar, unsigned char bitlen[], int tablebits, unsigned short table[]));
/* maketree.c */
-void make_code P_((int n, unsigned char len[], unsigned short code[]));
-short make_tree P_((int nparm, unsigned short freqparm[], unsigned char lenparm[], unsigned short codeparm[]));
+short make_tree P_((int nchar, unsigned short *freq, unsigned char *bitlen, unsigned short *code));
/* patmatch.c */
int patmatch P_((register char *p, register char *s, int f));
/* shuf.c */
unsigned int encode P_((struct interfacing *interface));
unsigned int decode P_((struct interfacing *interface));
/* util.c */
-long copyfile P_((FILE *f1, FILE *f2, long size, int text_flg, unsigned int *crcp));
-int encode_stored_crc P_((FILE *ifp, FILE *ofp, long size, long *original_size_var, long *write_size_var));
-unsigned char *convdelim P_((unsigned char *path, int delim));
+size_t copyfile P_((FILE *f1, FILE *f2, long size, int text_flg, unsigned int *crcp));
+int encode_stored_crc P_((FILE *ifp, FILE *ofp, size_t size, size_t *original_size_var, size_t *write_size_var));
boolean archive_is_msdos_sfx1 P_((char *name));
-boolean skip_msdos_sfx1_code P_((FILE *fp));
-int strucmp P_((register char *s, register char *t));
int xsnprintf P_((char *dest, size_t size, char *fmt, ...));
char *xstrchr P_((const char *s, int c));
char *xstrrchr P_((const char *s, int c));
char *xmemchr P_((const char *s, int c, size_t n));
char *xmemrchr P_((const char *s, int c, size_t n));
-/* lharc.c */
-RETSIGTYPE interrupt(int signo);
/* util.c */
#if !HAVE_MEMMOVE
void *memmove P_((void *dst, const void *src, size_t cnt));
#endif
#if !HAVE_STRDUP
-char *strdup P_((char *buf));
+char *strdup P_((const char *buf));
#endif
#if !HAVE_MEMSET
-char *memset P_((char *s, int c, int n));
+char *memset P_((char *s, int c, size_t n));
+#endif
+#if !HAVE_STRCASECMP
+int strcasecmp P_((const char *p1, const char *p2));
+#endif
+#if defined HAVE_DECL_BASENAME && !HAVE_DECL_BASENAME
+char *basename P_((char *s));
#endif
/* vsnprintf.c */