git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 5 in “Remove obsolete comment from color.h”
  1. Remove obsolete comment from color.hJohannes Schindelin, Jun 28, 2016
  2. Junio C HamanoJun 28, 2016
  3. Johannes SchindelinJun 28, 2016
  4. Junio C HamanoJun 28, 2016
  5. Jeff KingJun 28, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.