Thanks for looking it over. Fair enough, my initial patch was deliberately intended to be minimal, but if you would prefer my updating the uses of the libraries I can do that, although the changes will touch several more files.
I think I have it working on my local git repo, it will take me a bit for me to convert it into the patch format. --Joe On Sun, Jan 4, 2026 at 1:48 PM Eric Sharkey <[email protected]> wrote: > 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 > >>

