delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/07/27/09:39:09

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Date: Fri, 27 Jul 2001 17:36:44 +0400
From: egor duda <deo AT logos-m DOT ru>
X-Mailer: The Bat! (v1.53 RC/4)
Reply-To: egor duda <cygwin AT cygwin DOT com>
Organization: deo
X-Priority: 3 (Normal)
Message-ID: <179281668087.20010727173644@logos-m.ru>
To: Mike Gingell <mgingell AT accesswave DOT ca>
CC: cygwin AT cygwin DOT com
Subject: Re: Cannot change console mode when set CYGWIN=tty
In-Reply-To: <5.1.0.14.0.20010727092409.00aeefc0@mail.accesswave.ca>
References: <5 DOT 1 DOT 0 DOT 14 DOT 0 DOT 20010727092409 DOT 00aeefc0 AT mail DOT accesswave DOT ca>
MIME-Version: 1.0

Hi!

Friday, 27 July, 2001 Mike Gingell mgingell AT accesswave DOT ca wrote:

MG> In order to fix a minor problem caused by ^C being intercepted by bash, I
MG> set CYGWIN=tty before launching bash.  This solves the problem of cmd 
MG> asking the user to terminate the batch job.  This is great, however, it 
MG> breaks some of my other existing code, specifically the ability to change 
MG> the Console mode.  i.e.  with CYGWIN=tty:

MG>    Error getting console mode (Error 6): The handle is invalid.
MG>    exception....GetConsoleMode
MG>    [436]:[darkfriend:/d/rfr/mtQACE]:

MG> without CYGWIN=tty, all works fine.....

MG> This is the code that I use:
MG>      // Turn off the line input mode, and echo the input mode.
MG>      if (! GetConsoleMode(hStdin, &fdwOldMode)) {
MG>          printErr("Error getting console mode", GetLastError());
MG>          throw runtime_error("GetConsoleMode");
MG>          }
MG>      fdwMode = fdwOldMode & ~(ENABLE_LINE_INPUT
MG>                             | ENABLE_ECHO_INPUT
MG>                             | ENABLE_PROCESSED_INPUT );
MG>      if (! SetConsoleMode(hStdin, fdwMode)) {
MG>          printErr("Error setting console mode", GetLastError());
MG>          throw runtime_error("SetConsoleMode");
MG>          }

MG> Is there a work around for this?  If not, I will have to run without 
MG> CYGWIN=tty until I get a chance to dig into the source and find out what 
MG> CYGWIN=tty really does.
MG> Cheers!

it enables emulation of unix-like ttys. so, when your program runs in
such "tty" environment, its hStdin is a pipe to tty master. use unix
api to control tty mode instead of windows. see tcsetattr() function
for details.

Egor.            mailto:deo AT logos-m DOT ru ICQ 5165414 FidoNet 2:5020/496.19


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019