From: Johannes Schindelin Date: Tue, 28 Jun 2016 16:24:05 GMT Subject: Re: [PATCH] Remove obsolete comment from color.h Message-ID: In-Reply-To: Hi Junio, On Tue, 28 Jun 2016, Junio C Hamano wrote: > Johannes Schindelin writes: > > > Originally, ANSI color sequences were supported on Windows only by > > overriding the printf() and fprintf() functions, as mentioned in e7821d7 > > (Add a notice that only certain functions can print color escape codes, > > 2009-11-27). > > > > As of eac14f8 (Win32: Thread-safe windows console output, 2012-01-14), > > however, this is no longer the case, as the ANSI color sequence support > > code needed to be replaced with a thread-safe version, one side effect > > being that stdout and stderr handled no matter which function is used to > > write to it. > > So as long as we write via stdio to stdout/stderr, you can show > colors? Or is it now stronger, in that as long as we do anything > that ends up writing to file descriptors 1 or 2, you can show > colors? It means that we override stdout/stderr with a pipe that is parsed for the color sequences. If stdout or stderr are reopened later, this color handling will not apply to the new file descriptor/stream. Essentially, the caveat in color.h that one should use fprintf() and printf() when outputting color sequences to a terminal no longer holds true. fwrite() or write() work just as well. Ciao, Dscho