Finally getting around to looking at this. The patch includes this bit:
+- (void)fprintf(fd, "unsigned long %s_crcinit = %d;\n", name, init);
++ (void)fprintf(fd, "#include <stdint.h>\n\n");
++ if (bits == 16) {
++ (void)fprintf(fd, "uint16_t %s_crcinit = %d;\n", name, init);
++ } else {
++ (void)fprintf(fd, "uint32_t %s_crcinit = %d;\n", name, init);
++ }
Which changes the number of bits in the initial value, but this initial
value is used to initialize the global element defined in crc.c as:
unsigned long crcinit;
e.g., in macunpack/cpt.c:
crcinit = zip_crcinit;
and macunpack/crc.h still declares these as:
extern unsigned long arc_crcinit;
extern unsigned long binhex_crcinit;
extern unsigned long zip_crcinit;
which isn't modified by your patch, so the headers get out of sync with the
actual code generated by makecrc. It probably works in practice, but this
should be cleaned up before being uploaded.
Eric
>