There you go, now who wants to look into merging cabextract with WINE? [http://www.kyz.uklinux.net/cabextract.php3]
It'll be useful for at least three things:
- Remove external dependency in urlmon (dlls/urlmon/umon.c) - Implement advapi32:ExtractFiles and fix dlls/setupapi/queue.c - Implement cabinet.dll - Probably some other misc cabinet functions here and there - CHM viewer (in the future)
I don't think it would be too hard to merge the 0.7 changes into any merging work done with 0.6, so I wouldn't think it necessary to hold out until then. The only major bug he mentions is fixed by simply changing scope of a variable, so.... :)
- Ender
---------- Forwarded message ---------- Date: Wed, 06 Nov 2002 12:37:51 +0000 From: Stuart Caie kyzer@4u.net To: "J.Brown (Ender/Amigo)" ender@enderboi.com Subject: Re: cabextract licensing
Hello J.Brown
On 01-Nov-02, you wrote:
Quick question - would it be possible for you to release/give permission to use the cabextract code under the LGPL? That would allow it's integration into WINE, and make things a lot easier for WINE..
Sure, I donate to the WINE project the current cabextract 0.6 code (and next release, 0.7, when it is out) for all uses under the LGPL.
Just a few technical things:
- as it says in the code, cabextract is not a library. It doesn't bother freeing memory except for the 2MB LZX/QTM windows between folders. You'll have to handle memory freeing yourself :)
- further, there is a real bug in 0.6: when an LZX or QTM folder follows a ZIP folder, the LZX(window) and QTM(window) pointer in the methods union will be muddied by ZIP state data and will be non-zero and therefore assumed to be valid window pointers. They're not (they're random ZIP state), so it segfaults. To fix this now, remove the "window" field from LZXstate and QTMstate, and put it in the general decomp_state, then change all references of LZX(window) and QTM(window) to CAB(window).
- there are also some minor bugs that you'll see fixed in 0.7 (which is why I gifted you this one as well)
If you have any other questions, feel free to ask!
Regards