PDA

View Full Version : Minor patch to compressloop utilities



Entropy42
04-13-2003, 06:38 AM
This is a patch against the compressloop implementation at http://projects.openoffice.nl/downloads/compressloop/

(I use this because it doesn't need huge amounts of RAM, since you can specify the image size in advance.)

For some reason, atoi() and atol() don't like numbers greater than 2^31. (Most likely because they assume signed results???)

As a result, compressloop is limited to a maximum input image size of 2^31 (2 gigs) instead of the 2^32 (4 gigs) limit of a long.

I'm sure the best way to fix this would be to replace atoi(), but it's 1:34 AM and I want to compress UT2k3 now, so my patch to the utilities is as follows:



diff cloop/compressloop.c cloop-sectorpatch/compressloop.c
74a75
> fprintf(stderr, "\t-s sectors\t\tset number of 2048-byte sectors instead of image size in bytes\n");
105a107
> unsigned long imagesec;
111c113
< while ((optionchar=getopt(argc,argv,"b:i:I:c:Fv"))!=-1) {
---
> while ((optionchar=getopt(argc,argv,"b:s:i:I:c:Fv"))!=-1) {
119a122,125
> break;
> case 's':
> imagesec=atoi(optarg);
> imagesize=imagesec*2048;


This allows you to set the input image size in 2048-byte sectors. This gets around the atoi() limitation, and also makes compressloop easier to use in scripts with mkisofs -q -print-size