From faa19f64793f7a979b6dbad7878f4853cf8b415d Mon Sep 17 00:00:00 2001 From: Karsten Blees Date: Sat, 14 Jan 2012 19:06:41 +0100 Subject: [PATCH] Revert "Windows: teach getenv to do a case-sensitive search" This reverts commit df599e9612788b728ce43a03159b85f1fe624d6a. As of 5e9637c6 "i18n: add infrastructure for translating Git with gettext", eval_gettext uses MinGW envsubst.exe instead of git-sh-i18n--envsubst.exe for variable substitution. This breaks git-submodule.sh messages and tests, as envsubst.exe doesn't support case-sensitive environment lookup (the same is true for almost everything on Windows, including MSys and Cygwin tools). 30a615ac "Windows/i18n: rename $path to prevent clashes with $PATH" renames the conflicting variable in git-submodule.sh, so that it works on Windows (i.e. with case-insensitive environment, regardless of the toolset). Revert to the documented behaviour of case-insensitive environment on Windows. Signed-off-by: Karsten Blees --- compat/mingw.c | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/compat/mingw.c b/compat/mingw.c index 3767048a6d..17ed1f7ad5 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -1184,31 +1184,14 @@ char **make_augmented_environ(const char *const *vars) } #undef getenv - -/* - * The system's getenv looks up the name in a case-insensitive manner. - * This version tries a case-sensitive lookup and falls back to - * case-insensitive if nothing was found. This is necessary because, - * as a prominent example, CMD sets 'Path', but not 'PATH'. - * Warning: not thread-safe. - */ -static char *getenv_cs(const char *name) -{ - size_t len = strlen(name); - int i = lookup_env(environ, name, len); - if (i >= 0) - return environ[i] + len + 1; /* skip past name and '=' */ - return getenv(name); -} - char *mingw_getenv(const char *name) { - char *result = getenv_cs(name); + char *result = getenv(name); if (!result && !strcmp(name, "TMPDIR")) { /* on Windows it is TMP and TEMP */ - result = getenv_cs("TMP"); + result = getenv("TMP"); if (!result) - result = getenv_cs("TEMP"); + result = getenv("TEMP"); } else if (!result && !strcmp(name, "TERM")) { /* simulate TERM to enable auto-color (see color.c) */ -- 2.11.4.GIT