From: Junio C Hamano Date: Fri, 19 Jul 2019 18:30:23 +0000 (-0700) Subject: Merge branch 'kb/mingw-set-home' X-Git-Tag: v2.23.0-rc0~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fc613d2d6eadbc57780e4151ef8f89d07cb959cc;p=thirdparty%2Fgit.git Merge branch 'kb/mingw-set-home' Windows port update. * kb/mingw-set-home: mingw: initialize HOME on startup --- fc613d2d6eadbc57780e4151ef8f89d07cb959cc diff --cc compat/mingw.c index 4891789771,1047427cb5..d9913463be --- a/compat/mingw.c +++ b/compat/mingw.c @@@ -2333,9 -2299,32 +2333,33 @@@ static void setup_windows_environment(v /* simulate TERM to enable auto-color (see color.c) */ if (!getenv("TERM")) setenv("TERM", "cygwin", 1); + + /* calculate HOME if not set */ + if (!getenv("HOME")) { + /* + * try $HOMEDRIVE$HOMEPATH - the home share may be a network + * location, thus also check if the path exists (i.e. is not + * disconnected) + */ + if ((tmp = getenv("HOMEDRIVE"))) { + struct strbuf buf = STRBUF_INIT; + strbuf_addstr(&buf, tmp); + if ((tmp = getenv("HOMEPATH"))) { + strbuf_addstr(&buf, tmp); + if (is_directory(buf.buf)) + setenv("HOME", buf.buf, 1); + else + tmp = NULL; /* use $USERPROFILE */ + } + strbuf_release(&buf); + } + /* use $USERPROFILE if the home share is not available */ + if (!tmp && (tmp = getenv("USERPROFILE"))) + setenv("HOME", tmp, 1); + } } +#if !defined(_MSC_VER) /* * Disable MSVCRT command line wildcard expansion (__getmainargs called from * mingw startup code, see init.c in mingw runtime).