> Date: Thu, 20 Dec 2012 19:02:03 -0500 > From: Michael Goffioul <michael.goffi...@gmail.com> > > We've got a bug report in octave [1] that seems to indicate that gnulib's > replacement of isatty is incorrect on Windows 8 (it's fine up to Windows > 7). Looking at the implementation, it first calls the Windows _isatty > version, then checks the last 2 bits of the handle associated with the file > descriptor, based on the assumption described in [2] (a console HANDLE is > not a multiple of 4). It seems that this last assumption is not valid > anymore on Windows 8.
Does the following work on Windows 8? #define ISATTY(fd) (isatty(fd) && lseek(fd,SEEK_CUR,0) == -1) and then use ISATTY instead of isatty. (The lseek test is to reject other character devices, most prominently the null device, with MS implementation of isatty doesn't reject.)