Bugzilla – Bug 905
Last modified: 2012-09-23 15:26:43 UTC
Finally figured this out..
When exiting the client on windows in a gdb session doesn't cause it to shut down, this is because we link with the SDLmain library which does some funky-ass shit (the real issue: using atexit() on sdl functions which in turn call system video shutdown functions (ie directx or gdi) = baaaad since the crt doesn't know shit about this stuff)
Here is the file in question that does this: http://www.koders.com/c/fid992E7EC1F2CEFBFF12A5BF1B2734262183CC0B16.aspx?s=%22sam%22#L2
We can remove the library, but then we'd have to do one of the following:
1) Need to write our own WinMain function, which then requires us to write out own command line parsing routine to translate lpCmdLine to the argv/argc style of arguments so the rest of the code remains unaffected, DArgs has a SetArgs function to handle this kind of "tokenized" command line
2) Leave the code intact, but you'd need to compile as a console application. This means we get a hideous console window appear behind the main window, sure just call FreeConsole().. but then you'd get a console window appear/disappear suddenly
Removing this library will also let the OS decide on how to use stdout/err rather than just dumping it to a text file
Opinions on this?
I don't see a reason why not to move forward with it, as long as it doesn't break any platforms in some horrific way.
Manc is also in favor of this, you missed his favorable reply in IRC by a few hours.