From d692d117720d3c6c062e1b8a0ce87536e3d7ff84 Mon Sep 17 00:00:00 2001 From: ramon18 Date: Wed, 23 Jul 2003 18:19:13 +0000 Subject: [PATCH] temp console app now returns correct exitcode from spawned process, temp file is deleted on end git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2766 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/nsExec/nsexec.c | 17 +++++++++++------ Plugins/nsExec.dll | Bin 6144 -> 6144 bytes 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Contrib/nsExec/nsexec.c b/Contrib/nsExec/nsexec.c index 21c87eea..977837ad 100644 --- a/Contrib/nsExec/nsexec.c +++ b/Contrib/nsExec/nsexec.c @@ -123,7 +123,7 @@ void ExecScript(int log) { g_to = 0; // default is no timeout g_hwndList = FindWindowEx(FindWindowEx(g_hwndParent,NULL,"#32770",NULL),NULL,"SysListView32",NULL); - pExec = g_exec + nComSpecSize - 1; *pExec = ' '; pExec++; + pExec = g_exec + nComSpecSize - 2; *pExec = ' '; pExec++; popstring(pExec); if ( my_strstr(pExec, "/TIMEOUT=") ) { char *szTimeout = pExec + 9; @@ -265,6 +265,8 @@ done: CloseHandle(pi.hProcess); CloseHandle(newstdout); CloseHandle(read_stdout); + *(pExec-1) = '\0'; + DeleteFile(g_exec); GlobalFree(g_exec); if (log) { GlobalUnlock(hUnusedBuf); @@ -359,10 +361,10 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine cmdline = command_line; if (*cmdline == '\"') seekchar = *cmdline++; - + while (*cmdline && *cmdline != seekchar) cmdline=CharNext(cmdline); cmdline=CharNext(cmdline); - + Ret = CreateProcess (NULL, cmdline, NULL, NULL, TRUE, 0, @@ -370,10 +372,13 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine &si, &pi ); - if (Ret) + if ( Ret ) { - WaitForSingleObject (pi.hProcess, INFINITE); - GetExitCodeProcess(pi.hProcess, &Ret); + do + { + GetExitCodeProcess(pi.hProcess, &Ret); + Sleep(LOOPTIMEOUT); + } while ( Ret == STILL_ACTIVE ); CloseHandle (pi.hProcess); CloseHandle (pi.hThread); return Ret; diff --git a/Plugins/nsExec.dll b/Plugins/nsExec.dll index 825b0df70996f265c5ab4bc9ae581f8d24406996..c69136b52ca0a8ab47e211fc1abbdc1fc2247eca 100644 GIT binary patch delta 1850 zcmc&#U2GIp6uvXN?Y3oU7wnWxv(N$y6oIhp{B&tctfW(lA!WkWZI^Vl5L(ww0|j?U zG_5VP4PC~GC1ZjbF#Px+v_wNS0THu8WsOk-+5iDmLYgrAXqr^(DwXRu+ZrEy@X?!m zckcPlnQzWH_ufpGr_0lSon3n6z>V#ULtoDf)#!uraL z!rE=7)9;U1{YqRmDA$y>)s#QN)>Ez#R{6!K+frF^cC8b7Ey>D)JO*>4g)EzCrW3Cz zpeV%M`oWB{&Zy_{rOe{$KsTJb$A7RHsgav~~&E$N}yq>KVLLv@65!BANQc9D(Va!zoQu1Xx9^(UA$4Fmja9{wv>Nquk zfi9Wr;dscIh`2%U6X`}appn(9Ls`k*I=wk_WoKKuqPU#O>-i4NM;{b0ad}eftwSj6 z4Y0en3@qdF$OB6}G@{9u{fZ`!0uPmV>^kLY5YU^*>)C}5 zXzAP`(FHOxu`VgU!C+fk;-NPwR|zgIA5rDexcqKheovDV%Jd7^5=X%ApV}}#t@B;}lXD66a{A8dCrE9{1N z{Uuwm@j7x+Q^E2_!B|4=m<;Ee4&!B$9SfF^2czxvee;Z;p{%{i;xtV8gZhtIE2?}D zQ)iloKz-J*Tq(b>yC_0wEI~O3JX-ojgzXSSQs##rWJR`7&TjhTF=UUxDqYE*+i5oA z-hCYW>36LEyfYzZvC(W)VBE#w3BqKexvD(rb4G27QGmRHdpgGE5|W6`{`cFy!{)7w zIcaQc+DWFQ`|-u@Vfz%xD~1Yj+ySsb8XKn9%;YeQn$tsiO_gu;HPERIrCdA0^qDzM z#;q^TS;FM&wK>8Z^Keqpyw~a&jk@hxwH0N%^tW=#nC1FNP9w8?Xw{504CB&w*lSjr zXCl3AQC^c%Xa??Y6}Z1Uw5KCwL2=PL@Tg+l&~1AL(|LO#A;W+hs_z3B)UCqrXg;X`SHbRPplv8L`#7WbGmg{wR@VIAWERwRj;^AsW_b5`4|-2{&w9W1-ta#1I{1bB zI=+@~TF+AkfH4ojz` m)6zLrqtlv+O1l4v$J zrHyOqB_o#vet<$CL>wA);3vc>3&W2eMsO^IKs5VN*hrQzNDbBFbMBh>!yo?iB+ohL zea?HI`=0lGPgg}(MbEH>HXOLIgYy_GxrJQD*liJw)7%2fBZu(|H=ldg_=8)^ZRlHR zS!Y>y#zM%kCXu+c27hRFcYN$GN&`Z_e(@eQK^sTN{oc0T5B2!^KPgqI)B;z^@A43L za{RbjLEL&x1*cz-GWyWq*8v1u_&i_ zO$$5Jw2)0x6H1EmO{SepYaxrD@{O>nE=5YL)yuvtD}r9zV0EF3!`x&g3#YMg67{8& zUk^Wja=B_8%Bk#Zub`Lho;rW(Wg8)bwvti=;!i!7Lr5UrABYs{byL;UQJDS{VF;wk z;T8xSXOa1eT(M17LPBn#KcHXSMJXMOhcVX>NGaExSnl`g9mCztXM1~*sE$v1F_0p* zzmjMk2$k?4gokDpn~=rYrOl4Pc%u=VvZym`UMHcXU9qdkJd&^qOhU=%@kY49u7|zv zVi1NU>d}?64d4hkP0JcK7}zG1;ZbX%d01DjX{xS_0Ap$*dXw^9aESN2Vteod-HaU) z)gVI;>jss>97jl7qWK8rmw`(tCzHxZLir$}oY9p5HTwbT;cn2h$!cko_hmI_LzD8N z(QKc$umarD<_TA9FBCzVYAIcr(9|GB3WJSEJB^M}{#oNAd-04?IM5-JO{VD(ji#+> z%9j|o?8WmuIMd%Ds6%LliWADu1XFd%%v1~XS*DDq9Ny_g;79Ya+8N3h7%h&Oi2$bfD@{Aljeo$OH?_7TC(z@j%u6K&0K@Ju7t+%KDoYw8-Rno$Dfa#X5Pph~{%HQcKldGF z?=@OPqvP2_GO68zU+x=lPLgWsb%^6}fDF*+6?&ZojcJ5UW0=fGnUrF1phIZaNFL2$ zMerC^xeGYAu{l?q!CIF}?8zs`X{5xd*V>SfBID!SO0LwnliS3V_SHVNoa2g&n6v&F z)-h)NB4r_jh=&~kqbq4-3>Hc3hCd*saFj4sQQovEh@`3Yd-!W=?=25tf=U;?ns zC8PkD3zP$uz>B~JAPlqv=iqk)>lxrH;0ka9xC;b-w#CUc3`4`v?*`N)xo@Z+t?#W@b zW>F7&JZ;LaF9p0Gtp!bybGw%=H z>)y0?n&1&?gqMVX&?)Q}jtQrQ^TL4eqi{nQ5grJ3@dX2g6*V1>=uyk9RkX$k^&yz)YwXDgn$lK-U0{LyZ sTRtowl~2jv$XDfC@~CWIGHXf2k`~_%pYHqI_q}h(ciY#u+cJgw8^i}~YybcN