Minor indentation fixes and cleanup in script.cpp
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6493 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
c4bc732396
commit
401dbe8aed
1 changed files with 217 additions and 373 deletions
|
@ -134,9 +134,7 @@ TCHAR *CEXEBuild::set_timestamp_predefine(const TCHAR *filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
TCHAR timestampbuf[256] = _T("");
|
TCHAR datebuf[128] = _T(""), timebuf[128] = _T(""), timestampbuf[256];
|
||||||
TCHAR datebuf[128] = _T("");
|
|
||||||
TCHAR timebuf[128] = _T("");
|
|
||||||
WIN32_FIND_DATA fd;
|
WIN32_FIND_DATA fd;
|
||||||
FILETIME floctime;
|
FILETIME floctime;
|
||||||
SYSTEMTIME stime;
|
SYSTEMTIME stime;
|
||||||
|
@ -209,8 +207,7 @@ void CEXEBuild::set_date_time_predefines()
|
||||||
{
|
{
|
||||||
time_t etime;
|
time_t etime;
|
||||||
struct tm * ltime;
|
struct tm * ltime;
|
||||||
TCHAR datebuf[128];
|
TCHAR datebuf[128], timebuf[128];
|
||||||
TCHAR timebuf[128];
|
|
||||||
|
|
||||||
time(&etime);
|
time(&etime);
|
||||||
ltime = localtime(&etime);
|
ltime = localtime(&etime);
|
||||||
|
@ -490,17 +487,11 @@ parse_again:
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int istrue=0;
|
int istrue=0, mod=0, logicneg=0;
|
||||||
|
|
||||||
int mod=0;
|
|
||||||
|
|
||||||
int p=0;
|
|
||||||
|
|
||||||
if (tkid == TOK_P_IF) {
|
if (tkid == TOK_P_IF) {
|
||||||
if(!_tcscmp(line.gettoken_str(1),_T("!"))) {
|
if (!_tcscmp(line.gettoken_str(1),_T("!")))
|
||||||
p = 1;
|
logicneg++, line.eattoken();
|
||||||
line.eattoken();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line.getnumtokens() == 2)
|
if (line.getnumtokens() == 2)
|
||||||
istrue = line.gettoken_int(1);
|
istrue = line.gettoken_int(1);
|
||||||
|
@ -575,13 +566,12 @@ parse_again:
|
||||||
}
|
}
|
||||||
else PRINTHELP()
|
else PRINTHELP()
|
||||||
|
|
||||||
if(p) istrue = !istrue;
|
if (logicneg) istrue = !istrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
|
|
||||||
// pure left to right precedence. Not too powerful, but useful.
|
// pure left to right precedence. Not too powerful, but useful.
|
||||||
for (p = 1; p < line.getnumtokens(); p ++)
|
for (int p = 1; p < line.getnumtokens(); p++)
|
||||||
{
|
{
|
||||||
if (p & 1)
|
if (p & 1)
|
||||||
{
|
{
|
||||||
|
@ -646,8 +636,7 @@ void CEXEBuild::ps_addtoline(const TCHAR *str, GrowBuf &linedata, StringList &hi
|
||||||
while (*in)
|
while (*in)
|
||||||
{
|
{
|
||||||
int add=1;
|
int add=1;
|
||||||
TCHAR *t, c=*in;
|
TCHAR c=*in, *t=CharNext(in);
|
||||||
t=CharNext(in);
|
|
||||||
|
|
||||||
if (t-in > 1) // handle multibyte chars (no escape)
|
if (t-in > 1) // handle multibyte chars (no escape)
|
||||||
{
|
{
|
||||||
|
@ -662,20 +651,11 @@ void CEXEBuild::ps_addtoline(const TCHAR *str, GrowBuf &linedata, StringList &hi
|
||||||
if (in[0] == _T('\\'))
|
if (in[0] == _T('\\'))
|
||||||
{
|
{
|
||||||
if (in[1] == _T('r'))
|
if (in[1] == _T('r'))
|
||||||
{
|
in+=2, c=_T('\r');
|
||||||
in+=2;
|
|
||||||
c=_T('\r');
|
|
||||||
}
|
|
||||||
else if (in[1] == _T('n'))
|
else if (in[1] == _T('n'))
|
||||||
{
|
in+=2, c=_T('\n');
|
||||||
in+=2;
|
|
||||||
c=_T('\n');
|
|
||||||
}
|
|
||||||
else if (in[1] == _T('t'))
|
else if (in[1] == _T('t'))
|
||||||
{
|
in+=2, c=_T('\t');
|
||||||
in+=2;
|
|
||||||
c=_T('\t');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (in[0] == _T('{'))
|
else if (in[0] == _T('{'))
|
||||||
{
|
{
|
||||||
|
@ -894,9 +874,8 @@ int CEXEBuild::includeScript(const TCHAR *f, NStreamEncoding&enc)
|
||||||
build_include_depth++;
|
build_include_depth++;
|
||||||
|
|
||||||
const int last_linecnt=linecnt;
|
const int last_linecnt=linecnt;
|
||||||
linecnt=0;
|
|
||||||
const TCHAR *last_filename=curfilename;
|
const TCHAR *last_filename=curfilename;
|
||||||
curfilename=f;
|
curfilename=f, linecnt=0;
|
||||||
NStreamLineReader linereader(incstrm);
|
NStreamLineReader linereader(incstrm);
|
||||||
NStreamLineReader*last_linereader=curlinereader;
|
NStreamLineReader*last_linereader=curlinereader;
|
||||||
curlinereader=&linereader;
|
curlinereader=&linereader;
|
||||||
|
@ -916,8 +895,7 @@ int CEXEBuild::includeScript(const TCHAR *f, NStreamEncoding&enc)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const int errlinecnt=linecnt;
|
const int errlinecnt=linecnt;
|
||||||
linecnt=last_linecnt;
|
curfilename=last_filename, linecnt=last_linecnt;
|
||||||
curfilename=last_filename;
|
|
||||||
curlinereader=last_linereader;
|
curlinereader=last_linereader;
|
||||||
|
|
||||||
build_include_depth--;
|
build_include_depth--;
|
||||||
|
@ -1031,18 +1009,15 @@ l_errwcconv:
|
||||||
int CEXEBuild::process_oneline(TCHAR *line, const TCHAR *filename, int linenum)
|
int CEXEBuild::process_oneline(TCHAR *line, const TCHAR *filename, int linenum)
|
||||||
{
|
{
|
||||||
const TCHAR *last_filename = curfilename;
|
const TCHAR *last_filename = curfilename;
|
||||||
curfilename=filename;
|
|
||||||
int last_linecnt = linecnt;
|
int last_linecnt = linecnt;
|
||||||
linecnt=linenum;
|
curfilename = filename, linecnt = linenum;
|
||||||
|
|
||||||
StringList hist;
|
StringList hist;
|
||||||
GrowBuf linedata;
|
GrowBuf linedata;
|
||||||
|
|
||||||
#ifdef NSIS_SUPPORT_STANDARD_PREDEFINES
|
#ifdef NSIS_SUPPORT_STANDARD_PREDEFINES
|
||||||
// Added by Sunil Kamath 11 June 2003
|
// Added by Sunil Kamath 11 June 2003
|
||||||
TCHAR *oldfilename = NULL;
|
TCHAR *oldfilename = NULL, *oldtimestamp = NULL, *oldline = NULL;
|
||||||
TCHAR *oldtimestamp = NULL;
|
|
||||||
TCHAR *oldline = NULL;
|
|
||||||
bool is_commandline = !_tcscmp(filename,_T("<command line>"));
|
bool is_commandline = !_tcscmp(filename,_T("<command line>"));
|
||||||
bool is_macro = !_tcsncmp(filename,_T("macro:"),6);
|
bool is_macro = !_tcsncmp(filename,_T("macro:"),6);
|
||||||
|
|
||||||
|
@ -1069,10 +1044,7 @@ int CEXEBuild::process_oneline(TCHAR *line, const TCHAR *filename, int linenum)
|
||||||
restore_line_predefine(oldline);
|
restore_line_predefine(oldline);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
curfilename = last_filename, linecnt = last_linecnt;
|
||||||
linecnt=last_linecnt;
|
|
||||||
curfilename=last_filename;
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1131,16 +1103,14 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
{
|
{
|
||||||
const TCHAR*const macroname=line.gettoken_str(1);
|
const TCHAR*const macroname=line.gettoken_str(1);
|
||||||
if (!macroname[0]) PRINTHELP()
|
if (!macroname[0]) PRINTHELP()
|
||||||
TCHAR *t=GetMacro(macroname);
|
if (MacroExists(macroname))
|
||||||
if (t)
|
|
||||||
{
|
{
|
||||||
ERROR_MSG(_T("!macro: macro named \"%") NPRIs _T("\" already found!\n"),macroname);
|
ERROR_MSG(_T("!macro: macro named \"%") NPRIs _T("\" already found!\n"),macroname);
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
}
|
}
|
||||||
m_macros.add(macroname,(int)(_tcslen(macroname)+1)*sizeof(TCHAR));
|
m_macros.add(macroname,(int)(_tcslen(macroname)+1)*sizeof(TCHAR));
|
||||||
|
|
||||||
int pc;
|
for (int pc=2; pc < line.getnumtokens(); pc++)
|
||||||
for (pc=2; pc < line.getnumtokens(); pc ++)
|
|
||||||
{
|
{
|
||||||
if (!line.gettoken_str(pc)[0])
|
if (!line.gettoken_str(pc)[0])
|
||||||
{
|
{
|
||||||
|
@ -1995,7 +1965,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
case TOK_INSTTYPE:
|
case TOK_INSTTYPE:
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
|
|
||||||
if (!_tcsicmp(line.gettoken_str(1),_T("/NOCUSTOM")))
|
if (!_tcsicmp(line.gettoken_str(1),_T("/NOCUSTOM")))
|
||||||
{
|
{
|
||||||
build_header.flags|=CH_FLAGS_NO_CUSTOM;
|
build_header.flags|=CH_FLAGS_NO_CUSTOM;
|
||||||
|
@ -2073,11 +2042,9 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
{
|
{
|
||||||
const TCHAR *cmdnam = get_commandtoken_name(which_token);
|
const TCHAR *cmdnam = get_commandtoken_name(which_token);
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
TCHAR *file = line.gettoken_str(1);
|
TCHAR *file = line.gettoken_str(1), *data = NULL, *filedata = NULL;
|
||||||
TCHAR *data = NULL;
|
|
||||||
TCHAR *filedata = NULL;
|
|
||||||
MANAGE_WITH(filedata, free);
|
MANAGE_WITH(filedata, free);
|
||||||
WORD cp = CP_ACP;
|
WORD wincp = CP_ACP;
|
||||||
|
|
||||||
if (file[0] == _T('$') && file[1] == _T('('))
|
if (file[0] == _T('$') && file[1] == _T('('))
|
||||||
{
|
{
|
||||||
|
@ -2093,7 +2060,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
|
|
||||||
if (!idx)
|
if (!idx)
|
||||||
{
|
{
|
||||||
int ret = LoadLicenseFile(file, &filedata, cmdnam, cp);
|
int ret = LoadLicenseFile(file, &filedata, cmdnam, wincp);
|
||||||
if (ret != PS_OK)
|
if (ret != PS_OK)
|
||||||
return ret;
|
return ret;
|
||||||
data = filedata;
|
data = filedata;
|
||||||
|
@ -2108,7 +2075,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
ERROR_MSG(_T("Error: LicenseData can only be used inside PageEx license.\n"));
|
ERROR_MSG(_T("Error: LicenseData can only be used inside PageEx license.\n"));
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
}
|
}
|
||||||
cur_page->parms[1] = add_string(data, false, cp);
|
cur_page->parms[1] = add_string(data, false, wincp);
|
||||||
}
|
}
|
||||||
|
|
||||||
SCRIPT_MSG(_T("LicenseData: \"%") NPRIs _T("\"\n"),file);
|
SCRIPT_MSG(_T("LicenseData: \"%") NPRIs _T("\"\n"),file);
|
||||||
|
@ -2130,15 +2097,9 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (k) {
|
switch (k) {
|
||||||
case 0:
|
case 0: license_res_id = IDD_LICENSE; break;
|
||||||
license_res_id = IDD_LICENSE;
|
case 1: license_res_id = IDD_LICENSE_FSCB; break;
|
||||||
break;
|
case 2: license_res_id = IDD_LICENSE_FSRB; break;
|
||||||
case 1:
|
|
||||||
license_res_id = IDD_LICENSE_FSCB;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
license_res_id = IDD_LICENSE_FSRB;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -2177,23 +2138,24 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
case TOK_LICENSEBKCOLOR:
|
case TOK_LICENSEBKCOLOR:
|
||||||
{
|
{
|
||||||
|
const TCHAR *cmdname = _T("LicenseBkColor");
|
||||||
TCHAR *p = line.gettoken_str(1);
|
TCHAR *p = line.gettoken_str(1);
|
||||||
if (!_tcsicmp(p,_T("/windows")))
|
if (!_tcsicmp(p,_T("/windows")))
|
||||||
{
|
{
|
||||||
build_header.license_bg=-COLOR_WINDOW;
|
build_header.license_bg=-COLOR_WINDOW;
|
||||||
SCRIPT_MSG(_T("LicenseBkColor: /windows\n"));
|
SCRIPT_MSG(_T("%") NPRIs _T(": /windows\n"),cmdname);
|
||||||
}
|
}
|
||||||
else if (!_tcsicmp(p,_T("/grey")) || !_tcsicmp(p,_T("/gray")))
|
else if (!_tcsicmp(p,_T("/grey")) || !_tcsicmp(p,_T("/gray")))
|
||||||
{
|
{
|
||||||
build_header.license_bg=-COLOR_BTNFACE;
|
build_header.license_bg=-COLOR_BTNFACE;
|
||||||
SCRIPT_MSG(_T("LicenseBkColor: /grey\n"));
|
SCRIPT_MSG(_T("%") NPRIs _T(": /grey\n"),cmdname);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int v=_tcstoul(p,&p,16);
|
const int v=_tcstoul(p,&p,16);
|
||||||
build_header.license_bg=((v&0xff)<<16)|(v&0xff00)|((v&0xff0000)>>16);
|
build_header.license_bg=((v&0xff)<<16)|(v&0xff00)|((v&0xff0000)>>16);
|
||||||
build_uninst.license_bg=build_header.license_bg;
|
build_uninst.license_bg=build_header.license_bg;
|
||||||
SCRIPT_MSG(_T("LicenseBkColor: %06X\n"),v);
|
SCRIPT_MSG(_T("%") NPRIs _T(": %06X\n"),cmdname,v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
|
@ -2307,9 +2269,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
case TOK_INSTALLDIRREGKEY: // InstallDirRegKey
|
case TOK_INSTALLDIRREGKEY: // InstallDirRegKey
|
||||||
{
|
{
|
||||||
if (build_header.install_reg_key_ptr)
|
if (build_header.install_reg_key_ptr)
|
||||||
{
|
|
||||||
warning_fl(_T("%") NPRIs _T(": specified multiple times, wasting space"),line.gettoken_str(0));
|
warning_fl(_T("%") NPRIs _T(": specified multiple times, wasting space"),line.gettoken_str(0));
|
||||||
}
|
|
||||||
int k=line.gettoken_enum(1,rootkeys[0]);
|
int k=line.gettoken_enum(1,rootkeys[0]);
|
||||||
if (k == -1) k=line.gettoken_enum(1,rootkeys[1]);
|
if (k == -1) k=line.gettoken_enum(1,rootkeys[1]);
|
||||||
if (k == -1) PRINTHELP()
|
if (k == -1) PRINTHELP()
|
||||||
|
@ -2566,12 +2527,11 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int v1,v2;
|
|
||||||
if (line.getnumtokens()!=3) PRINTHELP()
|
if (line.getnumtokens()!=3) PRINTHELP()
|
||||||
v1=_tcstoul(p,&p,16);
|
int v1=_tcstoul(p,&p,16);
|
||||||
build_header.lb_fg=((v1&0xff)<<16)|(v1&0xff00)|((v1&0xff0000)>>16);
|
build_header.lb_fg=((v1&0xff)<<16)|(v1&0xff00)|((v1&0xff0000)>>16);
|
||||||
p=line.gettoken_str(2);
|
p=line.gettoken_str(2);
|
||||||
v2=_tcstoul(p,&p,16);
|
int v2=_tcstoul(p,&p,16);
|
||||||
build_header.lb_bg=((v2&0xff)<<16)|(v2&0xff00)|((v2&0xff0000)>>16);
|
build_header.lb_bg=((v2&0xff)<<16)|(v2&0xff00)|((v2&0xff0000)>>16);
|
||||||
SCRIPT_MSG(_T("InstallColors: fg=%06X bg=%06X\n"),v1,v2);
|
SCRIPT_MSG(_T("InstallColors: fg=%06X bg=%06X\n"),v1,v2);
|
||||||
}
|
}
|
||||||
|
@ -2741,22 +2701,16 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
|
|
||||||
init_res_editor();
|
init_res_editor();
|
||||||
BYTE* dlg = res_editor->GetResource(RT_DIALOG, IDD_INST, NSIS_DEFAULT_LANG);
|
BYTE* dlg = res_editor->GetResource(RT_DIALOG, IDD_INST, NSIS_DEFAULT_LANG);
|
||||||
|
|
||||||
CDialogTemplate dt(dlg, build_unicode, uDefCodePage);
|
CDialogTemplate dt(dlg, build_unicode, uDefCodePage);
|
||||||
|
|
||||||
res_editor->FreeResource(dlg);
|
res_editor->FreeResource(dlg);
|
||||||
|
|
||||||
DialogItemTemplate brandingCtl = {0,};
|
DialogItemTemplate brandingCtl = {0,};
|
||||||
|
|
||||||
brandingCtl.dwStyle = SS_BITMAP | WS_CHILD | WS_VISIBLE;
|
brandingCtl.dwStyle = SS_BITMAP | WS_CHILD | WS_VISIBLE;
|
||||||
brandingCtl.sX = padding;
|
brandingCtl.sX = brandingCtl.sY = padding;
|
||||||
brandingCtl.sY = padding;
|
|
||||||
brandingCtl.szClass = MAKEINTRESOURCEWINW(0x0082);
|
brandingCtl.szClass = MAKEINTRESOURCEWINW(0x0082);
|
||||||
brandingCtl.szTitle = NULL;
|
brandingCtl.szTitle = NULL;
|
||||||
brandingCtl.wId = IDC_BRANDIMAGE;
|
brandingCtl.wId = IDC_BRANDIMAGE;
|
||||||
|
brandingCtl.sHeight = brandingCtl.sWidth = wh;
|
||||||
brandingCtl.sHeight = wh;
|
|
||||||
brandingCtl.sWidth = wh;
|
|
||||||
dt.PixelsToDlgUnits(brandingCtl.sWidth, brandingCtl.sHeight);
|
dt.PixelsToDlgUnits(brandingCtl.sWidth, brandingCtl.sHeight);
|
||||||
if (k%2) {
|
if (k%2) {
|
||||||
// left (1) / right (3)
|
// left (1) / right (3)
|
||||||
|
@ -2922,30 +2876,22 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
ERROR_MSG(_T("Error: can't change compressor after data already got compressed or header already changed!\n"));
|
ERROR_MSG(_T("Error: can't change compressor after data already got compressed or header already changed!\n"));
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (build_compressor_final)
|
if (build_compressor_final)
|
||||||
{
|
{
|
||||||
warning_fl(_T("SetCompressor ignored due to previous call with the /FINAL switch"));
|
warning_fl(_T("SetCompressor ignored due to previous call with the /FINAL switch"));
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int a = 1;
|
|
||||||
|
|
||||||
build_compress_whole = false;
|
build_compress_whole = false;
|
||||||
|
|
||||||
|
int a = 1;
|
||||||
while (line.gettoken_str(a)[0] == _T('/'))
|
while (line.gettoken_str(a)[0] == _T('/'))
|
||||||
{
|
{
|
||||||
if (!_tcsicmp(line.gettoken_str(a),_T("/FINAL")))
|
if (!_tcsicmp(line.gettoken_str(a),_T("/FINAL")))
|
||||||
{
|
build_compressor_final = true, a++;
|
||||||
build_compressor_final = true;
|
|
||||||
a++;
|
|
||||||
}
|
|
||||||
else if (!_tcsicmp(line.gettoken_str(a),_T("/SOLID")))
|
else if (!_tcsicmp(line.gettoken_str(a),_T("/SOLID")))
|
||||||
{
|
build_compress_whole = true, a++;
|
||||||
build_compress_whole = true;
|
else
|
||||||
a++;
|
PRINTHELP();
|
||||||
}
|
|
||||||
else PRINTHELP();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (a != line.getnumtokens() - 1)
|
if (a != line.getnumtokens() - 1)
|
||||||
|
@ -2956,20 +2902,10 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
|
|
||||||
int k=line.gettoken_enum(a, _T("zlib\0bzip2\0lzma\0"));
|
int k=line.gettoken_enum(a, _T("zlib\0bzip2\0lzma\0"));
|
||||||
switch (k) {
|
switch (k) {
|
||||||
case 0:
|
case 0: compressor = &zlib_compressor; break;
|
||||||
compressor = &zlib_compressor;
|
case 1: compressor = &bzip2_compressor; break;
|
||||||
break;
|
case 2: compressor = &lzma_compressor; break;
|
||||||
|
default: PRINTHELP();
|
||||||
case 1:
|
|
||||||
compressor = &bzip2_compressor;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
compressor = &lzma_compressor;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
PRINTHELP();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tstring compressor_name = line.gettoken_str(a);
|
tstring compressor_name = line.gettoken_str(a);
|
||||||
|
@ -2993,9 +2929,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
SCRIPT_MSG(_T("LoadLanguageFile: %") NPRIs _T("\n"), line.gettoken_str(1));
|
SCRIPT_MSG(_T("LoadLanguageFile: %") NPRIs _T("\n"), line.gettoken_str(1));
|
||||||
|
|
||||||
LanguageTable *table = LoadLangFile(line.gettoken_str(1));
|
LanguageTable *table = LoadLangFile(line.gettoken_str(1));
|
||||||
|
if (!table) return PS_ERROR;
|
||||||
if (!table)
|
|
||||||
return PS_ERROR;
|
|
||||||
|
|
||||||
if (!defcodepage_set)
|
if (!defcodepage_set)
|
||||||
{
|
{
|
||||||
|
@ -3006,9 +2940,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
last_used_lang = table->lang_id;
|
last_used_lang = table->lang_id;
|
||||||
// define LANG_LangName as "####" (lang id)
|
// define LANG_LangName as "####" (lang id)
|
||||||
// for example ${LANG_ENGLISH} = 1033
|
// for example ${LANG_ENGLISH} = 1033
|
||||||
TCHAR lang_id[16];
|
TCHAR lang_id[16], lang_cp[16], lang_name[1024];
|
||||||
TCHAR lang_cp[16];
|
|
||||||
TCHAR lang_name[1024];
|
|
||||||
wsprintf(lang_name, _T("LANG_%") NPRIs, table->nlf.m_szName);
|
wsprintf(lang_name, _T("LANG_%") NPRIs, table->nlf.m_szName);
|
||||||
wsprintf(lang_id, _T("%u"), table->lang_id);
|
wsprintf(lang_id, _T("%u"), table->lang_id);
|
||||||
wsprintf(lang_cp, _T("%u"), table->nlf.m_uCodePage);
|
wsprintf(lang_cp, _T("%u"), table->nlf.m_uCodePage);
|
||||||
|
@ -3139,7 +3071,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (line.getnumtokens()==4) PRINTHELP()
|
if (line.getnumtokens()==4) PRINTHELP()
|
||||||
|
|
||||||
value=line.gettoken_str(2);
|
value=line.gettoken_str(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3492,7 +3423,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
}
|
}
|
||||||
|
|
||||||
GrowBuf valout;
|
GrowBuf valout;
|
||||||
|
|
||||||
while (*src)
|
while (*src)
|
||||||
{
|
{
|
||||||
if (ignoreCase ? _tcsnicmp(src,search,searchlen) : _tcsncmp(src,search,searchlen))
|
if (ignoreCase ? _tcsnicmp(src,search,searchlen) : _tcsncmp(src,search,searchlen))
|
||||||
|
@ -3503,18 +3433,15 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
src+=searchlen;
|
src+=searchlen;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
valout.add(_T(""),sizeof(TCHAR));
|
valout.add(_T(""),sizeof(TCHAR));
|
||||||
|
|
||||||
definedlist.del(define); // allow changing variables since we'll often use this in series
|
definedlist.del(define); // allow changing variables since we'll often use this in series
|
||||||
|
|
||||||
if (definedlist.add(define,(TCHAR*)valout.get()))
|
if (definedlist.add(define,(TCHAR*)valout.get()))
|
||||||
{
|
{
|
||||||
ERROR_MSG(_T("!searchreplace: error defining \"%") NPRIs _T("\"!\n"),define);
|
ERROR_MSG(_T("!searchreplace: error defining \"%") NPRIs _T("\"!\n"),define);
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
}
|
}
|
||||||
SCRIPT_MSG(_T("!searchreplace: \"%") NPRIs _T("\"=\"%") NPRIs _T("\"\n"),define,(TCHAR*)valout.get());
|
SCRIPT_MSG(_T("!searchreplace: \"%") NPRIs _T("\"=\"%") NPRIs _T("\"\n"),define,(TCHAR*)valout.get());
|
||||||
|
|
||||||
}
|
}
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
|
|
||||||
|
@ -3588,7 +3515,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
|
|
||||||
case TOK_UNINSTALLEXENAME: PRINTHELP()
|
case TOK_UNINSTALLEXENAME: PRINTHELP()
|
||||||
|
|
||||||
|
|
||||||
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
|
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
|
||||||
case TOK_UNINSTCAPTION:
|
case TOK_UNINSTCAPTION:
|
||||||
{
|
{
|
||||||
|
@ -3628,9 +3554,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
case TOK_UNINSTSUBCAPTION:
|
case TOK_UNINSTSUBCAPTION:
|
||||||
{
|
{
|
||||||
int s;
|
int succ, w=line.gettoken_int(1,&succ);
|
||||||
int w=line.gettoken_int(1,&s);
|
if (!succ || w < 0 || w > 2) PRINTHELP()
|
||||||
if (!s || w < 0 || w > 2) PRINTHELP()
|
|
||||||
SetInnerString(NLF_USUBCAPTION_CONFIRM+w,line.gettoken_str(2));
|
SetInnerString(NLF_USUBCAPTION_CONFIRM+w,line.gettoken_str(2));
|
||||||
SCRIPT_MSG(_T("UninstSubCaption: page:%d, text=%") NPRIs _T("\n"),w,line.gettoken_str(2));
|
SCRIPT_MSG(_T("UninstSubCaption: page:%d, text=%") NPRIs _T("\n"),w,line.gettoken_str(2));
|
||||||
}
|
}
|
||||||
|
@ -3666,7 +3591,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// section/function stuff
|
// section/function stuff
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@ -3674,10 +3598,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
{
|
{
|
||||||
int a = 1, unselected = 0;
|
int a = 1, unselected = 0;
|
||||||
if (!_tcsicmp(line.gettoken_str(1),_T("/o")))
|
if (!_tcsicmp(line.gettoken_str(1),_T("/o")))
|
||||||
{
|
unselected++, a++;
|
||||||
unselected = 1;
|
|
||||||
a++;
|
|
||||||
}
|
|
||||||
else if (line.getnumtokens() > 3)
|
else if (line.getnumtokens() > 3)
|
||||||
PRINTHELP();
|
PRINTHELP();
|
||||||
SCRIPT_MSG(_T("Section: \"%") NPRIs _T("\""),line.gettoken_str(a));
|
SCRIPT_MSG(_T("Section: \"%") NPRIs _T("\""),line.gettoken_str(a));
|
||||||
|
@ -3690,16 +3611,10 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
int ret = add_section(line.gettoken_str(a),line.gettoken_str(a+1));
|
||||||
int ret;
|
if (PS_OK == ret && unselected)
|
||||||
|
|
||||||
ret=add_section(line.gettoken_str(a),line.gettoken_str(a+1));
|
|
||||||
if (ret != PS_OK) return ret;
|
|
||||||
|
|
||||||
if (unselected)
|
|
||||||
build_cursection->flags &= ~SF_SELECTED;
|
build_cursection->flags &= ~SF_SELECTED;
|
||||||
|
return ret;
|
||||||
return PS_OK;
|
|
||||||
}
|
}
|
||||||
case TOK_SECTIONEND:
|
case TOK_SECTIONEND:
|
||||||
SCRIPT_MSG(_T("SectionEnd\n"));
|
SCRIPT_MSG(_T("SectionEnd\n"));
|
||||||
|
@ -3707,8 +3622,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
case TOK_SECTIONIN:
|
case TOK_SECTIONIN:
|
||||||
{
|
{
|
||||||
SCRIPT_MSG(_T("SectionIn: "));
|
SCRIPT_MSG(_T("SectionIn: "));
|
||||||
int wt;
|
for (int wt = 1; wt < line.getnumtokens(); wt++)
|
||||||
for (wt = 1; wt < line.getnumtokens(); wt ++)
|
|
||||||
{
|
{
|
||||||
TCHAR *p=line.gettoken_str(wt);
|
TCHAR *p=line.gettoken_str(wt);
|
||||||
if (!_tcsicmp(p, _T("RO")))
|
if (!_tcsicmp(p, _T("RO")))
|
||||||
|
@ -3746,11 +3660,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
{
|
{
|
||||||
TCHAR buf[1024];
|
TCHAR buf[1024];
|
||||||
int a = 1, ex = 0;
|
int a = 1, ex = 0;
|
||||||
if (!_tcsicmp(line.gettoken_str(1),_T("/e")))
|
if (!_tcsicmp(line.gettoken_str(1),_T("/e"))) ex = 1, a++;
|
||||||
{
|
|
||||||
ex = 1;
|
|
||||||
a++;
|
|
||||||
}
|
|
||||||
wsprintf(buf,_T("\x1F%") NPRIs,line.gettoken_str(a));
|
wsprintf(buf,_T("\x1F%") NPRIs,line.gettoken_str(a));
|
||||||
if (which_token == TOK_SECTIONGROUP || which_token == TOK_SUBSECTION)
|
if (which_token == TOK_SECTIONGROUP || which_token == TOK_SUBSECTION)
|
||||||
{
|
{
|
||||||
|
@ -3804,16 +3715,9 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
int k=line.gettoken_enum(1,_T("on\0off\0try\0ifnewer\0ifdiff\0lastused\0"));
|
int k=line.gettoken_enum(1,_T("on\0off\0try\0ifnewer\0ifdiff\0lastused\0"));
|
||||||
if (k==-1) PRINTHELP()
|
if (k==-1) PRINTHELP()
|
||||||
if (k==5)
|
if (k==5)
|
||||||
{
|
k=build_overwrite, build_overwrite=build_last_overwrite, build_last_overwrite=k;
|
||||||
k=build_overwrite;
|
|
||||||
build_overwrite=build_last_overwrite;
|
|
||||||
build_last_overwrite=k;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
build_last_overwrite=build_overwrite, build_overwrite=k;
|
||||||
build_last_overwrite=build_overwrite;
|
|
||||||
build_overwrite=k;
|
|
||||||
}
|
|
||||||
SCRIPT_MSG(_T("SetOverwrite: %") NPRIs _T("\n"),line.gettoken_str(1));
|
SCRIPT_MSG(_T("SetOverwrite: %") NPRIs _T("\n"),line.gettoken_str(1));
|
||||||
}
|
}
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
|
@ -3828,9 +3732,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
build_compress=line.gettoken_enum(1,_T("off\0auto\0force\0"));
|
build_compress=line.gettoken_enum(1,_T("off\0auto\0force\0"));
|
||||||
if (build_compress==-1) PRINTHELP()
|
if (build_compress==-1) PRINTHELP()
|
||||||
if (build_compress==0 && build_compress_whole)
|
if (build_compress==0 && build_compress_whole)
|
||||||
{
|
|
||||||
warning_fl(_T("'SetCompress off' encountered, and in whole compression mode. Effectively ignored."));
|
warning_fl(_T("'SetCompress off' encountered, and in whole compression mode. Effectively ignored."));
|
||||||
}
|
|
||||||
SCRIPT_MSG(_T("SetCompress: %") NPRIs _T("\n"),line.gettoken_str(1));
|
SCRIPT_MSG(_T("SetCompress: %") NPRIs _T("\n"),line.gettoken_str(1));
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
case TOK_DBOPTIMIZE:
|
case TOK_DBOPTIMIZE:
|
||||||
|
@ -3884,18 +3786,16 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
#endif//NSIS_CONFIG_COMPRESSION_SUPPORT
|
#endif//NSIS_CONFIG_COMPRESSION_SUPPORT
|
||||||
case TOK_ADDSIZE:
|
case TOK_ADDSIZE:
|
||||||
{
|
{
|
||||||
int s;
|
int succ, size_kb=line.gettoken_int(1,&succ);
|
||||||
int size_kb=line.gettoken_int(1,&s);
|
if (!succ) PRINTHELP()
|
||||||
if (!s) PRINTHELP()
|
|
||||||
SCRIPT_MSG(_T("AddSize: %d kb\n"),size_kb);
|
SCRIPT_MSG(_T("AddSize: %d kb\n"),size_kb);
|
||||||
section_add_size_kb(size_kb);
|
section_add_size_kb(size_kb);
|
||||||
}
|
}
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
case TOK_SUBCAPTION:
|
case TOK_SUBCAPTION:
|
||||||
{
|
{
|
||||||
int s;
|
int succ, w=line.gettoken_int(1,&succ);
|
||||||
int w=line.gettoken_int(1,&s);
|
if (!succ || w < 0 || w > 4) PRINTHELP()
|
||||||
if (!s || w < 0 || w > 4) PRINTHELP()
|
|
||||||
SetInnerString(NLF_SUBCAPTION_LICENSE+w,line.gettoken_str(2));
|
SetInnerString(NLF_SUBCAPTION_LICENSE+w,line.gettoken_str(2));
|
||||||
SCRIPT_MSG(_T("SubCaption: page:%d, text=%") NPRIs _T("\n"),w,line.gettoken_str(2));
|
SCRIPT_MSG(_T("SubCaption: page:%d, text=%") NPRIs _T("\n"),w,line.gettoken_str(2));
|
||||||
}
|
}
|
||||||
|
@ -3914,8 +3814,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
#endif
|
#endif
|
||||||
case TOK_BRANDINGTEXT:
|
case TOK_BRANDINGTEXT:
|
||||||
{
|
{
|
||||||
int a = 1;
|
int a = 1, trim = 0;
|
||||||
int trim = 0;
|
|
||||||
while (line.gettoken_str(a)[0] == _T('/')) {
|
while (line.gettoken_str(a)[0] == _T('/')) {
|
||||||
if (!_tcsnicmp(line.gettoken_str(a),_T("/TRIM"),5)) {
|
if (!_tcsnicmp(line.gettoken_str(a),_T("/TRIM"),5)) {
|
||||||
if (!_tcsicmp(line.gettoken_str(a)+5,_T("LEFT"))) trim = 1;
|
if (!_tcsicmp(line.gettoken_str(a)+5,_T("LEFT"))) trim = 1;
|
||||||
|
@ -3953,10 +3852,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (td.GetItem(IDC_VERSTR)->sWidth > old_width)
|
if (td.GetItem(IDC_VERSTR)->sWidth > old_width)
|
||||||
{
|
|
||||||
warning_fl(_T("BrandingText: \"%") NPRIs _T("\" is too long, trimming has expanded the label"), str);
|
warning_fl(_T("BrandingText: \"%") NPRIs _T("\" is too long, trimming has expanded the label"), str);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
DWORD dwSize;
|
DWORD dwSize;
|
||||||
dlg = td.Save(dwSize);
|
dlg = td.Save(dwSize);
|
||||||
|
@ -4310,10 +4207,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
MBD(MB_DEFBUTTON4)
|
MBD(MB_DEFBUTTON4)
|
||||||
};
|
};
|
||||||
#undef MBD
|
#undef MBD
|
||||||
int r=0;
|
int r=0, x;
|
||||||
int x;
|
|
||||||
TCHAR *p=line.gettoken_str(1);
|
TCHAR *p=line.gettoken_str(1);
|
||||||
|
|
||||||
while (*p)
|
while (*p)
|
||||||
{
|
{
|
||||||
TCHAR *np=p;
|
TCHAR *np=p;
|
||||||
|
@ -4321,19 +4216,15 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
if (*np) *np++=0;
|
if (*np) *np++=0;
|
||||||
for (x = 0 ; (size_t) x < COUNTOF(list) && _tcsicmp(list[x].str, p); x++);
|
for (x = 0 ; (size_t) x < COUNTOF(list) && _tcsicmp(list[x].str, p); x++);
|
||||||
if ((size_t) x < COUNTOF(list))
|
if ((size_t) x < COUNTOF(list))
|
||||||
{
|
|
||||||
r |= list[x].id;
|
r |= list[x].id;
|
||||||
}
|
else
|
||||||
else PRINTHELP()
|
PRINTHELP()
|
||||||
p=np;
|
p=np;
|
||||||
}
|
}
|
||||||
ent.which=EW_MESSAGEBOX;
|
ent.which=EW_MESSAGEBOX;
|
||||||
ent.offsets[0]=r;
|
ent.offsets[0]=r;
|
||||||
ent.offsets[1]=add_string(line.gettoken_str(2));
|
ent.offsets[1]=add_string(line.gettoken_str(2));
|
||||||
int rettab[] =
|
static const int rettab[] = { 0,IDABORT,IDCANCEL,IDIGNORE,IDNO,IDOK,IDRETRY,IDYES };
|
||||||
{
|
|
||||||
0,IDABORT,IDCANCEL,IDIGNORE,IDNO,IDOK,IDRETRY,IDYES
|
|
||||||
};
|
|
||||||
const TCHAR *retstr=_T("0\0IDABORT\0IDCANCEL\0IDIGNORE\0IDNO\0IDOK\0IDRETRY\0IDYES\0");
|
const TCHAR *retstr=_T("0\0IDABORT\0IDCANCEL\0IDIGNORE\0IDNO\0IDOK\0IDRETRY\0IDYES\0");
|
||||||
int a=3;
|
int a=3;
|
||||||
if (line.getnumtokens() > 3)
|
if (line.getnumtokens() > 3)
|
||||||
|
@ -4411,9 +4302,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
}
|
}
|
||||||
if (line.getnumtokens() > 7)
|
if (line.getnumtokens() > 7)
|
||||||
{
|
{
|
||||||
TCHAR *s=(line.gettoken_str(7));
|
TCHAR *s=line.gettoken_str(7), b[255];
|
||||||
|
|
||||||
TCHAR b[255];
|
|
||||||
for (unsigned int spos=0; (spos <= _tcslen(s)) && (spos <= 255); spos++)
|
for (unsigned int spos=0; (spos <= _tcslen(s)) && (spos <= 255); spos++)
|
||||||
b[spos]=_totupper(*(s+spos));
|
b[spos]=_totupper(*(s+spos));
|
||||||
_tcscpy(s,b);
|
_tcscpy(s,b);
|
||||||
|
@ -4472,6 +4361,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
line.gettoken_str(1),line.gettoken_str(2),line.gettoken_str(3),line.gettoken_str(4),line.gettoken_str(5));
|
line.gettoken_str(1),line.gettoken_str(2),line.gettoken_str(3),line.gettoken_str(4),line.gettoken_str(5));
|
||||||
return add_entry(&ent);
|
return add_entry(&ent);
|
||||||
case TOK_SENDMESSAGE:
|
case TOK_SENDMESSAGE:
|
||||||
|
{
|
||||||
ent.which=EW_SENDMESSAGE;
|
ent.which=EW_SENDMESSAGE;
|
||||||
|
|
||||||
if (line.gettoken_str(1)[0] == _T('/') || line.gettoken_str(2)[0] == _T('/') ||
|
if (line.gettoken_str(1)[0] == _T('/') || line.gettoken_str(2)[0] == _T('/') ||
|
||||||
|
@ -4481,7 +4371,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
}
|
}
|
||||||
|
|
||||||
SCRIPT_MSG(_T("SendMessage:"));
|
SCRIPT_MSG(_T("SendMessage:"));
|
||||||
{
|
|
||||||
int a=5;
|
int a=5;
|
||||||
ent.offsets[0]=GetUserVarIndex(line, 5);
|
ent.offsets[0]=GetUserVarIndex(line, 5);
|
||||||
if (ent.offsets[0]>=0)
|
if (ent.offsets[0]>=0)
|
||||||
|
@ -4501,25 +4390,26 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
{
|
{
|
||||||
PRINTHELP()
|
PRINTHELP()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!_tcsncmp(line.gettoken_str(3),_T("STR:"),4))
|
if (!_tcsncmp(line.gettoken_str(3),_T("STR:"),4))
|
||||||
{
|
{
|
||||||
ent.offsets[5]|=1;
|
ent.offsets[5]|=1;
|
||||||
ent.offsets[3]=add_string(line.gettoken_str(3)+4);
|
ent.offsets[3]=add_string(line.gettoken_str(3)+4);
|
||||||
}
|
}
|
||||||
else ent.offsets[3]=add_string(line.gettoken_str(3));
|
else
|
||||||
|
ent.offsets[3]=add_string(line.gettoken_str(3));
|
||||||
if (!_tcsncmp(line.gettoken_str(4),_T("STR:"),4))
|
if (!_tcsncmp(line.gettoken_str(4),_T("STR:"),4))
|
||||||
{
|
{
|
||||||
ent.offsets[5]|=2;
|
ent.offsets[5]|=2;
|
||||||
ent.offsets[4]=add_string(line.gettoken_str(4)+4);
|
ent.offsets[4]=add_string(line.gettoken_str(4)+4);
|
||||||
}
|
}
|
||||||
else ent.offsets[4]=add_string(line.gettoken_str(4));
|
else
|
||||||
|
ent.offsets[4]=add_string(line.gettoken_str(4));
|
||||||
|
|
||||||
ent.offsets[1]=add_string(line.gettoken_str(1));
|
ent.offsets[1]=add_string(line.gettoken_str(1));
|
||||||
ent.offsets[2]=add_string(line.gettoken_str(2));
|
ent.offsets[2]=add_string(line.gettoken_str(2));
|
||||||
|
|
||||||
SCRIPT_MSG(_T("(%") NPRIs _T(",%") NPRIs _T(",%") NPRIs _T(",%") NPRIs _T(")\n"),line.gettoken_str(1),line.gettoken_str(2),line.gettoken_str(3),line.gettoken_str(4));
|
SCRIPT_MSG(_T("(%") NPRIs _T(",%") NPRIs _T(",%") NPRIs _T(",%") NPRIs _T(")\n"),line.gettoken_str(1),line.gettoken_str(2),line.gettoken_str(3),line.gettoken_str(4));
|
||||||
|
}
|
||||||
return add_entry(&ent);
|
return add_entry(&ent);
|
||||||
case TOK_ISWINDOW:
|
case TOK_ISWINDOW:
|
||||||
ent.which=EW_ISWINDOW;
|
ent.which=EW_ISWINDOW;
|
||||||
|
@ -4539,19 +4429,14 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
return add_entry(&ent);
|
return add_entry(&ent);
|
||||||
case TOK_SETCTLCOLORS:
|
case TOK_SETCTLCOLORS:
|
||||||
{
|
{
|
||||||
ctlcolors c={0, };
|
|
||||||
|
|
||||||
ent.which=EW_SETCTLCOLORS;
|
ent.which=EW_SETCTLCOLORS;
|
||||||
ent.offsets[0]=add_string(line.gettoken_str(1));
|
ent.offsets[0]=add_string(line.gettoken_str(1));
|
||||||
|
ctlcolors c={0, };
|
||||||
int a = 2;
|
int a = 2;
|
||||||
|
|
||||||
if (!_tcsicmp(line.gettoken_str(2),_T("/BRANDING")))
|
if (!_tcsicmp(line.gettoken_str(2),_T("/BRANDING")))
|
||||||
a++;
|
a++;
|
||||||
|
|
||||||
{
|
|
||||||
TCHAR *p;
|
TCHAR *p;
|
||||||
|
|
||||||
if (a == 2 && line.getnumtokens() == 5) {
|
if (a == 2 && line.getnumtokens() == 5) {
|
||||||
ERROR_MSG(_T("Error: SetCtlColors expected 3 parameters, got 4\n"));
|
ERROR_MSG(_T("Error: SetCtlColors expected 3 parameters, got 4\n"));
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
|
@ -4569,7 +4454,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
c.bkc=((v&0xff)<<16)|(v&0xff00)|((v&0xff0000)>>16);
|
c.bkc=((v&0xff)<<16)|(v&0xff00)|((v&0xff0000)>>16);
|
||||||
c.flags|=CC_BK|CC_BKB;
|
c.flags|=CC_BK|CC_BKB;
|
||||||
}
|
}
|
||||||
|
|
||||||
c.lbStyle=BS_SOLID;
|
c.lbStyle=BS_SOLID;
|
||||||
c.bkmode=OPAQUE;
|
c.bkmode=OPAQUE;
|
||||||
}
|
}
|
||||||
|
@ -4580,7 +4464,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
c.text=((v&0xff)<<16)|(v&0xff00)|((v&0xff0000)>>16);
|
c.text=((v&0xff)<<16)|(v&0xff00)|((v&0xff0000)>>16);
|
||||||
c.flags|=CC_TEXT;
|
c.flags|=CC_TEXT;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (a == 3)
|
if (a == 3)
|
||||||
{
|
{
|
||||||
|
@ -4616,15 +4499,13 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
}
|
}
|
||||||
return add_entry(&ent);
|
return add_entry(&ent);
|
||||||
case TOK_CREATEFONT:
|
case TOK_CREATEFONT:
|
||||||
|
{
|
||||||
ent.which=EW_CREATEFONT;
|
ent.which=EW_CREATEFONT;
|
||||||
ent.offsets[0]=GetUserVarIndex(line, 1);
|
ent.offsets[0]=GetUserVarIndex(line, 1);
|
||||||
if (ent.offsets[0] < 0) PRINTHELP()
|
if (ent.offsets[0] < 0) PRINTHELP()
|
||||||
ent.offsets[1]=add_string(line.gettoken_str(2));
|
ent.offsets[1]=add_string(line.gettoken_str(2));
|
||||||
SCRIPT_MSG(_T("CreateFont: output=%") NPRIs _T(" \"%") NPRIs _T("\""),line.gettoken_str(1),line.gettoken_str(2));
|
SCRIPT_MSG(_T("CreateFont: output=%") NPRIs _T(" \"%") NPRIs _T("\""),line.gettoken_str(1),line.gettoken_str(2));
|
||||||
{
|
int height=0, weight=0, flags=0;
|
||||||
int height=0;
|
|
||||||
int weight=0;
|
|
||||||
int flags=0;
|
|
||||||
for (int i = 3; i < line.getnumtokens(); i++) {
|
for (int i = 3; i < line.getnumtokens(); i++) {
|
||||||
TCHAR *tok=line.gettoken_str(i);
|
TCHAR *tok=line.gettoken_str(i);
|
||||||
if (tok[0]=='/') {
|
if (tok[0]=='/') {
|
||||||
|
@ -4659,12 +4540,12 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
PRINTHELP();
|
PRINTHELP();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
ent.offsets[2]=height;
|
ent.offsets[2]=height;
|
||||||
ent.offsets[3]=weight;
|
ent.offsets[3]=weight;
|
||||||
ent.offsets[4]=flags;
|
ent.offsets[4]=flags;
|
||||||
}
|
}
|
||||||
SCRIPT_MSG(_T("\n"));
|
SCRIPT_MSG(_T("\n"));
|
||||||
|
}
|
||||||
return add_entry(&ent);
|
return add_entry(&ent);
|
||||||
case TOK_ENABLEWINDOW:
|
case TOK_ENABLEWINDOW:
|
||||||
ent.which=EW_SHOWWINDOW;
|
ent.which=EW_SHOWWINDOW;
|
||||||
|
@ -4929,10 +4810,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
{
|
{
|
||||||
ent.which=EW_COPYFILES;
|
ent.which=EW_COPYFILES;
|
||||||
ent.offsets[2]=FOF_NOCONFIRMATION|FOF_NOCONFIRMMKDIR|FOF_NOERRORUI|FOF_SIMPLEPROGRESS;
|
ent.offsets[2]=FOF_NOCONFIRMATION|FOF_NOCONFIRMMKDIR|FOF_NOERRORUI|FOF_SIMPLEPROGRESS;
|
||||||
|
|
||||||
int a=1;
|
int a=1;
|
||||||
int x;
|
for (int x = 0; x < 2; x++)
|
||||||
for (x = 0; x < 2; x ++)
|
|
||||||
{
|
{
|
||||||
if (!_tcsicmp(line.gettoken_str(a),_T("/SILENT")))
|
if (!_tcsicmp(line.gettoken_str(a),_T("/SILENT")))
|
||||||
{
|
{
|
||||||
|
@ -4953,12 +4832,10 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
ent.offsets[1]=add_string(line.gettoken_str(a+1));
|
ent.offsets[1]=add_string(line.gettoken_str(a+1));
|
||||||
tstring copy_to = tstring(_T("$(^CopyTo)")) + line.gettoken_str(a+1);
|
tstring copy_to = tstring(_T("$(^CopyTo)")) + line.gettoken_str(a+1);
|
||||||
ent.offsets[3]=add_string(copy_to.c_str());
|
ent.offsets[3]=add_string(copy_to.c_str());
|
||||||
int s;
|
int succ, size_kb=line.gettoken_int(a+2,&succ);
|
||||||
int size_kb=line.gettoken_int(a+2,&s);
|
if (!succ && line.gettoken_str(a+2)[0]) PRINTHELP()
|
||||||
if (!s && line.gettoken_str(a+2)[0]) PRINTHELP()
|
|
||||||
section_add_size_kb(size_kb);
|
section_add_size_kb(size_kb);
|
||||||
SCRIPT_MSG(_T("CopyFiles: %") NPRIs _T("\"%") NPRIs _T("\" -> \"%") NPRIs _T("\", size=%iKB\n"),ent.offsets[2]&FOF_SILENT?_T("(silent) "):_T(""), line.gettoken_str(a),line.gettoken_str(a+1),size_kb);
|
SCRIPT_MSG(_T("CopyFiles: %") NPRIs _T("\"%") NPRIs _T("\" -> \"%") NPRIs _T("\", size=%iKB\n"),ent.offsets[2]&FOF_SILENT?_T("(silent) "):_T(""), line.gettoken_str(a),line.gettoken_str(a+1),size_kb);
|
||||||
|
|
||||||
DefineInnerLangString(NLF_COPY_FAILED);
|
DefineInnerLangString(NLF_COPY_FAILED);
|
||||||
DefineInnerLangString(NLF_COPY_TO);
|
DefineInnerLangString(NLF_COPY_TO);
|
||||||
}
|
}
|
||||||
|
@ -4995,10 +4872,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
{FILE_ATTRIBUTE_NORMAL,_T("0")},
|
{FILE_ATTRIBUTE_NORMAL,_T("0")},
|
||||||
};
|
};
|
||||||
#undef MBD
|
#undef MBD
|
||||||
int r=0;
|
int r=0, x;
|
||||||
int x;
|
|
||||||
TCHAR *p=line.gettoken_str(2);
|
TCHAR *p=line.gettoken_str(2);
|
||||||
|
|
||||||
while (*p)
|
while (*p)
|
||||||
{
|
{
|
||||||
TCHAR *np=p;
|
TCHAR *np=p;
|
||||||
|
@ -5007,10 +4882,9 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
for (x = 0 ; (unsigned) x < COUNTOF(list) && _tcsicmp(list[x].str,p); x++);
|
for (x = 0 ; (unsigned) x < COUNTOF(list) && _tcsicmp(list[x].str,p); x++);
|
||||||
|
|
||||||
if ((unsigned) x < COUNTOF(list))
|
if ((unsigned) x < COUNTOF(list))
|
||||||
{
|
|
||||||
r |= list[x].id;
|
r |= list[x].id;
|
||||||
}
|
else
|
||||||
else PRINTHELP()
|
PRINTHELP()
|
||||||
p=np;
|
p=np;
|
||||||
}
|
}
|
||||||
ent.which=EW_SETFILEATTRIBUTES;
|
ent.which=EW_SETFILEATTRIBUTES;
|
||||||
|
@ -5044,8 +4918,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
case TOK_SETDETAILSVIEW:
|
case TOK_SETDETAILSVIEW:
|
||||||
{
|
{
|
||||||
int v=line.gettoken_enum(1,_T("hide\0show\0"));
|
int v=line.gettoken_enum(1,_T("hide\0show\0"));
|
||||||
ent.which=EW_CHDETAILSVIEW;
|
|
||||||
if (v < 0) PRINTHELP()
|
if (v < 0) PRINTHELP()
|
||||||
|
ent.which=EW_CHDETAILSVIEW;
|
||||||
ent.offsets[0] = v?SW_SHOWNA:SW_HIDE;
|
ent.offsets[0] = v?SW_SHOWNA:SW_HIDE;
|
||||||
ent.offsets[1] = v?SW_HIDE:SW_SHOWNA;
|
ent.offsets[1] = v?SW_HIDE:SW_SHOWNA;
|
||||||
SCRIPT_MSG(_T("SetDetailsView: %") NPRIs _T("\n"),line.gettoken_str(1));
|
SCRIPT_MSG(_T("SetDetailsView: %") NPRIs _T("\n"),line.gettoken_str(1));
|
||||||
|
@ -5287,8 +5161,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
case TOK_DELETEINISEC:
|
case TOK_DELETEINISEC:
|
||||||
case TOK_DELETEINISTR:
|
case TOK_DELETEINISTR:
|
||||||
{
|
{
|
||||||
const TCHAR *vname=_T("");
|
const TCHAR *vname=_T(""), *space=_T("");
|
||||||
const TCHAR *space=_T("");
|
|
||||||
ent.which=EW_WRITEINI;
|
ent.which=EW_WRITEINI;
|
||||||
ent.offsets[0]=add_string(line.gettoken_str(2)); // section name
|
ent.offsets[0]=add_string(line.gettoken_str(2)); // section name
|
||||||
if (line.getnumtokens() > 3)
|
if (line.getnumtokens() > 3)
|
||||||
|
@ -5527,14 +5400,11 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
ent.offsets[3]=add_string(line.gettoken_str(4));
|
ent.offsets[3]=add_string(line.gettoken_str(4));
|
||||||
ent.offsets[4]=ent.offsets[5]=REG_SZ;
|
ent.offsets[4]=ent.offsets[5]=REG_SZ;
|
||||||
if (which_token == TOK_WRITEREGEXPANDSTR)
|
if (which_token == TOK_WRITEREGEXPANDSTR)
|
||||||
{
|
|
||||||
ent.offsets[5]=REG_EXPAND_SZ;
|
ent.offsets[5]=REG_EXPAND_SZ;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (which_token == TOK_WRITEREGBIN)
|
if (which_token == TOK_WRITEREGBIN)
|
||||||
{
|
{
|
||||||
// Jim Park: Keep the data as char / 8 bits
|
char data[3*NSIS_MAX_STRLEN]; // Jim Park: Keep the data as char / 8 bits
|
||||||
char data[3*NSIS_MAX_STRLEN];
|
|
||||||
TCHAR *p=line.gettoken_str(4);
|
TCHAR *p=line.gettoken_str(4);
|
||||||
int data_len=0;
|
int data_len=0;
|
||||||
while (*p)
|
while (*p)
|
||||||
|
@ -5616,9 +5486,9 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
ent.which=EW_PUSHPOP;
|
ent.which=EW_PUSHPOP;
|
||||||
if (line.gettoken_str(1)[0] && save<0)
|
if (line.gettoken_str(1)[0] && save<0)
|
||||||
{
|
{
|
||||||
int s=0;
|
int succ=0;
|
||||||
swapitem=line.gettoken_int(1,&s);
|
swapitem=line.gettoken_int(1,&succ);
|
||||||
if (!s || swapitem <= 0) PRINTHELP()
|
if (!succ || swapitem <= 0) PRINTHELP()
|
||||||
}
|
}
|
||||||
if (save>=0)
|
if (save>=0)
|
||||||
{
|
{
|
||||||
|
@ -5722,10 +5592,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
case TOK_FINDFIRST:
|
case TOK_FINDFIRST:
|
||||||
ERROR_MSG(_T("Error: %") NPRIs _T(" specified, NSIS_SUPPORT_FINDFIRST not defined.\n"), line.gettoken_str(0));
|
ERROR_MSG(_T("Error: %") NPRIs _T(" specified, NSIS_SUPPORT_FINDFIRST not defined.\n"), line.gettoken_str(0));
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
|
|
||||||
#endif//!NSIS_SUPPORT_FINDFIRST
|
#endif//!NSIS_SUPPORT_FINDFIRST
|
||||||
|
|
||||||
|
|
||||||
#ifdef NSIS_SUPPORT_FILEFUNCTIONS
|
#ifdef NSIS_SUPPORT_FILEFUNCTIONS
|
||||||
case TOK_FILEOPEN:
|
case TOK_FILEOPEN:
|
||||||
{
|
{
|
||||||
|
@ -5894,7 +5761,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
#endif
|
#endif
|
||||||
ERROR_MSG(_T("Error: %") NPRIs _T(" specified, NSIS_SUPPORT_FILEFUNCTIONS not defined.\n"), line.gettoken_str(0));
|
ERROR_MSG(_T("Error: %") NPRIs _T(" specified, NSIS_SUPPORT_FILEFUNCTIONS not defined.\n"), line.gettoken_str(0));
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
|
|
||||||
#endif//!NSIS_SUPPORT_FILEFUNCTIONS
|
#endif//!NSIS_SUPPORT_FILEFUNCTIONS
|
||||||
#ifdef NSIS_SUPPORT_REBOOT
|
#ifdef NSIS_SUPPORT_REBOOT
|
||||||
case TOK_REBOOT:
|
case TOK_REBOOT:
|
||||||
|
@ -5940,7 +5806,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
ent.offsets[0]=1;
|
ent.offsets[0]=1;
|
||||||
ent.offsets[1]=line.gettoken_enum(1,_T("off\0on\0"));
|
ent.offsets[1]=line.gettoken_enum(1,_T("off\0on\0"));
|
||||||
if (ent.offsets[1]<0) PRINTHELP()
|
if (ent.offsets[1]<0) PRINTHELP()
|
||||||
|
|
||||||
SCRIPT_MSG(_T("LogSet: %") NPRIs _T("\n"),line.gettoken_str(1));
|
SCRIPT_MSG(_T("LogSet: %") NPRIs _T("\n"),line.gettoken_str(1));
|
||||||
return add_entry(&ent);
|
return add_entry(&ent);
|
||||||
case TOK_LOGTEXT:
|
case TOK_LOGTEXT:
|
||||||
|
@ -6108,15 +5973,10 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
case TOK_DEFVAR:
|
case TOK_DEFVAR:
|
||||||
{
|
{
|
||||||
int a=1;
|
int a=1;
|
||||||
|
|
||||||
if (!_tcsicmp(line.gettoken_str(1),_T("/GLOBAL")))
|
if (!_tcsicmp(line.gettoken_str(1),_T("/GLOBAL")))
|
||||||
{
|
|
||||||
a++;
|
a++;
|
||||||
}
|
|
||||||
else if (line.getnumtokens() == 3)
|
else if (line.getnumtokens() == 3)
|
||||||
{
|
|
||||||
PRINTHELP();
|
PRINTHELP();
|
||||||
}
|
|
||||||
|
|
||||||
if (build_cursection)
|
if (build_cursection)
|
||||||
{
|
{
|
||||||
|
@ -6126,13 +5986,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
PRINTHELP();
|
PRINTHELP();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SCRIPT_MSG(_T("Var: \"%") NPRIs _T("\"\n"),line.gettoken_str(a));
|
SCRIPT_MSG(_T("Var: \"%") NPRIs _T("\"\n"),line.gettoken_str(a));
|
||||||
|
return DeclaredUserVar(line.gettoken_str(a));
|
||||||
int res = DeclaredUserVar(line.gettoken_str(a));
|
|
||||||
if (res != PS_OK)
|
|
||||||
return res;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
|
|
||||||
|
@ -6142,7 +5997,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
{
|
{
|
||||||
LANGID LangID=0;
|
LANGID LangID=0;
|
||||||
int a = 1;
|
int a = 1;
|
||||||
// Allow people to force Neutral, if /LANG=* is not present it uses the default
|
// Allow people to force Neutral (if /LANG=* is not present it uses the default)
|
||||||
const bool forceneutrallang = !_tcsicmp(line.gettoken_str(a),_T("/LANG=0"));
|
const bool forceneutrallang = !_tcsicmp(line.gettoken_str(a),_T("/LANG=0"));
|
||||||
|
|
||||||
if (!_tcsnicmp(line.gettoken_str(a),_T("/LANG="),6))
|
if (!_tcsnicmp(line.gettoken_str(a),_T("/LANG="),6))
|
||||||
|
@ -6295,11 +6150,11 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
if (data_handle == -1)
|
if (data_handle == -1)
|
||||||
{
|
{
|
||||||
int files_added;
|
int files_added;
|
||||||
int old_build_allowskipfiles=build_allowskipfiles;
|
const int old_build_allowskipfiles=build_allowskipfiles;
|
||||||
build_allowskipfiles=1; // on
|
build_allowskipfiles=1; // on
|
||||||
int old_build_overwrite=build_overwrite;
|
const int old_build_overwrite=build_overwrite;
|
||||||
build_overwrite=1; // off
|
build_overwrite=1; // off
|
||||||
int old_build_datesave=build_datesave;
|
const int old_build_datesave=build_datesave;
|
||||||
build_datesave=0; // off
|
build_datesave=0; // off
|
||||||
|
|
||||||
// Jim Park: While the code looks as if the same DLL is added multiple
|
// Jim Park: While the code looks as if the same DLL is added multiple
|
||||||
|
@ -6392,8 +6247,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
DefineInnerLangString(NLF_SYMBOL_NOT_FOUND);
|
DefineInnerLangString(NLF_SYMBOL_NOT_FOUND);
|
||||||
DefineInnerLangString(NLF_COULD_NOT_LOAD);
|
DefineInnerLangString(NLF_COULD_NOT_LOAD);
|
||||||
DefineInnerLangString(NLF_NO_OLE);
|
DefineInnerLangString(NLF_NO_OLE);
|
||||||
// not used anywhere - DefineInnerLangString(NLF_ERR_REG_DLL);
|
// not used anywhere: DefineInnerLangString(NLF_ERR_REG_DLL);
|
||||||
|
|
||||||
return PS_OK;
|
return PS_OK;
|
||||||
}
|
}
|
||||||
case TOK_INITPLUGINSDIR:
|
case TOK_INITPLUGINSDIR:
|
||||||
|
@ -6432,14 +6286,12 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
return add_entry(&ent);
|
return add_entry(&ent);
|
||||||
#else
|
#else
|
||||||
case TOK_LOCKWINDOW:
|
case TOK_LOCKWINDOW:
|
||||||
{
|
|
||||||
ERROR_MSG(_T("Error: %") NPRIs _T(" specified, NSIS_LOCKWINDOW_SUPPORT not defined.\n"),line.gettoken_str(0));
|
ERROR_MSG(_T("Error: %") NPRIs _T(" specified, NSIS_LOCKWINDOW_SUPPORT not defined.\n"),line.gettoken_str(0));
|
||||||
}
|
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
#endif // NSIS_LOCKWINDOW_SUPPORT
|
#endif // NSIS_LOCKWINDOW_SUPPORT
|
||||||
|
|
||||||
default: break;
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
ERROR_MSG(_T("Error: doCommand: Invalid token \"%") NPRIs _T("\".\n"),line.gettoken_str(0));
|
ERROR_MSG(_T("Error: doCommand: Invalid token \"%") NPRIs _T("\".\n"),line.gettoken_str(0));
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
|
@ -6450,8 +6302,7 @@ int CEXEBuild::do_add_file(const TCHAR *lgss, int attrib, int recurse, int *tota
|
||||||
{
|
{
|
||||||
assert(!name_override || !recurse);
|
assert(!name_override || !recurse);
|
||||||
|
|
||||||
tstring dir = get_dir_name(lgss);
|
tstring dir = get_dir_name(lgss), spec;
|
||||||
tstring spec;
|
|
||||||
|
|
||||||
if (dir == lgss)
|
if (dir == lgss)
|
||||||
dir = _T("."), spec = lgss;
|
dir = _T("."), spec = lgss;
|
||||||
|
@ -6508,11 +6359,10 @@ int CEXEBuild::do_add_file(const TCHAR *lgss, int attrib, int recurse, int *tota
|
||||||
tstring new_dir;
|
tstring new_dir;
|
||||||
bool created = false;
|
bool created = false;
|
||||||
|
|
||||||
if (basedir == _T("")) {
|
if (basedir == _T(""))
|
||||||
new_dir = *dirs_itr;
|
new_dir = *dirs_itr;
|
||||||
} else {
|
else
|
||||||
new_dir = basedir + _T('\\') + *dirs_itr;
|
new_dir = basedir + _T('\\') + *dirs_itr;
|
||||||
}
|
|
||||||
|
|
||||||
tstring new_spec = dir + PLATFORM_PATH_SEPARATOR_STR + *dirs_itr + PLATFORM_PATH_SEPARATOR_STR;
|
tstring new_spec = dir + PLATFORM_PATH_SEPARATOR_STR + *dirs_itr + PLATFORM_PATH_SEPARATOR_STR;
|
||||||
|
|
||||||
|
@ -6531,7 +6381,6 @@ int CEXEBuild::do_add_file(const TCHAR *lgss, int attrib, int recurse, int *tota
|
||||||
}
|
}
|
||||||
|
|
||||||
const TCHAR *new_spec_c = new_spec.c_str();
|
const TCHAR *new_spec_c = new_spec.c_str();
|
||||||
|
|
||||||
int res = do_add_file(new_spec_c, attrib, 1, total_files, NULL, generatecode, NULL, excluded, new_dir, created);
|
int res = do_add_file(new_spec_c, attrib, 1, total_files, NULL, generatecode, NULL, excluded, new_dir, created);
|
||||||
if (res != PS_OK) {
|
if (res != PS_OK) {
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
|
@ -6646,20 +6495,18 @@ int CEXEBuild::add_file(const tstring& dir, const tstring& file, int attrib, con
|
||||||
mmap.clear();
|
mmap.clear();
|
||||||
|
|
||||||
if (ent.offsets[2] < 0)
|
if (ent.offsets[2] < 0)
|
||||||
{
|
|
||||||
return PS_ERROR;
|
return PS_ERROR;
|
||||||
}
|
|
||||||
|
|
||||||
if (data_handle)
|
if (data_handle)
|
||||||
{
|
|
||||||
*data_handle=ent.offsets[2];
|
*data_handle=ent.offsets[2];
|
||||||
}
|
|
||||||
|
|
||||||
{
|
{
|
||||||
DWORD s=getcurdbsize()-last_build_datablock_used;
|
DWORD s=getcurdbsize()-last_build_datablock_used;
|
||||||
if (s) s-=4;
|
if (s) s-=4;
|
||||||
if (s != len) SCRIPT_MSG(_T(" %d/%d bytes\n"),s,len);
|
if (s != len)
|
||||||
else SCRIPT_MSG(_T(" %d bytes\n"),len);
|
SCRIPT_MSG(_T(" %d/%d bytes\n"),s,len);
|
||||||
|
else
|
||||||
|
SCRIPT_MSG(_T(" %d bytes\n"),len);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (generatecode)
|
if (generatecode)
|
||||||
|
@ -6699,14 +6546,12 @@ int CEXEBuild::add_file(const tstring& dir, const tstring& file, int attrib, con
|
||||||
if (build_allowskipfiles)
|
if (build_allowskipfiles)
|
||||||
{
|
{
|
||||||
mb = MB_ABORTRETRYIGNORE | MB_ICONSTOP;
|
mb = MB_ABORTRETRYIGNORE | MB_ICONSTOP;
|
||||||
// default for silent installers
|
mb |= IDIGNORE << 21; // default for silent installers
|
||||||
mb |= IDIGNORE << 21;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mb = MB_RETRYCANCEL | MB_ICONSTOP;
|
mb = MB_RETRYCANCEL | MB_ICONSTOP;
|
||||||
// default for silent installers
|
mb |= IDCANCEL << 21; // default for silent installers
|
||||||
mb |= IDCANCEL << 21;
|
|
||||||
}
|
}
|
||||||
ent.offsets[0] |= mb << 3;
|
ent.offsets[0] |= mb << 3;
|
||||||
ent.offsets[5] = DefineInnerLangString(build_allowskipfiles ? NLF_FILE_ERROR : NLF_FILE_ERROR_NOIGNORE);
|
ent.offsets[5] = DefineInnerLangString(build_allowskipfiles ? NLF_FILE_ERROR : NLF_FILE_ERROR_NOIGNORE);
|
||||||
|
@ -6763,7 +6608,6 @@ int CEXEBuild::do_add_file_create_dir(const tstring& local_dir, const tstring& d
|
||||||
int ndc = add_asciistring(_T("."));
|
int ndc = add_asciistring(_T("."));
|
||||||
|
|
||||||
DWORD attr = GetFileAttributes(local_dir.c_str());
|
DWORD attr = GetFileAttributes(local_dir.c_str());
|
||||||
|
|
||||||
if (attr != INVALID_FILE_ATTRIBUTES)
|
if (attr != INVALID_FILE_ATTRIBUTES)
|
||||||
{
|
{
|
||||||
if (add_entry_direct(EW_SETFILEATTRIBUTES, ndc, attr) != PS_OK)
|
if (add_entry_direct(EW_SETFILEATTRIBUTES, ndc, attr) != PS_OK)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue