One more attempt to fix #4867
This commit is contained in:
parent
d60448fa69
commit
0c69891b8d
2 changed files with 19 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
16
tests/osproc/tworkingdir.nim
Normal file
16
tests/osproc/tworkingdir.nim
Normal 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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue