Mail Archives: cygwin/2010/07/15/07:25:25
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: | <AANLkTil3FbLOY3T45_91RYarYTpRGu487WOqIBkcojuY@mail.gmail.com>
|
Subject: | Re: {lp,cb}Reserved2 under Windows 7 and file descriptors
|
From: | Andy Koppe <andy DOT koppe AT gmail DOT com>
|
To: | cygwin AT cygwin DOT com
|
X-IsSubscribed: | yes
|
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm
|
List-Id: | <cygwin.cygwin.com>
|
List-Unsubscribe: | <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
|
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com>
|
List-Archive: | <http://sourceware.org/ml/cygwin/>
|
List-Post: | <mailto:cygwin AT cygwin DOT com>
|
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
|
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
- Raw text -