Re: [msysGit] [PATCH] mingw: work around stat-limitation
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 23, 2012, 22:37 UTC
- Message-ID
- <alpine.DEB.1.00.1202231636310.3340@s15462909.onlinehome-server.info>
- In-Reply-To
- <CABPQNSZ+=no5PKkaa8_44FbOzh_W4A5knoxKgDQ2wTvOaeKdew@mail.gmail.com>
Hi kusma,
On Thu, 23 Feb 2012, Erik Faye-Lund wrote:
Show 28 quoted lines
> On Thu, Feb 23, 2012 at 10:26 PM, Johannes Schindelin > <Johannes.Schindelin@gmx.de> wrote: > > > > On Thu, 23 Feb 2012, Erik Faye-Lund wrote: > > > >> Our stat implementation for Windows always sets st_ino to 0. This > >> means that checking if isatty(0) and comparing the reported inodes > >> of stdout and stdin is not sufficient to detect that both are > >> pointing to the same TTY. > >> > >> Luckily, there's only one console on Windows, so adding a check for > >> isatty(1) should do the trick. For platforms where inodes are > >> reported correctly, this should still be correct. > > > > Sorry to ask so stupidly, but why does isatty(1) work and isatty(0) does > > not? Should they not access the very same console object? > > > > The point is that they might not. The old test would draw the wrong > conclusion if isatty(0) was true, but isatty(1) was not because it > used st_ino to verify that stdin and stdout pointed to the same > terminal. The reason it did that was to catch cases where stdin and > stdout pointed to different terminals, AFAICT. Not checking isatty(1) > was simply an optimization, which works when st_ino is filled out > correctly. > > On Windows there is only one terminal, so it's sufficient to check if > both are connected.
Ah, okay. Thanks for answering so patiently!
ACK.
Ciao, Dscho