Commit 8c940a30 authored by Magnus Hagander's avatar Magnus Hagander

If the MSVCRT module is not found in the current binary, proceed to update

system and local environments anyway, instead of aborting. (This will
happen in a MSVC build with no or very few external libraries linked in)
parent e5b457c2
......@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/port/win32env.c,v 1.3 2009/06/11 14:49:15 momjian Exp $
* $PostgreSQL: pgsql/src/port/win32env.c,v 1.4 2009/12/27 16:01:39 mha Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -40,15 +40,20 @@ pgwin32_putenv(const char *envval)
if (putenvFunc == NULL)
{
hmodule = GetModuleHandle("msvcrt");
if (hmodule == NULL)
return 1;
putenvFunc = (PUTENVPROC) GetProcAddress(hmodule, "_putenv");
if (putenvFunc == NULL)
return 1;
if (hmodule != NULL)
{
/*
* If the module is found, attempt to find the function. If not, that just
* means we're not linked with msvcrt, so fall through and make our other
* modifications anyway.
* Ignore any errors and update whatever we can, since callers don't
* check the return value anyway.
*/
putenvFunc = (PUTENVPROC) GetProcAddress(hmodule, "_putenv");
if (putenvFunc != NULL)
putenvFunc(envval);
}
}
ret = putenvFunc(envval);
if (ret != 0)
return ret;
#endif /* _MSC_VER >= 1300 */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment