mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 03:32:32 +00:00
Merge pull request #4918 from cheatfate/macosprocworkdir
One more attempt to fix #4867
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user