diff options
| author | Paul Betts <paul@paulbetts.org> | 2011-09-21 11:17:30 -0700 |
|---|---|---|
| committer | Paul Betts <paul@paulbetts.org> | 2011-09-21 11:17:30 -0700 |
| commit | ac31a60bcd4dd5bf6542115a54c18718d64663ef (patch) | |
| tree | 451559b8082bc60a6f60e77910647e22a4307b79 /src/win32 | |
| parent | 6d0ef97478633263cafa1329e865f5a33b950ac3 (diff) | |
| download | libgit2-ac31a60bcd4dd5bf6542115a54c18718d64663ef.tar.gz | |
Rewrite getenv to use Win32 version on Windows
Diffstat (limited to 'src/win32')
| -rw-r--r-- | src/win32/posix.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/win32/posix.c b/src/win32/posix.c index af54e7f82..1c9430d0f 100644 --- a/src/win32/posix.c +++ b/src/win32/posix.c @@ -370,6 +370,30 @@ int p_mkstemp(char *tmp_path) return p_creat(tmp_path, 0744); } +char* p_getenv(const char* name) +{ + wchar_t* buf; + wchar_t* name_w = conv_utf8_to_utf16(name); + char* ret; + DWORD len; + + len = GetEnvironmentVariableW(name_w, NULL, 0); + if (len == 0) { + free(name_w); + return NULL; + } + + len++; /* Null Terminator */ + buf = malloc(sizeof(wchar_t) * len); + GetEnvironmentVariable(name_w, buf, len); + + ret = conv_utf16_to_utf8(buf); + + free(name_w); + free(buf); + return ret; +} + int p_setenv(const char* name, const char* value, int overwrite) { if (overwrite != 1) |
