fixed a crash caused by defining a macro in a file included by another macro
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3573 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
c1dc7b8c92
commit
88c19d767d
1 changed files with 10 additions and 0 deletions
|
@ -902,6 +902,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
{
|
{
|
||||||
if (!line.gettoken_str(1)[0]) PRINTHELP()
|
if (!line.gettoken_str(1)[0]) PRINTHELP()
|
||||||
char *t=(char *)m_macros.get();
|
char *t=(char *)m_macros.get();
|
||||||
|
char *m=t;
|
||||||
while (t && *t)
|
while (t && *t)
|
||||||
{
|
{
|
||||||
if (!stricmp(t,line.gettoken_str(1))) break;
|
if (!stricmp(t,line.gettoken_str(1))) break;
|
||||||
|
@ -975,6 +976,15 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
// fix t if process_oneline changed m_macros
|
||||||
|
char *nm=(char *)m_macros.get();
|
||||||
|
if (nm != m)
|
||||||
|
{
|
||||||
|
t += nm - m;
|
||||||
|
m = nm;
|
||||||
|
}
|
||||||
|
}
|
||||||
t+=strlen(t)+1;
|
t+=strlen(t)+1;
|
||||||
}
|
}
|
||||||
m_macro_entry.delbypos(npos);
|
m_macro_entry.delbypos(npos);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue