Re: [PATCH] winansi: support ESC [ K (erase in line)
- From
- Peter 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