X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org MIME-Version: 1.0 In-Reply-To: <20100715081941.GE6944@calimero.vinschen.de> References: <000801cb2383$9c3ad3a0$d4b07ae0$@gmail.com> <20100714184922 DOT GA13548 AT ednor DOT casa DOT cgf DOT cx> <001001cb23a5$3a879090$af96b1b0$@gmail.com> <20100715081941 DOT GE6944 AT calimero DOT vinschen DOT de> Date: Thu, 15 Jul 2010 12:25:09 +0100 Message-ID: Subject: Re: {lp,cb}Reserved2 under Windows 7 and file descriptors From: Andy Koppe To: cygwin AT cygwin DOT com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On 15 July 2010 09:19, Corinna Vinschen wrote: >> Furthermore, there is a very long-standing issue with Cygwin pty devices: >> while Cygwin programs report true from isatty() when called on a Cygwin = PTY, >> MSVCRT applications do *not*. > > Right. > >> [...] >> However, due to the way the CRT works, we can fool it into thinking a >> passed-in file descriptor is actually a tty. All you need to do is use 3= for >> the value of *lpReserved2, then follow it with three flag bytes, then th= ree >> HANDLE values --- corresponding respectively to flags[fd0], flags[fd1], >> flags[fd2] and fh[0], fh[fd1] and fh[fd2]. =C2=A0This information would = be >> followed by the normal child_info structure. If stdin, stdout, or stderr= is >> a Cygwin PTY, Cygwin can manually set the FDEV bit (described in the old >> MSDOS headers) in corresponding flag byte, which will make _isatty() ret= urn >> true in the child. >> >> (Not that I've actually tried it --- it's just an idea.) > > That sounds like an interesting idea. =C2=A0I'll play around with it as s= oon > as I have a bit of spare time again. =C2=A0Unless, of course, nobody else > will try it or already did... It would be brilliant if this did work, taking at least some of the sting out of the whole pty vs interactive console app issue. Andy -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple