Makefile: Print all color escape sequences before newline

Ensure that the escape sequences do not leak across lines.
This commit is contained in:
Brad King 2015-02-06 16:39:00 -05:00
parent 8521fdf56e
commit c6ada8275b
1 changed files with 9 additions and 3 deletions

View File

@ -2304,13 +2304,19 @@ void cmSystemTools::MakefileColorEcho(int color, const char* message,
if(enabled)
{
cmsysTerminal_cfprintf(color | assumeTTY, stdout, "%s%s",
message, newline? "\n" : "");
// Print with color. Delay the newline until later so that
// all color restore sequences appear before it.
cmsysTerminal_cfprintf(color | assumeTTY, stdout, "%s", message);
}
else
{
// Color is disabled. Print without color.
fprintf(stdout, "%s%s", message, newline? "\n" : "");
fprintf(stdout, "%s", message);
}
if(newline)
{
fprintf(stdout, "\n");
}
}