Only use WriteConsoleW if the intended output is the console

This commit is contained in:
heinrich5991 2014-05-12 00:15:35 +02:00 committed by oy
parent 2d81b2fc33
commit f9f8cabc4b

View file

@ -106,9 +106,9 @@ void dbg_msg(const char *sys, const char *fmt, ...)
loggers[i](str);
}
static void logger_stdout(const char *line)
{
#if defined(CONF_FAMILY_WINDOWS)
static void logger_win_console(const char *line)
{
#define _MAX_LENGTH 1024
#define _MAX_LENGTH_ERROR (_MAX_LENGTH+32)
@ -183,10 +183,13 @@ static void logger_stdout(const char *line)
#undef _MAX_LENGTH
#undef _MAX_LENGTH_ERROR
#else
}
#endif
static void logger_stdout(const char *line)
{
printf("%s\n", line);
fflush(stdout);
#endif
}
static void logger_debugger(const char *line)
@ -206,7 +209,18 @@ static void logger_file(const char *line)
io_flush(logfile);
}
void dbg_logger_stdout() { dbg_logger(logger_stdout); }
void dbg_logger_stdout()
{
#if defined(CONF_FAMILY_WINDOWS)
if(GetFileType(GetStdHandle(STD_OUTPUT_HANDLE)) == FILE_TYPE_CHAR)
{
dbg_logger(logger_win_console);
return;
}
#endif
dbg_logger(logger_stdout);
}
void dbg_logger_debugger() { dbg_logger(logger_debugger); }
void dbg_logger_file(const char *filename)
{