summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorslangmgh <37659406+slangmgh@users.noreply.github.com>2020-05-03 15:50:08 +0800
committerGitHub <noreply@github.com>2020-05-03 09:50:08 +0200
commitb56432bd8a56864679b21f4176717ad2f30e7b79 (patch)
tree9e42c5e31cda862e8b1130b7f57dec9955939d62 /lib
parentd5c014e59b0af47a1d7e5cf1dc7c732ada3c10c5 (diff)
downloadNim-b56432bd8a56864679b21f4176717ad2f30e7b79.tar.gz
fix #14203 (#14204)
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/osproc.nim5
-rw-r--r--lib/windows/winlean.nim30
2 files changed, 18 insertions, 17 deletions
diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim
index b0f15e38e..5839349fe 100644
--- a/lib/pure/osproc.nim
+++ b/lib/pure/osproc.nim
@@ -626,8 +626,11 @@ when defined(Windows) and not defined(useNimRtl):
       success = winlean.createProcessW(nil, tmp, nil, nil, 1, flags,
         ee, wwd, si, procInfo)
     else:
+      var ee =
+        if e.str.isNil: cstring(nil)
+        else: cstring(e.str)
       success = winlean.createProcessA(nil,
-        cmdl, nil, nil, 1, NORMAL_PRIORITY_CLASS, e, wd, si, procInfo)
+        cmdl, nil, nil, 1, NORMAL_PRIORITY_CLASS, ee, wd, si, procInfo)
     let lastError = osLastError()
 
     if poParentStreams notin options:
diff --git a/lib/windows/winlean.nim b/lib/windows/winlean.nim
index f749c508d..9beccc0eb 100644
--- a/lib/windows/winlean.nim
+++ b/lib/windows/winlean.nim
@@ -720,22 +720,20 @@ proc setHandleInformation*(hObject: Handle, dwMask: DWORD,
 proc getCurrentProcess*(): Handle{.stdcall, dynlib: "kernel32",
                                    importc: "GetCurrentProcess".}
 
-when useWinUnicode:
-  proc createFileW*(lpFileName: WideCString, dwDesiredAccess, dwShareMode: DWORD,
-                    lpSecurityAttributes: pointer,
-                    dwCreationDisposition, dwFlagsAndAttributes: DWORD,
-                    hTemplateFile: Handle): Handle {.
-      stdcall, dynlib: "kernel32", importc: "CreateFileW".}
-  proc deleteFileW*(pathName: WideCString): int32 {.
-    importc: "DeleteFileW", dynlib: "kernel32", stdcall.}
-else:
-  proc createFileA*(lpFileName: cstring, dwDesiredAccess, dwShareMode: DWORD,
-                    lpSecurityAttributes: pointer,
-                    dwCreationDisposition, dwFlagsAndAttributes: DWORD,
-                    hTemplateFile: Handle): Handle {.
-      stdcall, dynlib: "kernel32", importc: "CreateFileA".}
-  proc deleteFileA*(pathName: cstring): int32 {.
-    importc: "DeleteFileA", dynlib: "kernel32", stdcall.}
+proc createFileW*(lpFileName: WideCString, dwDesiredAccess, dwShareMode: DWORD,
+                  lpSecurityAttributes: pointer,
+                  dwCreationDisposition, dwFlagsAndAttributes: DWORD,
+                  hTemplateFile: Handle): Handle {.
+    stdcall, dynlib: "kernel32", importc: "CreateFileW".}
+proc deleteFileW*(pathName: WideCString): int32 {.
+  importc: "DeleteFileW", dynlib: "kernel32", stdcall.}
+proc createFileA*(lpFileName: cstring, dwDesiredAccess, dwShareMode: DWORD,
+                  lpSecurityAttributes: pointer,
+                  dwCreationDisposition, dwFlagsAndAttributes: DWORD,
+                  hTemplateFile: Handle): Handle {.
+    stdcall, dynlib: "kernel32", importc: "CreateFileA".}
+proc deleteFileA*(pathName: cstring): int32 {.
+  importc: "DeleteFileA", dynlib: "kernel32", stdcall.}
 
 proc setEndOfFile*(hFile: Handle): WINBOOL {.stdcall, dynlib: "kernel32",
     importc: "SetEndOfFile".}