diff --git a/binhex/dofile.c b/binhex/dofile.c index a1b79ec..03cca60 100644 --- a/binhex/dofile.c +++ b/binhex/dofile.c @@ -1,10 +1,9 @@ #include #include "../fileio/machdr.h" #include "../fileio/rdfile.h" +#include "../crc/crc.h" extern int dorep; -extern unsigned long binhex_crcinit; -extern unsigned long binhex_updcrc(); #define RUNCHAR 0x90 @@ -43,35 +42,35 @@ void dofile() void doheader() { -unsigned long crc; +uint32_t crc; int i, n; crc = binhex_crcinit; n = file_info[I_NAMEOFF]; - crc = binhex_updcrc(crc, file_info + I_NAMEOFF, n + 1); + crc = binhex_updcrc(crc, (unsigned char*)(file_info + I_NAMEOFF), n + 1); for(i = 0; i <= n; i++) { outbyte(file_info[I_NAMEOFF + i]); } n = 0; - crc = binhex_updcrc(crc, (char *)&n, 1); + crc = binhex_updcrc(crc, (unsigned char *)&n, 1); outbyte(0); - crc = binhex_updcrc(crc, file_info + I_TYPEOFF, 4); + crc = binhex_updcrc(crc, (unsigned char*)(file_info + I_TYPEOFF), 4); for(i = 0; i < 4; i++) { outbyte(file_info[I_TYPEOFF + i]); } - crc = binhex_updcrc(crc, file_info + I_AUTHOFF, 4); + crc = binhex_updcrc(crc, (unsigned char*)(file_info + I_AUTHOFF), 4); for(i = 0; i < 4; i++) { outbyte(file_info[I_AUTHOFF + i]); } - crc = binhex_updcrc(crc, file_info + I_FLAGOFF, 2); + crc = binhex_updcrc(crc, (unsigned char*)(file_info + I_FLAGOFF), 2); for(i = 0; i < 2; i++) { outbyte(file_info[I_FLAGOFF + i]); } - crc = binhex_updcrc(crc, file_info + I_DLENOFF, 4); + crc = binhex_updcrc(crc, (unsigned char*)(file_info + I_DLENOFF), 4); for(i = 0; i < 4; i++) { outbyte(file_info[I_DLENOFF + i]); } - crc = binhex_updcrc(crc, file_info + I_RLENOFF, 4); + crc = binhex_updcrc(crc, (unsigned char*)(file_info + I_RLENOFF), 4); for(i = 0; i < 4; i++) { outbyte(file_info[I_RLENOFF + i]); } @@ -83,10 +82,10 @@ void dofork(fork, size) char *fork; int size; { -unsigned long crc; +uint32_t crc; int i; - crc = binhex_updcrc(binhex_crcinit, fork, size); + crc = binhex_updcrc(binhex_crcinit, (unsigned char*)fork, size); for(i = 0; i < size; i++) { outbyte(fork[i]); } diff --git a/crc/crc.h b/crc/crc.h new file mode 100644 index 0000000..d93d19a --- /dev/null +++ b/crc/crc.h @@ -0,0 +1,14 @@ +#ifndef CRC_CRC_H +#define CRC_CRC_H + +#include + +extern uint32_t arc_crcinit; +extern uint32_t binhex_crcinit; +extern uint32_t zip_crcinit; + +extern uint32_t arc_updcrc(uint32_t icrc, unsigned char *icp, int32_t icnt); +extern uint32_t binhex_updcrc(uint32_t icrc, unsigned char *icp, int32_t icnt); +extern uint32_t zip_updcrc(uint32_t icrc, unsigned char *icp, int32_t icnt); + +#endif \ No newline at end of file diff --git a/crc/makecrc.c b/crc/makecrc.c index d65f073..3fa13dc 100644 --- a/crc/makecrc.c +++ b/crc/makecrc.c @@ -64,12 +64,13 @@ int poly, init, swapped, bits; (void)fprintf(stderr, "Cannot open %s for writing\n", buf); exit(1); } - (void)fprintf(fd, "unsigned long %s_crcinit = %d;\n", name, init); + (void)fprintf(fd, "#include \"crc.h\"\n"); + (void)fprintf(fd, "uint32_t %s_crcinit = %d;\n", name, init); (void)fprintf(fd, "\n"); if(bits == 16) { - (void)fprintf(fd, "static unsigned short crctab[256] = {\n"); + (void)fprintf(fd, "static uint16_t crctab[256] = {\n"); } else { - (void)fprintf(fd, "static unsigned long crctab[256] = {\n"); + (void)fprintf(fd, "static uint32_t crctab[256] = {\n"); } (void)fprintf(fd, " "); if(bits == 16) { @@ -109,7 +110,7 @@ int poly, init, swapped, bits; } (void)fprintf(fd, "};\n"); (void)fprintf(fd, "\n"); - (void)fprintf(fd, "unsigned long %s_updcrc(unsigned long icrc, unsigned char *icp, int icnt)\n", name); + (void)fprintf(fd, "uint32_t %s_updcrc(uint32_t icrc, unsigned char *icp, int32_t icnt)\n", name); (void)fprintf(fd, "{\n"); if(bits == 16) { (void)fprintf(fd, "#define M1 0xff\n"); @@ -118,9 +119,9 @@ int poly, init, swapped, bits; (void)fprintf(fd, "#define M1 0xffffff\n"); (void)fprintf(fd, "#define M2 0xffffff00\n"); } - (void)fprintf(fd, " register unsigned long crc = icrc;\n"); + (void)fprintf(fd, " register uint32_t crc = icrc;\n"); (void)fprintf(fd, " register unsigned char *cp = icp;\n"); - (void)fprintf(fd, " register int cnt = icnt;\n"); + (void)fprintf(fd, " register int32_t cnt = icnt;\n"); (void)fprintf(fd, "\n"); (void)fprintf(fd, " while(cnt--) {\n"); if(bits == 16) { diff --git a/hexbin/crc.c b/hexbin/crc.c index e5e59c0..121c5a7 100644 --- a/hexbin/crc.c +++ b/hexbin/crc.c @@ -8,7 +8,7 @@ extern void exit(); -unsigned long crc; +uint32_t crc; #ifdef HQX void comp_q_crc(c) diff --git a/hexbin/crc.h b/hexbin/crc.h index 67e49fb..f3e3fd4 100644 --- a/hexbin/crc.h +++ b/hexbin/crc.h @@ -1,10 +1,10 @@ #define INITCRC binhex_crcinit -extern unsigned long crc; -extern unsigned long binhex_crcinit; -extern unsigned long binhex_updcrc(); +#include "../crc/crc.h" -extern void comp_q_crc(); -extern void comp_q_crc_n(); -extern void verify_crc(); +extern uint32_t crc; + +extern void comp_q_crc (register unsigned int c); +extern void comp_q_crc_n (register unsigned char *s, register unsigned char *e); +extern void verify_crc (unsigned long calc_crc, unsigned long file_crc); diff --git a/macunpack/cpt.c b/macunpack/cpt.c index bdeb8d4..af44e5c 100644 --- a/macunpack/cpt.c +++ b/macunpack/cpt.c @@ -92,11 +92,11 @@ void cpt() #endif /* SCAN */ exit(1); } - cpt_crc = (*updcrc)(cpt_crc, cptptr, cpthdr.commentsize); + cpt_crc = (*updcrc)(cpt_crc, (unsigned char*)cptptr, cpthdr.commentsize); for(i = 0; i < cpthdr.entries; i++) { *cptptr = getc(infp); - cpt_crc = (*updcrc)(cpt_crc, cptptr, 1); + cpt_crc = (*updcrc)(cpt_crc, (unsigned char*)cptptr, 1); if(*cptptr & 0x80) { cptptr[F_FOLDER] = 1; *cptptr &= 0x3f; @@ -110,7 +110,7 @@ void cpt() #endif /* SCAN */ exit(1); } - cpt_crc = (*updcrc)(cpt_crc, cptptr + 1, *cptptr); + cpt_crc = (*updcrc)(cpt_crc, (unsigned char*)(cptptr + 1), *cptptr); if(cptptr[F_FOLDER]) { if(fread(cptptr + F_FOLDERSIZE, 1, 2, infp) != 2) { (void)fprintf(stderr, "Can't read file header #%d\n", i+1); @@ -119,7 +119,7 @@ void cpt() #endif /* SCAN */ exit(1); } - cpt_crc = (*updcrc)(cpt_crc, cptptr + F_FOLDERSIZE, 2); + cpt_crc = (*updcrc)(cpt_crc, (unsigned char*)(cptptr + F_FOLDERSIZE), 2); } else { if(fread(cptptr + F_VOLUME, 1, FILEHDRSIZE - F_VOLUME, infp) != FILEHDRSIZE - F_VOLUME) { @@ -129,7 +129,7 @@ void cpt() #endif /* SCAN */ exit(1); } - cpt_crc = (*updcrc)(cpt_crc, cptptr + F_VOLUME, + cpt_crc = (*updcrc)(cpt_crc, (unsigned char*)(cptptr + F_VOLUME), FILEHDRSIZE - F_VOLUME); } cptptr += FILEHDRSIZE; @@ -203,7 +203,7 @@ struct cptHdr *s; return 0; } - cpt_crc = (*updcrc)(cpt_crc, temp + CPTHDRSIZE + C_ENTRIES, 3); + cpt_crc = (*updcrc)(cpt_crc, (unsigned char*)(temp + CPTHDRSIZE + C_ENTRIES), 3); s->hdrcrc = get4(temp + CPTHDRSIZE + C_HDRCRC); s->entries = get2(temp + CPTHDRSIZE + C_ENTRIES); s->commentsize = temp[CPTHDRSIZE + C_COMMENT]; @@ -415,7 +415,7 @@ unsigned short type; } else { cpt_rle_lzh(); } - cpt_crc = (*updcrc)(cpt_crc, out_buffer, obytes); + cpt_crc = (*updcrc)(cpt_crc, (unsigned char*)out_buffer, obytes); } void cpt_wrfile1(in_char, ibytes, obytes, type, blocksize) diff --git a/macunpack/crc.c b/macunpack/crc.c index 0e0baf3..830eb10 100644 --- a/macunpack/crc.c +++ b/macunpack/crc.c @@ -1,4 +1,6 @@ -unsigned long crcinit; +#include "crc.h" -unsigned long (*updcrc)(); +uint32_t crcinit; + +uint32_t (*updcrc)(uint32_t icrc, unsigned char *icp, int32_t icnt); diff --git a/macunpack/crc.h b/macunpack/crc.h index bcbd2bc..adc7119 100644 --- a/macunpack/crc.h +++ b/macunpack/crc.h @@ -1,13 +1,6 @@ #define INIT_CRC crcinit -extern unsigned long arc_crcinit; -extern unsigned long binhex_crcinit; -extern unsigned long zip_crcinit; - -extern unsigned long arc_updcrc(unsigned long icrc, unsigned char *icp, int icnt); -extern unsigned long binhex_updcrc(unsigned long icrc, unsigned char *icp, int icnt); -extern unsigned long zip_updcrc(unsigned long icrc, unsigned char *icp, int icnt); - -extern unsigned long crcinit; -extern unsigned long (*updcrc)(); +#include "../crc/crc.h" +extern uint32_t crcinit; +extern uint32_t (*updcrc)(uint32_t icrc, unsigned char *icp, int32_t icnt); diff --git a/macunpack/dd.c b/macunpack/dd.c index fd16f99..df7126d 100644 --- a/macunpack/dd.c +++ b/macunpack/dd.c @@ -151,7 +151,7 @@ void dd_arch(bin_hdr) unsigned char *bin_hdr; { unsigned long data_size; - unsigned long crc, filecrc; + uint32_t crc, filecrc; struct fileHdr f; struct fileCHdr cf; char locname[64]; @@ -322,7 +322,7 @@ struct fileCHdr *cf; int skip; { register int i; - unsigned long crc; + uint32_t crc; int n, to_uncompress; unsigned char *hdr; char ftype[5], fauth[5]; @@ -428,7 +428,7 @@ int skip; static void dd_cfilehdr(f) struct fileCHdr *f; { - unsigned long crc; + uint32_t crc; unsigned char *hdr; hdr = dd_data_ptr; diff --git a/macunpack/lzh.c b/macunpack/lzh.c index 552cd19..8273b79 100644 --- a/macunpack/lzh.c +++ b/macunpack/lzh.c @@ -368,7 +368,7 @@ int method; int rsrcLength, dataLength; int doit; char *mname; - unsigned long crc; + uint32_t crc; if(filehdr->upsize > lzh_filesize) { if(lzh_filesize == 0) { @@ -557,7 +557,7 @@ int method; } } if(doit) { - crc = (*updcrc)(INIT_CRC, lzh_file, filehdr->upsize); + crc = (*updcrc)(INIT_CRC, (unsigned char*)lzh_file, filehdr->upsize); if(filehdr->crc != crc) { (void)fprintf(stderr, "CRC error on file: need 0x%04x, got 0x%04x\n", diff --git a/macunpack/pit.c b/macunpack/pit.c index 5f42fb8..81b1406 100644 --- a/macunpack/pit.c +++ b/macunpack/pit.c @@ -122,10 +122,10 @@ void pit() start_info(info, filehdr.rlen, filehdr.dlen); start_data(); pit_wrfile(filehdr.dlen, decode); - data_crc = (*updcrc)(INIT_CRC, out_buffer, filehdr.dlen); + data_crc = (*updcrc)(INIT_CRC, (unsigned char*)out_buffer, filehdr.dlen); start_rsrc(); pit_wrfile(filehdr.rlen, decode); - data_crc = (*updcrc)(data_crc, out_buffer, filehdr.rlen); + data_crc = (*updcrc)(data_crc, (unsigned char*)out_buffer, filehdr.rlen); if(decode == nocomp) { crc = getb(infp); crc = (crc << 8) | getb(infp); @@ -164,7 +164,7 @@ struct pit_header *f; int compr; { register int i; - unsigned long crc; + uint32_t crc; int n; char hdr[HDRBYTES]; char ftype[5], fauth[5]; @@ -182,7 +182,7 @@ int compr; } } crc = INIT_CRC; - crc = (*updcrc)(crc, hdr, HDRBYTES - 2); + crc = (*updcrc)(crc, (unsigned char*)hdr, HDRBYTES - 2); f->hdrCRC = get2(hdr + H_HDRCRC); if(f->hdrCRC != crc) { diff --git a/macunpack/sit.c b/macunpack/sit.c index 7a65f9f..22559c9 100644 --- a/macunpack/sit.c +++ b/macunpack/sit.c @@ -157,7 +157,7 @@ static int readsithdr(sitHdr *s) static int sit_filehdr(struct fileHdr *f, int skip) { register int i; - unsigned long crc; + uint32_t crc; int n; char hdr[FILEHDRSIZE]; char ftype[5], fauth[5]; @@ -170,7 +170,7 @@ static int sit_filehdr(struct fileHdr *f, int skip) return -1; } crc = INIT_CRC; - crc = (*updcrc)(crc, hdr, FILEHDRSIZE - 2); + crc = (*updcrc)(crc, (unsigned char*)hdr, FILEHDRSIZE - 2); f->hdrCRC = get2(hdr + F_HDRCRC); if(f->hdrCRC != crc) { @@ -390,7 +390,7 @@ char *name; static void sit_unstuff(filehdr) struct fileHdr filehdr; { - unsigned long crc; + uint32_t crc; if(write_it) { start_info(info, filehdr.rsrcLength, filehdr.dataLength); @@ -403,7 +403,7 @@ struct fileHdr filehdr; } sit_wrfile(filehdr.compRLength, filehdr.rsrcLength, filehdr.compRMethod); if(write_it) { - crc = (*updcrc)(INIT_CRC, out_buffer, filehdr.rsrcLength); + crc = (*updcrc)(INIT_CRC, (unsigned char*)out_buffer, filehdr.rsrcLength); if(filehdr.rsrcCRC != crc) { (void)fprintf(stderr, "CRC error on resource fork: need 0x%04x, got 0x%04x\n", @@ -422,7 +422,7 @@ struct fileHdr filehdr; } sit_wrfile(filehdr.compDLength, filehdr.dataLength, filehdr.compDMethod); if(write_it) { - crc = (*updcrc)(INIT_CRC, out_buffer, filehdr.dataLength); + crc = (*updcrc)(INIT_CRC, (unsigned char*)out_buffer, filehdr.dataLength); if(filehdr.dataCRC != crc) { (void)fprintf(stderr, "CRC error on data fork: need 0x%04x, got 0x%04x\n", diff --git a/macunpack/zma.c b/macunpack/zma.c index ba9d2f7..cf5466b 100644 --- a/macunpack/zma.c +++ b/macunpack/zma.c @@ -274,7 +274,7 @@ struct fileHdr fhdr; static void zma_mooz(filehdr) struct fileHdr filehdr; { - unsigned long crc; + uint32_t crc; if(write_it) { start_info(info, filehdr.rsrcLength, filehdr.dataLength); @@ -287,7 +287,7 @@ struct fileHdr filehdr; } zma_wrfile(filehdr.compDLength, filehdr.dataLength, filehdr.what); if(write_it) { - crc = (*updcrc)(INIT_CRC, out_buffer, filehdr.dataLength); + crc = (*updcrc)(INIT_CRC, (unsigned char*)out_buffer, filehdr.dataLength); if(filehdr.dataCRC != crc) { (void)fprintf(stderr, "CRC error on data fork: need 0x%04x, got 0x%04x\n", @@ -306,7 +306,7 @@ struct fileHdr filehdr; } zma_wrfile(filehdr.compRLength, filehdr.rsrcLength, filehdr.what); if(write_it) { - crc = (*updcrc)(INIT_CRC, out_buffer, filehdr.rsrcLength); + crc = (*updcrc)(INIT_CRC, (unsigned char*)out_buffer, filehdr.rsrcLength); if(filehdr.rsrcCRC != crc) { (void)fprintf(stderr, "CRC error on resource fork: need 0x%04x, got 0x%04x\n",