http://bugs.winehq.org/show_bug.cgi?id=8924
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|FIXED |INVALID
--- Comment #30 from Dan Kegel dank@kegel.com 2009-10-02 09:19:03 --- I was never convinced it was a real problem, and we haven't had any changes to msvcrt/environ.c in ages. So it's probably more likely invalid.
I read his report more carefully, and see that he was saying that putenv cleared *other* env vars, so I wrote the test case
#include <stdio.h> #include <stdlib.h> void show() { const char *foobie=getenv("foobie"); if (foobie) printf("foobie ok, %s\n", foobie); else printf("foobie not found\n"); foobie=getenv("bar"); if (foobie) printf("bar ok, %s\n", foobie); else printf("bar not found\n"); } int main(int argc, char **argv) { show(); putenv("bar=bletch"); show(); }
and ran it with i586-mingw32msvc-gcc env.c foobie=xyz wine a.exe
Worked fine.
Also, there's a known issue even in Windows with having too many environment variables; space is limited. The user said that commenting out some variables fixed his problem. So that's what he was probably running into, and that's probably what fixed his problem.
If there is a real problem, it might be that Wine preserves too many Unix environment variables, thus using up the precious space in wine.
In any case, we didn't fix anything, so this should either be left open or closed as invalid. Let's close it as invalid for now, but if anyone runs into the "runs out of env space sooner in wine than windows" problem, let's reopen it as a new bug.