delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2020/07/28/13:41:54

X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2096338708A4
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1595958069;
bh=uYKFRm/BhAaTw/BzWK9pi4RASeHEfzTnyLedoXRoBcU=;
h=Date:To:Subject:In-Reply-To:References:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=DA89rqWMaBYLwyOEs+mfyJT/IjMBw5ccXFflzG+qKhBX4ZSQrs8w594W+z0pYhqMK
eZcFEbQFtEj3hKZPu6SvLLAMFKrKfN1QZz1r3kIU3JQIderhlUu29j3mydX2uUMonJ
fpLs867Fqx8m9RYoTgqHcpmY5PH2Wb8CwQXfKg58=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org E1F81384C005
DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-06.nifty.com 06SHejUA022147
X-Nifty-SrcIP: [124.155.38.192]
Date: Wed, 29 Jul 2020 02:40:53 +0900
To: cygwin AT cygwin DOT com
Subject: Re: stty -cooked not usable since cygwin-3.1.1-1
Message-Id: <20200729024053.52095c2f5a8d6356d748935f@nifty.ne.jp>
In-Reply-To: <d78149b7-b4c8-5619-71ca-f3b70a04fd26@towo.net>
References: <ad285b65-fed9-e6e5-eb3f-432fadc95daf AT bahnhof DOT se>
<20200113200152 DOT 5243a304d481677c61c12450 AT nifty DOT ne DOT jp>
<12d7cb6e-b900-6780-1d1c-80ed84cc82d5 AT bahnhof DOT se>
<1ea4e90c-7075-39e8-a518-40bc764a5237 AT bahnhof DOT se>
<20200729013848 DOT cf6d4d99464e92d92d346029 AT nifty DOT ne DOT jp>
<d78149b7-b4c8-5619-71ca-f3b70a04fd26 AT towo DOT net>
X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32)
Mime-Version: 1.0
X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_00, DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_NUMSUBJECT,
RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS,
TXREP autolearn=no autolearn_force=no version=3.4.2
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Takashi Yano via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
Errors-To: cygwin-bounces AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces AT cygwin DOT com>

On Tue, 28 Jul 2020 18:56:06 +0200
Thomas Wolff wrote:
> Am 28.07.2020 um 18:38 schrieb Takashi Yano via Cygwin:
> > On Tue, 28 Jul 2020 15:56:54 +0200
> > Rabbe Fogelholm wrote:
> >> Rabbe Fogelholm wrote:
> >>> Takashi Yano wrote:
> >>>> On Mon, 13 Jan 2020 11:52:43 +0100
> >>>> Rabbe Fogelholm wrote:
> >>>>> I am running a console Java program that is started from a shellscript
> >>>>> wrapper. Before invoking Java the wrapper calls `stty -cooked'. The Java
> >>>>> program polls the keyboard using System.in.available() and reads
> >>>>> characters immediately using System.in.read(), without waiting for the
> >>>>> Enter key to be pressed.
> >>>>>
> >>>>> This way of combining `stty -cooked' and Java has stopped working since
> >>>>> version 3.1.1-1 of the Cygwin package. The Java thread that reads the
> >>>>> keyboard hangs until Enter is pressed, which is not desirable.
> >>>>>
> >>>>> I had to downgrade to version 3.0.7-1 to resolve the problem.
> >>>>>
> >>>>> Versioning information:
> >>>>>
> >>>>> java version "1.8.0_202"
> >>>>> Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
> >>>>> Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
> >>>>>
> >>>>> OS Name: Microsoft Windows 10 Pro
> >>>>> Version: 10.0.17763 Build 17763
> >>>>> System Type: x64-based PC
> >>>>>
> >>>>> See also the enclosed cygcheck.out.
> >>>>>
> >>>>> To demonstrate the issue I enclose a small Java program that should be
> >>>>> able to read single keystrokes when `stty -cooked' is in effect.
> >>>> Does your java program work in command prompt? cygwin 3.1.x uses
> >>>> pseudo console, so the native (non cygwin) program works as if it
> >>>> is executed in command prompt.
> >>>>
> >>> With cygwin 3.1.x I can't find a way to make my program work.
> >>>
> >>> When running from within a Cygwin64 terminal the `stty -cooked' command
> >>> terminates with exit code 0, but the Java program behaves just as if
> >>> `stty -cooked' is not in effect: It does not handle single keystrokes
> >>> immediately.
> >>>
> >>> When running from a Windows command prompt I can execute the stty
> >>> program as \cygwin64\bin\stty. However, when given the '-cooked'
> >>> argument it complains:
> >>> /usr/bin/stty: 'standard input': unable to perform all requested operations
> >>>
> >>> - and here as well the Java program behaves as if `stty -cooked' is not
> >>> in effect.
> >> Some time has passed; I am just curious if anyone may have found a
> >> solution to the "stty -cooked" issue. With cygwin-3.0.* it was possible
> >> to have a Java program act on single keystrokes, with cygwin-3.1 I don't
> >> know how to do it. Any ideas welcome!
> > Solution 1:
> > Redesign your java program using JNA with kbhit()/getch() instead of
> > System.in.available()/System.in.read().
> >
> > Solution 2:
> > Add SetConsoleMode() call with ENABLE_LINE_INPUT flag cleared using JNA.

I'm sorry, but this does not work as far as I tested.
I'm not sure why.

> Couldn't cygwin clear this flag when it sets up ConPTY while the pty is 
> in raw mode?

Thomas's proposal will not work as well.

-- 
Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


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