From 8cf0059f84cfb2eb55cf5445f3c5287fe8e392c3 Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Wed, 7 Jan 2026 11:44:26 -0600 Subject: [PATCH] compress util takes offset and length parameters --- bin/src/compress.c | 16 +++++++++++++--- bin/windows/compress.exe | Bin 6656 -> 6656 bytes 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/bin/src/compress.c b/bin/src/compress.c index 2bb46e9..7baea45 100644 --- a/bin/src/compress.c +++ b/bin/src/compress.c @@ -1,5 +1,6 @@ #include #include +#include #include const int MAXLENGTH = 0x300; @@ -149,10 +150,15 @@ int write_section(struct section section, char data[], char buf[], int loc) { int main(int argc, char *argv[]) { if (argc < 3) { - printf("Usage: %s infile outfile\n", argv[0]); + printf("Usage: %s infile outfile [start [length]]\n", argv[0]); return 1; } + off_t seek = 0; + if (argc > 3) { + seek = strtol(argv[3], NULL, 0); + } + FILE *inptr; if ((inptr = fopen(argv[1], "rb")) == NULL) { printf("%s does not exist.\n", argv[1]); @@ -170,10 +176,15 @@ int main(int argc, char *argv[]) { printf("Error stating file: %s\n", argv[1]); return 1; } - off_t size = buf.st_size; + off_t size = buf.st_size - seek; + if (argc > 4) { + size = strtol(argv[4], NULL, 0); + } char inbuf[size]; + fseek(inptr, seek, SEEK_SET); + if (fread(inbuf, 1, size, inptr) < size) { printf("Error reading file: %s\n", argv[1]); return 1; @@ -181,7 +192,6 @@ int main(int argc, char *argv[]) { fclose(inptr); - char outbuf[size * 2]; char m0data[MAXLENGTH]; diff --git a/bin/windows/compress.exe b/bin/windows/compress.exe index bd9d2fbf015cdc43ec5b48a86f974377cc5296ba..54c9b39b440a3c26d436490207f74744712633b2 100644 GIT binary patch delta 2367 zcmcguU2IfE6rS1brQ6cw?)HyWq-?QjiHa=(YAXg~ug)fIcmPdft+auyMf#U^iD=YY zQ*YAA>pP6j`=Kjq?qpp^9(Ni1UJ8q)r4_jQQnit|1w90CPhN9(b@;64p2O|if z9zQ>f?{|6JvGe#8b`9&i&Hab#qgA|9tK~;?zH>#ru}*C*#=X2l+sda_?8ZOx^4wPZ z2K-j=leyb)Kw5d8ZTKvI&hwCq=En|ry0BTEhtLFuJrbQOzybqNW04uYfqA!n2!tTQ zi~t#!44e~dAsQ#ra2_ra<_Xd1diqU0y?p&Aj|^4;9%6fcT`fYgy)J+kp~f5;m`A#4 zJ)GXcBiSwzTRSV`K3BYNLxiJoT9bO_LR73>e@kvS%ZypUWiLx*W>G!5L}dypyU3Ub z(Jz3&VH8>H<74@2%}`d@wcM0~Y6xS-CDyRGAx@2PS*V<>LIwZ5P{)8y29HzY458r> zW}HzeJqSxgtJ)%}LXA;a9F|Q9(Me`3f>x-mN?(ZW1b1ePlRcA!HO%p{m8IrrI+bU| zY6Gl(MV^T31IyN@y;QU)Rq9zW1acf6&&eva+u3O93Z}*pW*kv+JHQ|0I%)?&ZNJI1 zkrGJHdNY|!GWn}~pU&{LdSI2%6YT)b&{=!a=B~8am^SOdBus`dOFTeokd}QF^b*^8 z65fR9R2>uuN&wXw7oC-k>HJPCB$HxR-i0=zL;`-8CAJXn4s|R&@|l9t2B89mHyu17 zdM|atKCsOoY(tn#1-7cUcU1({#0LLPCTV6yjl9)cWI7Tv7#o*kw5>Y1a~9*|jTEEG z-QEsPI8J4PiBFfLGq1ZCA*hR$PKR18;7s`U1-f}#R@2bvJIiX*k_Oc>Q8}l6giZ}i zVk&E?NEN|15vd!z!g-=_}R}IX6=j%e3HjvEDltdjL9}-2y3AOj$~- zw4sfl^js1OI0zSzyz6{$byXK36u9;7I_Vb2(yHR|Rb?A)6lR{BJ+S1QoH5x8NiL41 zUBz|%u0j}=)FFEbT$#O>*XY3=$FfL%bEQaXfdmR!1#;E#af>K5eQLVlrhGjsevE&t zzl?{t$2W=*KkX~WU-KE?-7lUOM}%p=_yu^cN+`J|KwQMOu}ElLMUZJVkTlG8h|b8& zGjAHxp%`%}K5!^L^z%CZ`hxfVT2lE8@AX%BpMqu9;GmzQ3V`Dl4gc)k<9 zl3(`U>zeg2W#WGgLi+)2We)>3tyAv-9|%IZ;adyen6zWjKsV;wvHlN6XJ3*4 delta 2159 zcmc&#ZD?Cn7(VB=x4mYoNp9M-TH2*q-LJLGZI$}HAG_`ZQp9cDkKwdhtNW4e11c6} zB+y>y+3`xdgCf!&{t-hF7Yu`Jb~TxTF=H@61oej%MVqNmq+n24e9yTjU#!9q!9e=F zIp;mk^Stl*Xku?-?|f2A^)4(8Hoaitg>Qzm)m_}gM|9&}gc1vV-JZdziRmeXP|C;8 z;T>8=OJBlESX;Z3Ki~8l-rzC)A^v*vm)dt*)027+)~;;flllYG2)ve$hCAhfW&^WiTidvpPbASzTl%YY?Zcw+o>Ny-Ju7 zp@k^@JW9V_i$XG?R*4_;bjNRWii9g_Dp2Kl*5xU=b88-$pwkNQYRYh=L zC61nMpvt#aEOiPh$I3?N$FRO8hG9G==w>&iJJUe-a+U70W`vma1+|u$wM?xHp%Y1F zWt343@`%1m_@h<|=H7-ZGM*)Dq{Kh+2F+B>zyRd3k!AktmY(>{V0|CHZ>gBy4Qfzn zr4Kh?0tj=fm|Ba>T2!jzFkDrg2h};I9{@&b%`$6NB|TD?WKWmNWkTOM1&{%=aYXHy ziXnWm7LL`z!w?cC*DzcB0Q2|fz0MD?^Te_D!$^eYz%A661(%}XGOt$h!9U7n*>dPT zDi+}nvxP!j489ht{-*YEA?EDw4_)-ZXoTj8;|N=@*EPBeK*OYQS9l(T36sTvc+@%E zA5tgl+MnfeLy1DQ#vgYD+!E>pMmH01?5H%-ATU`KP`z;oB;h=j9VlL|md4sr?Fd2N z?7DK}w^#3{;_Tg4z28EkZ>iVqHKDngET*#Ws#zqC^UQJgcQi$C!Moy_Gu%RCu9zw| z--Iof%l_SNdH&fw^uM8-;mz%fBU-U9V`j}0oWEFx?#>x-^2EF2gLmgz;MR9%u}NG? zdsuLY0_?hLzsDz^DDjNEA(vKOq%m0JzHH~^4oX#VotTdFP%nCNI&{~kZ$dkUZ77ko)R=HG@d^MwEIqf6r2 zF@4+=(Ds~!jtK$OS|^V67ol){nEsaJ%0=jP`4U^}HOnVmijYgu=Td}CzTppVeY8~d zxQB<${H{DIrvvs`53zqGPu8^Gai6Qe0mh_P&lY?Sm8c}5rqd89#eQi z;VTMf6*>yvRG3ugs=}lC{~F+r1;hMwFpz#VIE8s4@Wi>U=zZxPgigUutpKj7_-DZP cd)@I50bkmN&@_A*e49cdhHjt4d>{7y4H@$*7XSbN