Subject: bug#51426: 29.0.50; [PATCH] Should 'comint-term-environment' be connection-aware?

From: Jim Porter <[email-masked]>
Date: Thu, 28 Oct 2021 22:26:31 -0700

On 10/28/2021 9:48 AM, Michael Albinus wrote:
> What I'm curious about is whether we shall give more guidance using this
> feature. The majority of the users don't know connection-local
> variables, your example from the initial message might be instructive
> for them.
> 
> WDYT?

Sure, that seems like a good idea. I expanded the example in the section 
on "Per-Connection Local Variables" to show setting 
`system-uses-terminfo'. Hopefully this will point people in the right 
direction, and make it more apparent that 
`connection-local-set-profiles' lets you set multiple profiles for a 
connection, not just one. (That's documented in the Emacs Lisp manual, 
but I think it would be helpful to show it in the Emacs manual as well.)

Perhaps it would make sense to mention this in the Tramp manual too, 
such as under the section "Running shell on a remote host". On the other 
hand, setting `system-uses-terminfo' connection-locally only applies to 
Emacs 29+, so it might make that section more confusing to include it 
there. People might expect it to work on older versions of Emacs as well.
From b2ca1c7884790886142af12115c5fc5c20979a25 Mon Sep 17 00:00:00 2001
From: Jim Porter <[email-masked]>
Date: Thu, 28 Oct 2021 22:14:07 -0700
Subject: [PATCH] Expand the documentation for connection local variables

* doc/emacs/custom.texi (Per-Connection Local Variables): Expand the
example to include setting 'system-uses-terminfo'.
---
 doc/emacs/custom.texi | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index eb30a6acc5..a158631825 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1474,9 +1474,10 @@ Connection Variables
 
   Most of the variables reflect the situation on the local machine.
 Often, they must use a different value when you operate in buffers
-with a remote default directory.  Think about the shell to be applied
-when calling @code{shell} -- it might be @file{/bin/bash} on your
-local machine, and @file{/bin/ksh} on a remote machine.
+with a remote default directory.  Think about the behavior when
+calling @code{shell} -- on your local machine, you might use
+@file{/bin/bash} and rely on termcap, but on a remote machine, it may
+be @file{/bin/ksh} and terminfo.
 
   This can be accomplished with @dfn{connection-local variables}.
 Directory and file local variables override connection-local
@@ -1492,6 +1493,9 @@ Connection Variables
 criteria, identifying a remote machine:
 
 @example
+(connection-local-set-profile-variables 'remote-terminfo
+   '((system-uses-terminfo . t)))
+
 (connection-local-set-profile-variables 'remote-ksh
    '((shell-file-name . "/bin/ksh")
      (shell-command-switch . "-c")))
@@ -1501,13 +1505,15 @@ Connection Variables
      (shell-command-switch . "-c")))
 
 (connection-local-set-profiles
-   '(:application tramp :machine "remotemachine") 'remote-ksh)
+   '(:application tramp :machine "remotemachine")
+   'remote-terminfo 'remote-ksh)
 @end example
 
-  This code declares two different profiles, @code{remote-ksh} and
-@code{remote-bash}. The profile @code{remote-ksh} is applied to all
+  This code declares three different profiles, @code{remote-terminfo},
+@code{remote-ksh}, and @code{remote-bash}. The profiles
+@code{remote-terminfo} and @code{remote-ksh} are applied to all
 buffers which have a remote default directory matching the regexp
-@code{"remotemachine} as host name.  Such a criteria can also
+@code{"remotemachine"} as host name.  Such a criteria can also
 discriminate for the properties @code{:protocol} (this is the Tramp
 method) or @code{:user} (a remote user name).  The @code{nil} criteria
 matches all buffers with a remote default directory.
-- 
2.25.1