Merge pull request #199 from m-willers/fix_stdargs

Esse commit está contido em:
Benjamin Dobell
2014-05-10 01:25:20 +10:00
+42 -30
Ver Arquivo
@@ -92,74 +92,86 @@ void Interface::Print(const char *format, ...)
void Interface::PrintWarning(const char *format, ...)
{
va_list args;
va_start(args, format);
fprintf(stderr, "WARNING: ");
vfprintf(stderr, format, args);
fflush(stderr);
va_list stderrArgs;
va_start(stderrArgs, format);
if (stdoutErrors)
{
va_list stdoutArgs;
va_copy(stdoutArgs, stderrArgs);
fprintf(stdout, "WARNING: ");
vfprintf(stdout, format, args);
vfprintf(stdout, format, stdoutArgs);
fflush(stdout);
va_end(stdoutArgs);
}
va_end(args);
fprintf(stderr, "WARNING: ");
vfprintf(stderr, format, stderrArgs);
fflush(stderr);
va_end(stderrArgs);
}
void Interface::PrintWarningSameLine(const char *format, ...)
{
va_list args;
va_start(args, format);
vfprintf(stderr, format, args);
fflush(stderr);
va_list stderrArgs;
va_start(stderrArgs, format);
if (stdoutErrors)
{
vfprintf(stdout, format, args);
va_list stdoutArgs;
va_copy(stdoutArgs, stderrArgs);
vfprintf(stdout, format, stdoutArgs);
fflush(stdout);
va_end(stdoutArgs);
}
va_end(args);
vfprintf(stderr, format, stderrArgs);
fflush(stderr);
va_end(stderrArgs);
}
void Interface::PrintError(const char *format, ...)
{
va_list args;
va_start(args, format);
fprintf(stderr, "ERROR: ");
vfprintf(stderr, format, args);
fflush(stderr);
va_list stderrArgs;
va_start(stderrArgs, format);
if (stdoutErrors)
{
va_list stdoutArgs;
va_copy(stdoutArgs, stderrArgs);
fprintf(stdout, "ERROR: ");
vfprintf(stdout, format, args);
vfprintf(stdout, format, stdoutArgs);
fflush(stdout);
va_end(stdoutArgs);
}
va_end(args);
fprintf(stderr, "ERROR: ");
vfprintf(stderr, format, stderrArgs);
fflush(stderr);
va_end(stderrArgs);
}
void Interface::PrintErrorSameLine(const char *format, ...)
{
va_list args;
va_start(args, format);
vfprintf(stderr, format, args);
fflush(stderr);
va_list stderrArgs;
va_start(stderrArgs, format);
if (stdoutErrors)
{
vfprintf(stdout, format, args);
va_list stdoutArgs;
va_copy(stdoutArgs, stderrArgs);
vfprintf(stdout, format, stdoutArgs);
fflush(stdout);
va_end(stdoutArgs);
}
va_end(args);
vfprintf(stderr, format, stderrArgs);
fflush(stderr);
va_end(stderrArgs);
}
void Interface::PrintVersion(void)