build plug-in table only when needed. this also fixes warnings when using something like makensis.exe /X"OutFile bla.exe" /XSection /XSectionEnd

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3236 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2003-11-30 18:00:39 +00:00
parent 774f3d50de
commit 7bfcfac3c2
4 changed files with 16 additions and 11 deletions

View file

@ -372,6 +372,7 @@ CEXEBuild::CEXEBuild()
#ifdef NSIS_CONFIG_PLUGIN_SUPPORT
build_plugin_unload=0;
plugins_processed=0;
#endif
last_used_lang=MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
@ -3093,6 +3094,10 @@ void CEXEBuild::notify(int code, char *data)
#ifdef NSIS_CONFIG_PLUGIN_SUPPORT
void CEXEBuild::build_plugin_table(void)
{
if (plugins_processed)
return;
plugins_processed=1;
plugin_used = false;
uninst_plugin_used = false;
char* nsisdir = definedlist.find("NSISDIR");
@ -3102,8 +3107,9 @@ void CEXEBuild::build_plugin_table(void)
if (searchPath)
{
wsprintf(searchPath,"%s\\plugins",nsisdir);
INFO_MSG("\nProcessing plugin dlls: \"%s\\*.dll\"\n",searchPath);
INFO_MSG("Processing plugin dlls: \"%s\\*.dll\"\n",searchPath);
m_plugins.FindCommands(searchPath,display_info?true:false);
INFO_MSG("\n");
delete[] searchPath;
}
}

View file

@ -78,6 +78,7 @@ class CEXEBuild {
#ifdef NSIS_CONFIG_PLUGIN_SUPPORT
// Added by Ximon Eighteen 5th August 2002
void build_plugin_table(void);
int plugins_processed;
#endif //NSIS_CONFIG_PLUGIN_SUPPORT

View file

@ -261,7 +261,7 @@ int main(int argc, char **argv)
{
if (build.display_script)
{
fprintf(g_output,"\n\nProcessing config: \n");
fprintf(g_output,"Processing config: \n");
fflush(g_output);
}
int ret=build.process_script(cfg,exepath);
@ -275,6 +275,8 @@ int main(int argc, char **argv)
}
return 1;
}
fprintf(g_output,"\n");
fflush(g_output);
}
}
@ -328,22 +330,16 @@ int main(int argc, char **argv)
}
return 1;
}
fprintf(g_output,"\n");
fflush(g_output);
}
}
}
#ifdef NSIS_CONFIG_PLUGIN_SUPPORT
// Added by Ximon Eighteen 5th August 2002
if (!plugins_processed) {
build.build_plugin_table();
plugins_processed=1;
}
#endif //NSIS_CONFIG_PLUGIN_SUPPORT
if (build.display_script)
{
build.notify(MAKENSIS_NOTIFY_SCRIPT,sfile);
fprintf(g_output,"\n\nProcessing script file: \"%s\"\n",sfile);
fprintf(g_output,"Processing script file: \"%s\"\n",sfile);
fflush(g_output);
}
int ret=build.process_script(fp,sfile);

View file

@ -779,6 +779,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
HKEY_CLASSES_ROOT,HKEY_LOCAL_MACHINE,HKEY_CURRENT_USER,HKEY_USERS,HKEY_CURRENT_CONFIG,HKEY_DYN_DATA,HKEY_PERFORMANCE_DATA
};
build_plugin_table();
entry ent={0,};
switch (which_token)
{