diff options
author | Juan Carlos <juancarlospaco@gmail.com> | 2021-03-03 07:58:05 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-03 11:58:05 +0100 |
commit | 4982d1c66212de2762eb4ebff183eaa09b00b1f8 (patch) | |
tree | fa895a72c221e29718ea21e23b03bc45b0b5148f | |
parent | ec068a26870e5e00c87b05495622aae554c9a63a (diff) | |
download | Nim-4982d1c66212de2762eb4ebff183eaa09b00b1f8.tar.gz |
https://github.com/nim-lang/Nim/pull/15826/files#r585368355 (#17233)
-rw-r--r-- | lib/pure/includes/osenv.nim | 5 | ||||
-rw-r--r-- | tests/stdlib/tos.nim | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/pure/includes/osenv.nim b/lib/pure/includes/osenv.nim index 92ba3829f..d0c92d566 100644 --- a/lib/pure/includes/osenv.nim +++ b/lib/pure/includes/osenv.nim @@ -5,9 +5,10 @@ when not declared(os) and not declared(ospaths): when defined(nodejs): proc getEnv*(key: string, default = ""): string {.tags: [ReadEnvEffect].} = - var ret: cstring + var ret = default.cstring let key2 = key.cstring - {.emit: "`ret` = process.env[`key2`];".} + {.emit: "const value = process.env[`key2`];".} + {.emit: "if (value !== undefined) { `ret` = value };".} result = $ret proc existsEnv*(key: string): bool {.tags: [ReadEnvEffect].} = diff --git a/tests/stdlib/tos.nim b/tests/stdlib/tos.nim index b47412a62..cf6fa20fa 100644 --- a/tests/stdlib/tos.nim +++ b/tests/stdlib/tos.nim @@ -520,7 +520,7 @@ block ospaths: # but not `./foo/bar` and `foo/bar` doAssert joinPath(".", "/lib") == unixToNativePath"./lib" doAssert joinPath(".","abc") == unixToNativePath"./abc" - + # cases related to issue #13455 doAssert joinPath("foo", "", "") == "foo" doAssert joinPath("foo", "") == "foo" @@ -566,6 +566,10 @@ block osenv: doAssert existsEnv(dummyEnvVar) == false delEnv(dummyEnvVar) # deleting an already deleted env var doAssert existsEnv(dummyEnvVar) == false + block: + doAssert getEnv("DUMMY_ENV_VAR_NONEXISTENT", "") == "" + doAssert getEnv("DUMMY_ENV_VAR_NONEXISTENT", " ") == " " + doAssert getEnv("DUMMY_ENV_VAR_NONEXISTENT", "Arrakis") == "Arrakis" block isRelativeTo: doAssert isRelativeTo("/foo", "/") |