diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2022-12-21 03:26:32 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-20 20:26:32 +0100 |
commit | 0aec095b261bed8b5841beba7ce8cd52de4d54be (patch) | |
tree | 8d30b9ab02f81d400850edc22b9191f39affba6e /lib/std/envvars.nim | |
parent | 40b5c4c4c340d44ee724183306716286e40002cb (diff) | |
download | Nim-0aec095b261bed8b5841beba7ce8cd52de4d54be.tar.gz |
fixes #19292; fixes #21122; fixes putEnv and setEnv with vcc (#21143)
* fixes #19292; fixes 21122; fixes putEnv and setEnv with vcc * add a test
Diffstat (limited to 'lib/std/envvars.nim')
-rw-r--r-- | lib/std/envvars.nim | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/std/envvars.nim b/lib/std/envvars.nim index 817a155ec..ce90f66ba 100644 --- a/lib/std/envvars.nim +++ b/lib/std/envvars.nim @@ -63,9 +63,13 @@ when not defined(nimscript): import winlean when defined(nimPreviewSlimSystem): import std/widestrs - proc c_wgetenv(varname: WideCString): WideCString {.importc: "_wgetenv", + + type wchar_t {.importc: "wchar_t", header: "<stdlib.h>".} = int16 + proc c_wgetenv(varname: ptr wchar_t): ptr wchar_t {.importc: "_wgetenv", header: "<stdlib.h>".} - proc getEnvImpl(env: cstring): WideCString = c_wgetenv(env.newWideCString) + proc getEnvImpl(env: cstring): WideCString = + let r: WideCString = env.newWideCString + cast[WideCString](c_wgetenv(cast[ptr wchar_t](r))) else: proc c_getenv(env: cstring): cstring {. importc: "getenv", header: "<stdlib.h>".} |