- First LZMA enhanced NSIS version - experimental
- Added SetCompressorDictSize (only works for LZMA) - Added SetCompressionLevel (only "works" for zlib and bzip2) - doesn't work for now - Section is only supposed to get 4 parameters if /o is specified - Updated version numbers git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3190 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
320cefa4b0
commit
594c3ed0f6
84 changed files with 8083 additions and 41 deletions
|
@ -1934,7 +1934,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
if (k == -1) PRINTHELP()
|
||||
SCRIPT_MSG("XPStyle: %s\n", line.gettoken_str(1));
|
||||
init_res_editor();
|
||||
char* szXPManifest = k ? 0 : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\"><assemblyIdentity version=\"1.0.0.0\" processorArchitecture=\"X86\" name=\"Nullsoft.NSIS.exehead\" type=\"win32\"/><description>Nullsoft Install System v2.0b4</description><dependency><dependentAssembly><assemblyIdentity type=\"win32\" name=\"Microsoft.Windows.Common-Controls\" version=\"6.0.0.0\" processorArchitecture=\"X86\" publicKeyToken=\"6595b64144ccf1df\" language=\"*\" /></dependentAssembly></dependency></assembly>";
|
||||
char* szXPManifest = k ? 0 : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\"><assemblyIdentity version=\"1.0.0.0\" processorArchitecture=\"X86\" name=\"Nullsoft.NSIS.exehead\" type=\"win32\"/><description>Nullsoft Install System v2.0b5 (CVS)</description><dependency><dependentAssembly><assemblyIdentity type=\"win32\" name=\"Microsoft.Windows.Common-Controls\" version=\"6.0.0.0\" processorArchitecture=\"X86\" publicKeyToken=\"6595b64144ccf1df\" language=\"*\" /></dependentAssembly></dependency></assembly>";
|
||||
res_editor->UpdateResource(MAKEINTRESOURCE(24), MAKEINTRESOURCE(1), MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), (unsigned char*)szXPManifest, k ? 0 : lstrlen(szXPManifest));
|
||||
}
|
||||
catch (exception& err) {
|
||||
|
@ -2201,7 +2201,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
ERROR_MSG("%s expects 2 parameters, got 3.\n",line.gettoken_str(0));
|
||||
PRINTHELP();
|
||||
}
|
||||
int k=line.gettoken_enum(a,"zlib\0bzip2\0");
|
||||
int k=line.gettoken_enum(a,"zlib\0bzip2\0lzma\0");
|
||||
switch (k) {
|
||||
case 0: // JF> should handle the state of going from bzip2 back to zlib:
|
||||
compressor = &zlib_compressor;
|
||||
|
@ -2217,11 +2217,11 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
}
|
||||
|
||||
memcpy(header_data_new,zlib_header_data,zlib_exeheader_size);
|
||||
#ifdef NSIS_ZLIB_COMPRESS_WHOLE
|
||||
#ifdef NSIS_ZLIB_COMPRESS_WHOLE
|
||||
build_compress_whole=true;
|
||||
#else
|
||||
#else
|
||||
build_compress_whole=false;
|
||||
#endif
|
||||
#endif
|
||||
break;
|
||||
case 1:
|
||||
compressor=&bzip2_compressor;
|
||||
|
@ -2237,12 +2237,32 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
}
|
||||
|
||||
memcpy(header_data_new,bzip2_header_data,bzip2_exeheader_size);
|
||||
#ifdef NSIS_BZIP2_COMPRESS_WHOLE
|
||||
#ifdef NSIS_BZIP2_COMPRESS_WHOLE
|
||||
build_compress_whole=true;
|
||||
#else
|
||||
#else
|
||||
build_compress_whole=false;
|
||||
#endif
|
||||
#endif
|
||||
break;
|
||||
case 2:
|
||||
compressor = &lzma_compressor;
|
||||
free(header_data_new);
|
||||
header_data_new=(unsigned char*)malloc(lzma_exeheader_size);
|
||||
exeheader_size_new=lzma_exeheader_size;
|
||||
exeheader_size=lzma_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, lzma_header_data, lzma_exeheader_size);
|
||||
#ifdef NSIS_LZMA_COMPRESS_WHOLE
|
||||
build_compress_whole=true;
|
||||
#else
|
||||
build_compress_whole=false;
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
PRINTHELP();
|
||||
}
|
||||
|
@ -2590,6 +2610,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
unselected = 1;
|
||||
a++;
|
||||
}
|
||||
else if (line.getnumtokens() > 3)
|
||||
PRINTHELP();
|
||||
SCRIPT_MSG("Section: \"%s\"",line.gettoken_str(a));
|
||||
if (line.gettoken_str(a+1)[0]) SCRIPT_MSG(" ->(%s)",line.gettoken_str(a+1));
|
||||
SCRIPT_MSG("\n");
|
||||
|
@ -2764,6 +2786,33 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
}
|
||||
SCRIPT_MSG("FileBufSize: %smb (%d bytes)\n",line.gettoken_str(1),build_filebuflen);
|
||||
return PS_OK;
|
||||
case TOK_SETCOMPRESSIONLEVEL:
|
||||
{
|
||||
if (compressor == &lzma_compressor)
|
||||
warning_fl("SetCompressionLevel: compressor is set to LZMA. Effectively ignored.");
|
||||
if (build_compressor_set && build_compress_whole)
|
||||
warning_fl("SetCompressionLevel: data already compressed in compress whole mode. Effectively ignored.");
|
||||
|
||||
int s;
|
||||
build_compress_level=line.gettoken_int(1,&s);
|
||||
if (!s || build_compress_level < 0 || build_compress_level > 9) PRINTHELP();
|
||||
SCRIPT_MSG("SetCompressionLevel: %u\n", build_compress_level);
|
||||
}
|
||||
return PS_OK;
|
||||
case TOK_SETCOMPRESSORDICTSIZE:
|
||||
{
|
||||
if (compressor != &lzma_compressor)
|
||||
warning_fl("SetCompressorDictSize: compressor is not set to LZMA. Effectively ignored.");
|
||||
if (build_compressor_set && build_compress_whole)
|
||||
warning_fl("SetCompressorDictSize: data already compressed in compress whole mode. Effectively ignored.");
|
||||
|
||||
int s;
|
||||
build_compress_dict_size=line.gettoken_int(1,&s);
|
||||
if (!s) PRINTHELP();
|
||||
SCRIPT_MSG("SetCompressorDictSize: %u mb\n", build_compress_dict_size);
|
||||
build_compress_dict_size <<= 20;
|
||||
}
|
||||
return PS_OK;
|
||||
case TOK_ADDSIZE:
|
||||
{
|
||||
int s;
|
||||
|
@ -4760,7 +4809,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
SCRIPT_MSG("/IMGID=%d ",ent.offsets[1]);
|
||||
}
|
||||
else if (!stricmp(line.gettoken_str(i),"/RESIZETOFIT")) {
|
||||
ent.offsets[2]=1;
|
||||
ent.offsets[2]=1; // must be 1 or 0
|
||||
SCRIPT_MSG("/RESIZETOFIT ");
|
||||
}
|
||||
else if (!ent.offsets[0]) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue