aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nimterop/build.nim11
1 files changed, 10 insertions, 1 deletions
diff --git a/nimterop/build.nim b/nimterop/build.nim
index f96593e..cbf9b25 100644
--- a/nimterop/build.nim
+++ b/nimterop/build.nim
@@ -29,7 +29,16 @@ proc execAction*(cmd: string, retry = 0, nostderr = false): string =
ccmd = ""
ret = 0
when defined(Windows):
- ccmd = "cmd /c " & cmd
+ var filteredCmd = cmd
+ if cmd.toLower().startsWith("cd"):
+ var
+ colonIndex = cmd.find(":")
+ driveLetter = cmd.substr(colonIndex-1, colonIndex)
+ if (driveLetter[0].isAlphaAscii() and
+ driveLetter[1] == ':' and
+ colonIndex == 4):
+ filteredCmd = &"{driveLetter} && {cmd}"
+ ccmd = "cmd /c " & filteredCmd
elif defined(posix):
ccmd = cmd
else: