From 4efbde84eeb0464d560a9451a5d60a746cc3e313 Mon Sep 17 00:00:00 2001 From: pgkos Date: Fri, 16 Nov 2018 08:45:50 +0100 Subject: [PATCH] Make getEnv case insensitive on Windows (#9722) --- lib/pure/includes/osenv.nim | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/pure/includes/osenv.nim b/lib/pure/includes/osenv.nim index 757b0b7370..4acc36b93d 100644 --- a/lib/pure/includes/osenv.nim +++ b/lib/pure/includes/osenv.nim @@ -3,6 +3,8 @@ when not declared(os): {.error: "This is an include file for os.nim!".} +from parseutils import skipIgnoreCase + proc c_getenv(env: cstring): cstring {. importc: "getenv", header: "".} proc c_putenv(env: cstring): cint {. @@ -91,7 +93,10 @@ proc findEnvVar(key: string): int = getEnvVarsC() var temp = key & '=' for i in 0..high(environment): - if startsWith(environment[i], temp): return i + when defined(windows): + if skipIgnoreCase(environment[i], temp) == len(temp): return i + else: + if startsWith(environment[i], temp): return i return -1 proc getEnv*(key: string, default = ""): TaintedString {.tags: [ReadEnvEffect].} =