]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: correct Windows CreateProcess input parameters
authorAlex Brainman <alex.brainman@gmail.com>
Thu, 21 Apr 2011 00:36:27 +0000 (10:36 +1000)
committerAlex Brainman <alex.brainman@gmail.com>
Thu, 21 Apr 2011 00:36:27 +0000 (10:36 +1000)
Fixes #1718.

R=golang-dev, rsc, peterGo, r
CC=golang-dev
https://golang.org/cl/4435059

src/cmd/gotest/gotest.go
src/pkg/exec/exec_test.go
src/pkg/syscall/exec_windows.go

index 3ff81304b3235d1e9165309e7309800d0c8b8887..a7ba8dd11a76bd1def2d6d1773f98944add62be2 100644 (file)
@@ -285,7 +285,7 @@ func doRun(argv []string, returnStdout bool) string {
                        }
                        cmd += `"` + v + `"`
                }
-               argv = []string{"cmd", "/c", "sh", "-c", cmd}
+               argv = []string{"sh", "-c", cmd}
        }
        var err os.Error
        argv[0], err = exec.LookPath(argv[0])
index 5e37b99eeca0f8cd4f2749aa7f3847fe41b1bee4..eb8cd5fec9f489ba1723fe1bf9cdf8a7c1ce5474 100644 (file)
@@ -9,19 +9,14 @@ import (
        "io/ioutil"
        "testing"
        "os"
-       "runtime"
 )
 
 func run(argv []string, stdin, stdout, stderr int) (p *Cmd, err os.Error) {
-       if runtime.GOOS == "windows" {
-               argv = append([]string{"cmd", "/c"}, argv...)
-       }
        exe, err := LookPath(argv[0])
        if err != nil {
                return nil, err
        }
-       p, err = Run(exe, argv, nil, "", stdin, stdout, stderr)
-       return p, err
+       return Run(exe, argv, nil, "", stdin, stdout, stderr)
 }
 
 func TestRunCat(t *testing.T) {
index aeee191dda7d332cf1feb6cfdd016714cb3c5926..ce855f5bc1944f644f4f9d6054995b1aef8c8c1f 100644 (file)
@@ -8,6 +8,7 @@ package syscall
 
 import (
        "sync"
+       "unsafe"
        "utf16"
 )
 
@@ -279,7 +280,7 @@ func StartProcess(argv0 string, argv []string, attr *ProcAttr) (pid, handle int,
                }
        }
        si := new(StartupInfo)
-       GetStartupInfo(si)
+       si.Cb = uint32(unsafe.Sizeof(*si))
        si.Flags = STARTF_USESTDHANDLES
        si.StdInput = fd[0]
        si.StdOutput = fd[1]