|
10 | 10 | *
|
11 | 11 | *
|
12 | 12 | * IDENTIFICATION
|
13 |
| - * $PostgreSQL: pgsql/src/port/win32env.c,v 1.1 2009/01/21 10:30:02 mha Exp $ |
| 13 | + * $PostgreSQL: pgsql/src/port/win32env.c,v 1.2 2009/02/12 12:53:34 mha Exp $ |
14 | 14 | *
|
15 | 15 | *-------------------------------------------------------------------------
|
16 | 16 | */
|
@@ -64,12 +64,18 @@ pgwin32_putenv(const char *envval)
|
64 | 64 | return-1;
|
65 | 65 | *cp='\0';
|
66 | 66 | cp++;
|
67 |
| -if (strlen(cp)==0) |
68 |
| -cp=NULL; |
69 |
| -if (!SetEnvironmentVariable(envcpy,cp)) |
| 67 | +if (strlen(cp)) |
70 | 68 | {
|
71 |
| -free(envcpy); |
72 |
| -return-1; |
| 69 | +/* |
| 70 | + * Only call SetEnvironmentVariable() when we are adding a variable, |
| 71 | + * not when removing it. Calling it on both crashes on at least certain |
| 72 | + * versions of MingW. |
| 73 | + */ |
| 74 | +if (!SetEnvironmentVariable(envcpy,cp)) |
| 75 | +{ |
| 76 | +free(envcpy); |
| 77 | +return-1; |
| 78 | +} |
73 | 79 | }
|
74 | 80 | free(envcpy);
|
75 | 81 |
|
|