From: Peter Harris Date: Tue, 10 Mar 2009 12:29:58 GMT Subject: Re: [PATCH] winansi: support ESC [ K (erase in line) Message-ID: In-Reply-To: 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. > +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