This is the mail archive of the
cygwin-patches@cygwin.com
mailing list for the Cygwin project.
Re: [Patch] cygcheck: eprintf + display_error: Do /something/.
On Fri, Dec 17, 2004 at 04:33:10AM +0100, Bas van Gompel wrote:
>Op Thu, 16 Dec 2004 21:56:07 -0500 schreef Christopher Faylor
>in <20041217025607.GE26712@trixie.casa.cgf.cx>:
>: On Fri, Dec 17, 2004 at 03:51:47AM +0100, Bas van Gompel wrote:
>
>[...]
>
>: > I seem to be making a mess here... The point is to have the error-messages
>: > appear at about the appropriate point in the output, not bunched together
>: > near the beginning or end. Here is another attempt. This time, do the
>: > flushing when both are ttys or neither are.
>:
>: I still don't see the point. There is no need to do explicit flushes if
>: both stdout and stderr are ttys. In the case of stdout the flush should
>: occur every time there's a newline. In the case of stderr, the flush
>: should happen after every write.
>
>So, the test can exclude the case where both are ttys. (Did I say I was
>making a mess?) Here is a sample of ``cygcheck -s -v -r >cygcheck.out
>2>&1'', when some (network) drives can not be read:
>
>
>...
>zip 2.3-6
>zlib 1.2.2-1
>zsh 4.2.0-2
>Use -h to see help about each section
>cygcheck: dump_sysinfo: GetVolumeInformation() failed: 5
>cygcheck: dump_sysinfo: GetVolumeInformation() failed: 5
>
>
>Another version of the ChangeLog-entry/patch:
>
>2004-12-17 Bas van Gompel <cygwin-patch.buzz@bavag.tmfweb.nl>
>
> * cygcheck.cc (eprintf): Flush stdout before, and stderr after output,
> when stdout and stderr both don't refer to ttys.
> (display_error): Use eprintf.
Ok. I don't see any reason to check for ttyness, then. If this is an issue
then lets just flush stdout prior to doing anything with stderr. Flushing
stderr should always be a no-op.
Or, we could just make stdout always unbuffered.
cgf