Implemented :: syntax to specify which dll contains the comamd to run (in cases where more than one dll has the same command, OR the command is the same name as a built-in command)

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@652 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
sunjammerx 2002-08-05 20:40:14 +00:00
parent caa131db8c
commit f79499a946
2 changed files with 35 additions and 10 deletions

View file

@ -3226,13 +3226,18 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
}
// Create the runtime command to execute the custom instruction
// Strip any dllname.dll:: signature part off the command
char* command = strstr(line.gettoken_str(0),"::");
if (command) command += 2;
else command = line.gettoken_str(0);
ent.which = EW_PLUGINCOMMANDPREP;
ent.offsets[0] = add_string(dllPath);
ent.offsets[1] = add_string(line.gettoken_str(0));
ent.offsets[1] = add_string(command);
ent.offsets[2] = dataHandle;
add_entry(&ent);
SCRIPT_MSG("Plugin Command: %s",line.gettoken_str(0));
SCRIPT_MSG("Plugin Command: %s",command);
ent.which = EW_PLUGINCOMMAND;
for (int i = 0; i < MAX_ENTRY_OFFSETS && i+1 < line.getnumtokens(); i++)