delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2021/04/30/10:34:59

X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E1587385741D
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1619792721;
bh=vCZyE27ijTi0xZl+K/N9OVhvnWPwjMQcWGnDzGvz0sk=;
h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:
List-Help:List-Subscribe:From:Reply-To:Cc:From;
b=P9nuyLn0e7Qookx3pDP6G9FkP3vvtTLxMBjM1MbA1n9TTbjtwpiklciRwIn81XnYs
DX/9J/H/DlwyBrymYXYslhgzw1O9jB89AcNKwuKaazwJ6uivnZImW6VIAMP7yaSvAA
ZOetGa/kYx9BmKe4WAEhlbADVdrLMaiVGu/R9cQ0=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org BE2D03857413
Date: Fri, 30 Apr 2021 08:25:12 -0600
To: cygwin AT cygwin DOT com
Subject: Screen clearing in CMD without "Legacy Console Mode"
Message-ID: <YIwTSMfJu9uMwrKn@kevinlocke.name>
MIME-Version: 1.0
X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00, DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, SPF_HELO_NONE,
SPF_PASS 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 AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
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: Kevin Locke via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Kevin Locke <kevin AT kevinlocke DOT name>
Cc: Johannes Schindelin <johannes DOT schindelin AT gmx DOT de>
Sender: "Cygwin" <cygwin-bounces AT cygwin DOT com>

Hi All,

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.

The difference appears to result from enabling
SetConsoleMode(ENABLE_VIRTUAL_TERMINAL_PROCESSING) and
SetConsoleMode(ENABLE_VIRTUAL_TERMINAL_INPUT)[^3] to behave like
xterm-256color when supported[^4] (they are not supported in "Legacy
Console Mode").

I'm not too familiar with TTY/PTY handling, much less Cygwin on top of
CMD.  It's not clear to me if the alternate screen buffer behaves
differently in CMD than xterm, whether Cygwin has any responsibility, or
if the issue is in how CMD handles ANSI escape sequences.  Johannes
Schindelin suggested it may make sense not to enable virtual terminal
processing when TERM=cygwin is set.[^5]  Thoughts?

Any advice or assistance for how to address this issue would be
appreciated.

Thanks,
Kevin

[^1]: https://github.com/git-for-windows/git/issues/3177
[^2]: https://docs.microsoft.com/windows/console/legacymode
[^3]: https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/fhandler_console.cc;h=ebe89fc9f8fd9fcb8102ee9884b8b91f04e88fb1;hb=5eb232ede72e394e280d1a23131267c7002d2c52#l464
[^4]: https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/fhandler_console.cc;h=ebe89fc9f8fd9fcb8102ee9884b8b91f04e88fb1;hb=5eb232ede72e394e280d1a23131267c7002d2c52#l1327
[^5]: https://github.com/git-for-windows/git/issues/3177#issuecomment-828494565

-- 
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