oops, stupid bug.

master
mark 21 years ago
parent 6a20bb8e99
commit f67c6aa776

@ -12,6 +12,8 @@
#include <fcntl.h> #include <fcntl.h>
#include <sys/locking.h> #include <sys/locking.h>
#define debug(...) fprintf(stderr,__VA_ARGS__)
/* Generally useful function -- what luaL_checkudata() should do */ /* Generally useful function -- what luaL_checkudata() should do */
static void *luaL_checkuserdata(lua_State *L, int idx, const char *tname) static void *luaL_checkuserdata(lua_State *L, int idx, const char *tname)
@ -409,7 +411,7 @@ static int ex_spawn(lua_State *L)
/* XXX does CreateProcess modify its environment argument? */ /* XXX does CreateProcess modify its environment argument? */
cmdline = strdup(cmdline); cmdline = strdup(cmdline);
if (environment) environment = strdup(environment); if (environment) environment = strdup(environment);
fprintf(stderr, "CreateProcess(%s)\n", cmdline); debug("CreateProcess(%s)\n", cmdline);
ret = CreateProcess(0, (char *)cmdline, 0, 0, 0, 0, (char *)environment, 0, &si, &pi); ret = CreateProcess(0, (char *)cmdline, 0, 0, 0, 0, (char *)environment, 0, &si, &pi);
// if (environment) free((char *)environment); // if (environment) free((char *)environment);
// free((char *)cmdline); // free((char *)cmdline);
@ -424,7 +426,7 @@ static int ex_spawn(lua_State *L)
static int process_wait(lua_State *L) static int process_wait(lua_State *L)
{ {
struct process *p = luaL_checkuserdata(L, 1, PROCESS_HANDLE); struct process *p = luaL_checkuserdata(L, 1, PROCESS_HANDLE);
if (p->status != -1) { if (p->status == -1) {
DWORD exitcode; DWORD exitcode;
WaitForSingleObject(p->hProcess, INFINITE); WaitForSingleObject(p->hProcess, INFINITE);
GetExitCodeProcess(p->hProcess, &exitcode); GetExitCodeProcess(p->hProcess, &exitcode);

Loading…
Cancel
Save