From 2d7e541bf6bd66cb9088141f363ffd50056f7e9d Mon Sep 17 00:00:00 2001 From: kichik Date: Fri, 22 Nov 2002 15:46:33 +0000 Subject: [PATCH] Exec will now always work git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@1821 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/exehead/exec.c | 2 +- Source/exehead/util.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index ec7448f2..692040b7 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -839,7 +839,7 @@ static int NSISCALL ExecuteEntry(entry *entry_) log_printf2("Exec: command=\"%s\"",buf0); update_status_text_from_lang(LANG_EXECUTE,buf0); - hProc=myCreateProcess(buf0,*state_output_directory?state_output_directory:NULL); + hProc=myCreateProcess(buf0,state_output_directory); if (hProc) { diff --git a/Source/exehead/util.c b/Source/exehead/util.c index d96732d4..0cf8b7bf 100644 --- a/Source/exehead/util.c +++ b/Source/exehead/util.c @@ -27,12 +27,15 @@ HANDLE g_hInstance; HANDLE NSISCALL myCreateProcess(char *cmd, char *dir) { + DWORD d; PROCESS_INFORMATION ProcInfo={0,}; STARTUPINFO StartUp={0,}; StartUp.cb=sizeof(StartUp); + d=GetFileAttributes(dir); + if (d == INVALID_FILE_ATTRIBUTES || !(d&FILE_ATTRIBUTE_DIRECTORY)) dir=0; if (!CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, dir, &StartUp, &ProcInfo)) return NULL; - if (NULL != ProcInfo.hThread) CloseHandle( ProcInfo.hThread ); + if (NULL != ProcInfo.hThread) CloseHandle( ProcInfo.hThread ); return ProcInfo.hProcess; }