Skip to content

Commit

Permalink
mingw: prepare the TMPDIR environment variable for shell scripts
Browse files Browse the repository at this point in the history
When shell scripts access a $TMPDIR variable containing backslashes,
they will be mistaken for escape characters. Let's not let that happen
by converting them to forward slashes.

This partially fixes t7800 with MSYS2.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Johannes Schindelin authored and Junio C Hamano committed Jan 26, 2016
1 parent 02e6edc commit 1fc7bf7
Showing 1 changed file with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions compat/mingw.c
Original file line number Diff line number Diff line change
Expand Up @@ -2046,13 +2046,28 @@ int xwcstoutf(char *utf, const wchar_t *wcs, size_t utflen)

static void setup_windows_environment()
{
char *tmp = getenv("TMPDIR");

/* on Windows it is TMP and TEMP */
if (!getenv("TMPDIR")) {
const char *tmp = getenv("TMP");
if (!tmp)
if (!tmp) {
if (!(tmp = getenv("TMP")))
tmp = getenv("TEMP");
if (tmp)
if (tmp) {
setenv("TMPDIR", tmp, 1);
tmp = getenv("TMPDIR");
}
}

if (tmp) {
/*
* Convert all dir separators to forward slashes,
* to help shell commands called from the Git
* executable (by not mistaking the dir separators
* for escape characters).
*/
for (; *tmp; tmp++)
if (*tmp == '\\')
*tmp = '/';
}

/* simulate TERM to enable auto-color (see color.c) */
Expand Down

0 comments on commit 1fc7bf7

Please sign in to comment.