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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Tue, 10 Mar 2009, Peter Harris wrote:

> On Mon, Mar 9, 2009 at 8:41 PM, Johannes Schindelin wrote:
> 
> > +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.

That would make the code substantially more messy, though.

Besides, half of it is already there: when encountering an ANSI sequence, 
your code already fflush()es the fd before setting the new attributes.  
And stderr does not need the fflush() anyway.

Ciao,
Dscho

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux