update for HEAD-2003091401
[reactos.git] / lib / msvcrt / process / process.c
index b088618..9ec80e1 100644 (file)
@@ -163,7 +163,7 @@ valisttos(const char* arg0, va_list alist, char delim)
 static int
 do_spawn(int mode, const char* cmdname, const char* args, const char* envp)
 {
-    STARTUPINFO StartupInfo;
+    STARTUPINFOA StartupInfo;
     PROCESS_INFORMATION ProcessInformation;
     char* fmode;
     HANDLE* hFile;
@@ -176,23 +176,23 @@ do_spawn(int mode, const char* cmdname, const char* args, const char* envp)
 
     if (mode != _P_NOWAIT && mode != _P_NOWAITO && mode != _P_WAIT && mode != _P_DETACH && mode != _P_OVERLAY)
     {
-       errno = EINVAL;
+       __set_errno ( EINVAL );
        return -1;
     }
 
     if (0 != _access(cmdname, F_OK))
     {
-       errno = ENOENT;
+       __set_errno ( ENOENT );
        return -1;
     }
     if (0 == _access(cmdname, D_OK))
     {
-       errno = EISDIR;
+       __set_errno ( EISDIR );
        return -1;
     }
 
-    memset (&StartupInfo, 0, sizeof(STARTUPINFO));
-    StartupInfo.cb = sizeof(STARTUPINFO);
+    memset (&StartupInfo, 0, sizeof(StartupInfo));
+    StartupInfo.cb = sizeof(StartupInfo);
 
     for (last = i = 0; i < maxfno; i++)
     {
@@ -208,7 +208,7 @@ do_spawn(int mode, const char* cmdname, const char* args, const char* envp)
        StartupInfo.lpReserved2 = malloc(StartupInfo.cbReserved2);
        if (StartupInfo.lpReserved2 == NULL)
        {
-           errno = ENOMEM;
+           __set_errno ( ENOMEM );
            return -1;
        } 
 
@@ -287,6 +287,9 @@ do_spawn(int mode, const char* cmdname, const char* args, const char* envp)
     return (int)ProcessInformation.hProcess;
 }
 
+/*
+ * @implemented
+ */
 int _spawnl(int mode, const char *cmdname, const char* arg0, ...)
 {
     va_list argp;
@@ -306,6 +309,9 @@ int _spawnl(int mode, const char *cmdname, const char* arg0, ...)
     return ret;
 }
 
+/*
+ * @implemented
+ */
 int _spawnv(int mode, const char *cmdname, char* const* argv)
 {
     char* args;
@@ -323,6 +329,9 @@ int _spawnv(int mode, const char *cmdname, char* const* argv)
     return ret;
 }
 
+/*
+ * @implemented
+ */
 int _spawnle(int mode, const char *cmdname, const char* arg0, ... /*, NULL, const char* const* envp*/)
 {
     va_list argp;
@@ -340,6 +349,7 @@ int _spawnle(int mode, const char *cmdname, const char* arg0, ... /*, NULL, cons
        ptr = (char* const*)va_arg(argp, char*);
     }
     while (ptr != NULL);
+    ptr = (char* const*)va_arg(argp, char*);
     envs = argvtos(ptr, 0);
     if (args)
     {
@@ -354,6 +364,9 @@ int _spawnle(int mode, const char *cmdname, const char* arg0, ... /*, NULL, cons
     
 }
 
+/*
+ * @implemented
+ */
 int _spawnve(int mode, const char *cmdname, char* const* argv, char* const* envp)
 {
     char *args;
@@ -377,6 +390,9 @@ int _spawnve(int mode, const char *cmdname, char* const* argv, char* const* envp
     return ret;
 }
 
+/*
+ * @implemented
+ */
 int _spawnvp(int mode, const char* cmdname, char* const* argv)
 {
     char pathname[FILENAME_MAX];
@@ -386,6 +402,9 @@ int _spawnvp(int mode, const char* cmdname, char* const* argv)
     return _spawnv(mode, find_exec(cmdname, pathname), argv);
 }
 
+/*
+ * @implemented
+ */
 int _spawnlp(int mode, const char* cmdname, const char* arg0, .../*, NULL*/)
 {
     va_list argp;
@@ -406,6 +425,9 @@ int _spawnlp(int mode, const char* cmdname, const char* arg0, .../*, NULL*/)
 }
 
 
+/*
+ * @implemented
+ */
 int _spawnlpe(int mode, const char* cmdname, const char* arg0, .../*, NULL, const char* const* envp*/)
 {
     va_list argp;
@@ -424,6 +446,7 @@ int _spawnlpe(int mode, const char* cmdname, const char* arg0, .../*, NULL, cons
        ptr = (char* const*)va_arg(argp, char*);
     }
     while (ptr != NULL);
+    ptr = (char* const*)va_arg(argp, char*);
     envs = argvtos(ptr, 0);
     if (args)
     {
@@ -437,6 +460,9 @@ int _spawnlpe(int mode, const char* cmdname, const char* arg0, .../*, NULL, cons
     return ret;
 }
 
+/*
+ * @implemented
+ */
 int _spawnvpe(int mode, const char* cmdname, char* const* argv, char* const* envp)
 {
     char pathname[FILENAME_MAX];
@@ -446,6 +472,9 @@ int _spawnvpe(int mode, const char* cmdname, char* const* argv, char* const* env
     return _spawnve(mode, find_exec(cmdname, pathname), argv, envp);
 }
 
+/*
+ * @implemented
+ */
 int _execl(const char* cmdname, const char* arg0, ...)
 {
     char* args;
@@ -465,12 +494,18 @@ int _execl(const char* cmdname, const char* arg0, ...)
     return ret;
 }
 
+/*
+ * @implemented
+ */
 int _execv(const char* cmdname, char* const* argv)
 {
     DPRINT("_execv('%s')\n", cmdname);
     return _spawnv(P_OVERLAY, cmdname, argv);
 }
 
+/*
+ * @implemented
+ */
 int _execle(const char* cmdname, const char* arg0, ... /*, NULL, char* const* envp */)
 {
     va_list argp;
@@ -488,7 +523,8 @@ int _execle(const char* cmdname, const char* arg0, ... /*, NULL, char* const* en
        ptr = (char* const*)va_arg(argp, char*);
     }
     while (ptr != NULL);
-    envs = argvtos((char**)ptr, 0);
+    ptr = (char* const*)va_arg(argp, char*);
+    envs = argvtos(ptr, 0);
     if (args)
     {
        ret = do_spawn(P_OVERLAY, cmdname, args, envs);
@@ -501,12 +537,18 @@ int _execle(const char* cmdname, const char* arg0, ... /*, NULL, char* const* en
     return ret;
 }
 
+/*
+ * @implemented
+ */
 int _execve(const char* cmdname, char* const* argv, char* const* envp)
 {
     DPRINT("_execve('%s')\n", cmdname);
     return _spawnve(P_OVERLAY, cmdname, argv, envp);
 }
 
+/*
+ * @implemented
+ */
 int _execlp(const char* cmdname, const char* arg0, ...)
 {
     char* args;
@@ -527,12 +569,18 @@ int _execlp(const char* cmdname, const char* arg0, ...)
     return ret;
 }
 
+/*
+ * @implemented
+ */
 int _execvp(const char* cmdname, char* const* argv)
 {
     DPRINT("_execvp('%s')\n", cmdname);
     return _spawnvp(P_OVERLAY, cmdname, argv);
 }
 
+/*
+ * @implemented
+ */
 int _execlpe(const char* cmdname, const char* arg0, ... /*, NULL, char* const* envp */)
 {
     va_list argp;
@@ -551,6 +599,7 @@ int _execlpe(const char* cmdname, const char* arg0, ... /*, NULL, char* const* e
        ptr = (char* const*)va_arg(argp, char*);
     }
     while (ptr != NULL);
+    ptr = (char* const*)va_arg(argp, char*);
     envs = argvtos(ptr, 0);
     if (args)
     {
@@ -564,6 +613,9 @@ int _execlpe(const char* cmdname, const char* arg0, ... /*, NULL, char* const* e
     return ret;
 }
 
+/*
+ * @implemented
+ */
 int _execvpe(const char* cmdname, char* const* argv, char* const* envp)
 {
     DPRINT("_execvpe('%s')\n", cmdname);