On Fri, Feb 03, 2017 at 12:46:51AM +0200, Lubomir I. Ivanov wrote: > > ok, so i've created a standalone test case and it appears that this > type of redirection never worked. > > that's because the application EXE is a GUI application (-mwindows) > and even if we redirect text to some console (via AttachConsole()), we > cannot redirect the output of the executable call to a file, like so: > gui_windows_test.exe > test.log > > because the GUI executable itself has no output, if that makes sense.
I would have bet that it worked. But I looked through the email archive and couldn't find actual PROOF that it worked... > solutions: > > 1) my last patch...it writes separate log files for stderr / stdout > it can write the output to the same file with this (mod in > windows.c::subsurface_console_init()): > > const char *location = logfile ? "subsurface.log" : "CON"; > console_desc.out = freopen(location, "w", stdout); > *stderr = *stdout; // seems safe > setvbuf(stderr, NULL, _IONBF, 0); // disable buffering > setvbuf(stdout, NULL, _IONBF, 0); I think having it write to two files is fine. I really see this as a very rarely used oddity if we really need someone to be able to capture debug output on Windows. This shouldn't be necessary and I don't want us to spend too much time on making it perfect. One question, though: is the other win32console option still needed? > 2) create a windows console application > stderr / stdout redirection of a windows console application will work for > sure. > > also define WIN32_CONSOLE_APP (-DWIN32_CONSOLE_APP) > > QMAKE had this: > CONFIG += console > > for CMAKE: > http://stackoverflow.com/questions/2753761/how-do-i-tell-cmake-not-to-create-a-console-window I guess I'm confused what the pros and cons are... i.e., we gain the ability to rediret stdout/stderr, what do we lose? /D _______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
