From b9d46504df1edf9555e1153bc7ff3db4d8095021 Mon Sep 17 00:00:00 2001 From: justin1014 Date: Tue, 3 Sep 2002 16:38:33 +0000 Subject: [PATCH] made SetCompressor handle switching back from bzip2 to zlib git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@889 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/script.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/Source/script.cpp b/Source/script.cpp index 0d42349f..ca448849 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -1333,9 +1333,26 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char } int k=line.gettoken_enum(1,"zlib\0bzip2\0"); switch (k) { - case 0: - // Default is zlib... - break; + case 0: // JF> should handle the state of going from bzip2 back to zlib: + compressor = &zlib_compressor; + free(header_data_new); + header_data_new=(unsigned char*)malloc(zlib_exeheader_size); + exeheader_size_new=zlib_exeheader_size; + exeheader_size=zlib_exeheader_size; + + if (!header_data_new) + { + ERROR_MSG("Internal compiler error #12345: malloc(%d) failed\n",exeheader_size_new); + extern void quit(); quit(); + } + + memcpy(header_data_new,zlib_header_data,zlib_exeheader_size); +#ifdef NSIS_ZLIB_COMPRESS_WHOLE + build_compress_whole=true; +#else + build_compress_whole=false; +#endif + break; case 1: compressor=&bzip2_compressor; free(header_data_new);