Add a Windows-specific fallback to getenv("HOME");

This fixes msysGit issue 482 properly.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2010-06-02 00:41:33 +02:00
committed by Karsten Blees
parent 07f88a00e3
commit 24e40baef4
6 changed files with 29 additions and 4 deletions

View File

@@ -1828,3 +1828,21 @@ pid_t waitpid(pid_t pid, int *status, int options)
errno = EINVAL;
return -1;
}
const char *get_windows_home_directory()
{
static const char *home_directory = NULL;
struct strbuf buf = STRBUF_INIT;
if (home_directory)
return home_directory;
home_directory = getenv("HOME");
if (home_directory && *home_directory)
return home_directory;
strbuf_addf(&buf, "%s/%s", getenv("HOMEDRIVE"), getenv("HOMEPATH"));
home_directory = strbuf_detach(&buf, NULL);
return home_directory;
}

View File

@@ -349,3 +349,6 @@ static int mingw_main(c,v)
* Used by Pthread API implementation for Windows
*/
extern int err_win_to_posix(DWORD winerr);
extern const char *get_windows_home_directory();
#define get_home_directory() get_windows_home_directory()