This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Setup patch to keep test version if test version installed


On Feb  6 07:00, Eric Blake wrote:
> On 02/06/2015 02:24 AM, Corinna Vinschen wrote:
> > On Feb  5 22:57, Achim Gratz wrote:
> >>
> >> Oh, and while you are so deep in the bowels of setup.exe, would it be
> >> possible to somehow fake a pty to shell scripts and a console to cmd so
> >> that the scripts run by setup.exe produce their output in line-buffered
> >> instead of fully buffered mode?
> > 
> > Er... uh... *cough*... PTC?
> > 
> > For Cygwin processes this would require to duplicate lots of the pty
> > code from Cygwin to Setup.  For native commands it might be enough to
> > play with the process creation flags in the call to CreateProcess, but
> > that might lead to a flickering taskbar entry for a hidden console.
> 
> For native commands (.bat, .cmd postinstalls), I have no idea.  But for
> cygwin processes (.sh postinstalls), it would be neat if we could get
> coreutils' stdbuf utility working on cygwin, then we just invoke 'sh -c
> "stdbuf script.sh"' instead of 'sh -c "script.sh"'.
> 
> > 
> > The other problem is that the stdio handles are redirected to a file
> > and thus, even if you have a console or pty, the output from the command
> > will use fully buffered mode.
> > 
> > The only way around that, afaics, is some sort of global setting (env
> > var?) for the buffering mode which is honored by native processes and
> > which may be read by the Cygwin DLL as well to enforce line buffering.
> > But I'm not aware such a setting exists.
> 
> stdbuf uses LD_PRELOAD to tell a process in main() that it should use
> line or no buffering, regardless of whether the output file is a file.
> And cygwin supports LD_PRELOAD.

So it probably hooks into setbuf, setbuffer, setlinebuf and setvbuf.
LD_PRELOADing libc aka cygwin1.dll itself?  That sounds a bit tricky.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgp8pgjZEL13p.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]