X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fdebug%2Flogstream.hxx;h=4546a5e1d5cd6efbaa774eb475101a05584853af;hb=68eb7031e2dce999d112d0164fa28d4b8d66922e;hp=12c2dfeef9fb95e1a13b5f212c830d6aabeef991;hpb=78411d29a7fdd606e50a81d03d6e8a08dcb15828;p=simgear.git diff --git a/simgear/debug/logstream.hxx b/simgear/debug/logstream.hxx index 12c2dfee..4546a5e1 100644 --- a/simgear/debug/logstream.hxx +++ b/simgear/debug/logstream.hxx @@ -28,6 +28,10 @@ #include +#ifdef _MSC_VER +# include +#endif + #ifdef SG_HAVE_STD_INCLUDES # include # include @@ -180,7 +184,23 @@ logbuf::set_log_state( sgDebugClass c, sgDebugPriority p ) inline logbuf::int_type logbuf::overflow( int c ) { +#ifdef _MSC_VER + static has_console = false; + if ( logging_enabled ) { + if ( !has_console ) { + AllocConsole(); + freopen("conin$", "r", stdin); + freopen("conout$", "w", stdout); + freopen("conout$", "w", stderr); + has_console = true; + } + sbuf->sputc(c); + } + else + return EOF == 0 ? 1: 0; +#else return logging_enabled ? sbuf->sputc(c) : (EOF == 0 ? 1: 0); +#endif } /**