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

Re: [PATCH] winansi: support ESC [ K (erase in line)

From
PHPeter Harris <git@peter.is-a-geek.org>
Date
Mar 10, 2009, 12:29 UTC
Message-ID
<eaa105840903100529lc29664hd6e6fde29e06844a@mail.gmail.com>
In-Reply-To
<e2b19f6c7c50e5b0a652c40b0d8e4947134ed669.1236639280u.git.johannes.schindelin@gmx.de>
On Mon, Mar 9, 2009 at 8:41 PM, Johannes Schindelin wrote:
> To make use of it during a fetch, write() needs to be overridden, too.
Thanks for looking at this.

Sorry for leaving this part TODO for so long. Your version is considerably less hacky than the version I had in my head, too.

Show 10 quoted lines
> +int winansi_write(int fd, const void *buf, size_t len)
> +{
> +       if (isatty(fd)) {
> +               init();
> +               if (console)
> +                       return ansi_emulate((const char *)buf, len,
> +                                       fd == 2 ? stderr : stdout);
> +       }
> +       return write(fd, buf, len);
> +}

Switching an unbuffered write to a buffered fwrite makes me a little nervous. In practice, all writes probably go through this function, so it doesn't matter. And if the write is going somewhere it matters, it likely fails isatty anyway. But I would still be less nervous with an fflush() after ansi_emulate.

Peter Harris
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 25 of 26 in “winansi: support ESC [ K (erase in line)”
  1. winansi: support ESC [ K (erase in line)Johannes Schindelin, Mar 10, 2009
  2. Johannes SixtMar 10, 2009
  3. recv_sideband: Band #2 always goes to stderrJohannes Sixt, Mar 10, 2009
  4. Johannes SchindelinMar 10, 2009
  5. Johannes SixtMar 10, 2009
  6. Johannes SixtMar 10, 2009
  7. Johannes SchindelinMar 10, 2009
  8. Johannes SixtMar 10, 2009
  9. Johannes SchindelinMar 10, 2009
  10. Johannes SixtMar 10, 2009
  11. Shawn O. PearceMar 10, 2009
  12. Johannes SchindelinMar 10, 2009
  13. Junio C HamanoMar 10, 2009
  14. Shawn O. PearceMar 10, 2009
  15. Johannes SixtMar 10, 2009
  16. Johannes SchindelinMar 10, 2009
  17. Johannes SixtMar 10, 2009
  18. Nicolas PitreMar 10, 2009
  19. Jay SoffianMar 10, 2009
  20. Nicolas PitreMar 10, 2009
  21. 1/2 recv_sideband: Bands #2 and #3 always go to stderrJohannes Sixt, Mar 10, 2009
  22. 2/2 winansi: support ESC [ K (erase in line)Johannes Sixt, Mar 10, 2009
  23. Johannes SchindelinMar 11, 2009
  24. Johannes SchindelinMar 10, 2009
  25. Peter HarrisMar 10, 2009
  26. Johannes SchindelinMar 10, 2009

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.