Merge pull request #4918 from cheatfate/macosprocworkdir

One more attempt to fix #4867
This commit is contained in:
Andreas Rumpf
2016-10-21 11:33:01 +02:00
committed by GitHub
2 changed files with 19 additions and 1 deletions

View File

@@ -774,7 +774,10 @@ elif not defined(useNimRtl):
data.workingDir = workingDir
when useProcessAuxSpawn:
var currentDir = getCurrentDir()
pid = startProcessAuxSpawn(data)
if workingDir.len > 0:
setCurrentDir(currentDir)
else:
pid = startProcessAuxFork(data)
@@ -835,7 +838,6 @@ elif not defined(useNimRtl):
chck posix_spawn_file_actions_adddup2(fops, data.pStderr[writeIdx], 2)
var res: cint
# FIXME: chdir is global to process
if data.workingDir.len > 0:
setCurrentDir($data.workingDir)
var pid: Pid

View File

@@ -0,0 +1,16 @@
discard """
file: "tworkingdir.nim"
output: ""
"""
import osproc, os
when defined(windows):
# Windows don't have this issue, so we won't test it.
discard
else:
let dir1 = getCurrentDir()
var process = startProcess("/usr/bin/env", "/usr/bin", ["true"])
let dir2 = getCurrentDir()
discard process.waitForExit()
process.close()
doAssert(dir1 == dir2, $dir1 & " != " & $dir2)