Re: [PATCH] Remove obsolete comment from color.h
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jun 28, 2016, 16:24 UTC
- Message-ID
- <alpine.DEB.2.20.1606281822240.12947@virtualbox>
- In-Reply-To
- <xmqqinwt9v6e.fsf@gitster.mtv.corp.google.com>
Hi Junio,
On Tue, 28 Jun 2016, Junio C Hamano wrote:
Show 17 quoted lines
> Johannes Schindelin <johannes.schindelin@gmx.de> 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