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: MIME-Version: 1.0 Content-Disposition: inline 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 List-Archive: List-Post: List-Help: List-Subscribe: , From: Kevin Locke via Cygwin Reply-To: Kevin Locke Cc: Johannes Schindelin Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Cygwin" 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