From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from conssluserg-05.nifty.com (conssluserg-05.nifty.com [210.131.2.90]) by sourceware.org (Postfix) with ESMTPS id 26C9D3846020 for ; Thu, 6 May 2021 09:12:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 26C9D3846020 Received: from Express5800-S70 (v050190.dynamic.ppp.asahi-net.or.jp [124.155.50.190]) (authenticated) by conssluserg-05.nifty.com with ESMTP id 1469CPJn009931 for ; Thu, 6 May 2021 18:12:25 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-05.nifty.com 1469CPJn009931 X-Nifty-SrcIP: [124.155.50.190] Date: Thu, 6 May 2021 18:12:38 +0900 From: Takashi Yano To: cygwin@cygwin.com Subject: Re: Screen clearing in CMD without "Legacy Console Mode" Message-Id: <20210506181238.798ef704f5f7d77a89107ea8@nifty.ne.jp> In-Reply-To: References: <20210430235358.2ae6daa41e3f0b6cb0daa173@nifty.ne.jp> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham 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@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 May 2021 09:12:52 -0000 On Wed, 5 May 2021 15:07:04 +0200 (CEST) Johannes Schindelin wrote: > Hi, > > On Fri, 30 Apr 2021, Kevin Locke wrote: > > > On Fri, 2021-04-30 at 23:53 +0900, Takashi Yano wrote: > > > On Fri, 30 Apr 2021 08:25:12 -0600 Kevin Locke wrote: > > >> I'm investigating an issue in Git for Windows[^1], which also affects > > >> Cygwin. The issue is that, when using CMD (i.e. Command Prompt) on > > >> Windows 10 1703 or above with "Legacy Console Mode"[^2] disabled, if > > >> TERM=cygwin is set in the environment, the console is not cleared when > > >> vi exits. To demonstrate, with Cygwin 3.2.0, in CMD with "Legacy > > >> Console Mode" disabled: > > >> > > >> cd C:\cygwin64 > > >> set TERM=cygwin > > >> bin\vi etc\bash.bashrc > > >> :q > > >> > > >> After exiting vi, the console window has not been cleared and content > > >> from etc\bash.bashrc remains visible, making further use of the console > > >> difficult until cleared. > > > > > > Why on earth do you want to set TERM=cygwin? > > > If you don't set TERM=cygwin, TERM is automatically set to > > > xterm-256color, in which the issue does not occur. > > TERM=cygwin would be correct right until the time when you toggle > `ENABLE_VIRTUAL_TERMINAL_PROCESSING` under our feet. > > That is, when the Cygwin process is called, this flag is not set, so > `TERM=xterm-256color` would be incorrect. And then when the Cygwin process > returns, the flag is set, and the calling process should somehow guess > that `TERM` should be set differently. > > Oh, and you probably expect the caller to then figure out whether the flag > was _actually_ toggled, just in case we're running on a Windows 10 version > that is too old to understand that flag. > > If you expect CMD to be no longer used after the Cygwin process returns, > that might be a valid world view. But that is probably not a very tenable > world view. If you don't set TERM, cygwin sets right value automatically. That is, in the case in which ENABLE_VIRTUAL_TERMINAL_PROCESSING is not supported, TERM will be set to 'cygwin', otherwise, it will be set to 'xterm-256color'. Why do you want to set TERM? What is wrong with not setting TERM manually? If you set TERM incorrectly, it is very natural result that apps does not work correctly. > If Cygwin is unable to handle `TERM=cygwin` correctly when > `ENABLE_VIRTUAL_TERMINAL_PROCESSING` is toggled, then Cygwin should > definitely, absolutely, with 100% certainty _not_ toggle that flag when > `TERM` is already set to `cygwin`! I don't think so AT ALL. If someone sets TERM to the value other than 'cygwin' and 'xterm-256color', what do you expect cygwin to behave? For example, if TERM is set to 'linux', how should cygwin behave, do you think? P.S. mintty overwrites the TERM at startup even if user sets TERM manually. Shouldn't cygwin console also overwrite TERM to the correct value? -- Takashi Yano