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 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`! Ciao, Johannes > Unfortunately, I am not clear on that myself.[^6] According to Johannes > Schindelin[^7]: > > > We specifically set TERM so that Cygwin (or more correctly, the MSYS2 > > runtime) uses ANSI sequences... > > Hopefully he (or another of the Git for Windows contributors) can add > more specifics. > > Thanks, > Kevin > > [^6]: > https://github.com/git-for-windows/git/issues/3177#issuecomment-828507812 > [^7]: > https://github.com/git-for-windows/git/issues/3177#issuecomment-826834976 > -- 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