--=_courier-5263-1051481314-0001-2
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
ERRRRRHHHHM!!!!!!!!!!....
...*blush* I should attatch files when I try to upload them. Let's
try this again!
Well here's some new code. I'll get to work on a userspace app
to compress files. This code ONLY works on fcomp-standard
and does only one BruteForce (bmbinary is disabled) search for
redundancy. This means three things:
1 - There's no support for messing with the pointer size and mdist/
analysis buffer size (max pointer distance)
2 - The compression ratios will not be the best. The first match,
no matter how short, will be taken. If it's less than 4 bytes, it will
return "no match" to the fcomp_push function.
3 - It will be slow. BruteForce() works. Period. The code is too
simple for even a first-day introductory C student to screw up, and
there are NO bugs unless I truly AM a moron. bmbinary() should
work, and the function it was coded from works in test, but neither
have been written out and proven to work by logic diagram. It's
fast (infinitely faster than BruteForce()), but I'll try it when I feel that
the rest of the code is working right.
This should be complete for fcomp-standard. A little alteration will
allow the fcomp-extended to work. *Wags tail* this past two days
has been fun ^_^;
--Bluefox Icy
--=_courier-5263-1051481314-0001-2
Content-Type: application/octet-stream; name="fcomp.tar.bz2"
Content-Transfer-Encoding: 7bit
Content-disposition: attachment; filename=fcomp.tar.bz2
X-Mime-Autoconverted: from x-uuencode to 7bit by courier 0.39
begin 755 fcomp.tar.bz2
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
C>GA)`"1)"1B[@0!^&3Q4;`NT$`3!H=(?_%W)%.%"0]A"QM0
`
end
--=_courier-5263-1051481314-0001-2--