added !execute

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3594 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2004-08-06 11:29:28 +00:00
parent 3181bf4b4d
commit bb3f7be9ba
4 changed files with 27 additions and 0 deletions

View file

@ -2603,6 +2603,23 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
SCRIPT_MSG("!system: returned %d\n",ret);
}
return PS_OK;
case TOK_P_EXECUTE:
{
char *exec=line.gettoken_str(1);
#ifdef _WIN32
PROCESS_INFORMATION pi;
STARTUPINFO si={sizeof(STARTUPINFO),};
if (CreateProcess(NULL,exec,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
{
WaitForSingleObject(pi.hProcess,INFINITE);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
#else
system(exec);
#endif
SCRIPT_MSG("!execute: \"%s\"\n",exec);
}
case TOK_P_ADDINCLUDEDIR:
include_dirs.add(line.gettoken_str(1),0);
return PS_OK;

View file

@ -216,6 +216,7 @@ static tokenType tokenlist[TOK__LAST] =
{TOK_XPSTYLE, "XPStyle",1,0,"(on|off)",TP_GLOBAL},
{TOK_P_PACKEXEHEADER,"!packhdr",2,0,"temp_file_name command_line_to_compress_that_temp_file",TP_ALL},
{TOK_P_SYSTEMEXEC,"!system",1,2,"command [<|>|<>|=) retval]",TP_ALL},
{TOK_P_EXECUTE,"!execute",1,0,"command",TP_ALL},
{TOK_P_ADDINCLUDEDIR,"!AddIncludeDir",1,0,"dir",TP_ALL},
{TOK_P_INCLUDE,"!include",1,0,"filename.nsi",TP_ALL},
{TOK_P_CD,"!cd",1,0,"absolute_or_relative_new_directory",TP_ALL},

View file

@ -79,6 +79,7 @@ enum
TOK_P_UNDEF,
TOK_P_PACKEXEHEADER,
TOK_P_SYSTEMEXEC,
TOK_P_EXECUTE,
TOK_P_ADDINCLUDEDIR,
TOK_P_INCLUDE,
TOK_P_CD,