On Thu, 6 May 2021 18:12:38 +0900
Takashi Yano via Cygwin> wrote:
> 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?

WSL also overwrites TERM value to 'xterm-256color'.

-- 
Takashi Yano <takashi.y...@nifty.ne.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

Reply via email to