This fixes IE55SP2 setup (somewhat). License: X11 / Bugroff Changelog: * dlls/cabinet: cabextract.c, cabinet.h Greg Turner <gmturner007@ameritech.net> - fix some problems when Extract is used more than once -- diff -ur --minimal --exclude-from=/home/greg/bin/winetreediff_excl ../wine.vanilla/dlls/cabinet/cabextract.c ./dlls/cabinet/cabextract.c --- ../wine.vanilla/dlls/cabinet/cabextract.c 2003-01-03 19:32:32.000000000 -0600 +++ ./dlls/cabinet/cabextract.c 2003-01-23 10:11:20.000000000 -0600 @@ -46,6 +46,8 @@ */ cab_UBYTE search_buf[CAB_SEARCH_SIZE]; +cab_decomp_state decomp_state; + /* all the file IO is abstracted into these routines: * cabinet_(open|close|read|seek|skip|getoffset) * file_(open|close|write) @@ -2768,6 +2770,8 @@ struct cabinet *basecab, *cab, *cab1, *cab2; struct cab_file *filelist, *fi; + ZeroMemory(&decomp_state, sizeof(cab_decomp_state)); + /* has the list-mode header been seen before? */ int viewhdr = 0; diff -ur --minimal --exclude-from=/home/greg/bin/winetreediff_excl ../wine.vanilla/dlls/cabinet/cabinet.h ./dlls/cabinet/cabinet.h --- ../wine.vanilla/dlls/cabinet/cabinet.h 2002-12-19 15:16:56.000000000 -0600 +++ ./dlls/cabinet/cabinet.h 2003-01-23 10:10:07.000000000 -0600 @@ -269,7 +269,7 @@ cab_UBYTE flags; /* header flags */ }; -struct { +typedef struct { struct cab_folder *current; /* current folder we're extracting from */ cab_ULONG offset; /* uncompressed offset within folder */ cab_UBYTE *outpos; /* (high level) start of data to use up */ @@ -283,7 +283,7 @@ struct QTMstate qtm; struct LZXstate lzx; } methods; -} decomp_state; +} cab_decomp_state; /* from cabextract.c */ BOOL process_cabinet(LPCSTR cabname, LPCSTR dir, BOOL fix, BOOL lower); -- gmt