From: Jim Porter <jporterbugs@gmail.com>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: 51426@debbugs.gnu.org
Subject: bug#51426: 29.0.50; [PATCH] Should 'comint-term-environment' be connection-aware?
Date: Thu, 28 Oct 2021 08:49:13 -0700 [thread overview]
Message-ID: <94c1e53f-98cb-8891-77d9-81f3c401149e@gmail.com> (raw)
In-Reply-To: <8735olwp95.fsf@gmx.de>
[-- Attachment #1: Type: text/plain, Size: 556 bytes --]
On 10/28/2021 1:02 AM, Michael Albinus wrote:
>> +@code{comint-terminfo-terminal} to let you choose a terminal with more
>> +advanced features, as defined in your system's terminfo database.
>> +When @code{system-uses-terminfo} is non-nil, Emacs will use this
>> +option as the value for @env{TERM}.
>
> "this option" sounds like Emacs uses system-uses-terminfo for TERM, at
> least in my ears. Could you pls rephrase it a little bit?
Looking at it again, I definitely agree. I've tried to reword it without
making it too much more verbose. How's this?
[-- Attachment #2: 0001-Support-setting-comint-terminal-connection-locally.patch --]
[-- Type: text/plain, Size: 3550 bytes --]
From 7fe3e2b6c118508300e08da04f039d21403ff9d0 Mon Sep 17 00:00:00 2001
From: Jim Porter <jporterbugs@gmail.com>
Date: Thu, 28 Oct 2021 08:45:15 -0700
Subject: [PATCH] Support setting comint terminal connection-locally
* lisp/comint.el (comint-term-environment): Make it connection-aware.
* doc/emacs/misc.texi (Shell Options): Document the above change, and
explain how this interacts with 'system-uses-terminfo'.
* etc/NEWS: Announce the above change.
---
doc/emacs/misc.texi | 12 +++++++++---
etc/NEWS | 8 ++++++++
lisp/comint.el | 13 +++++++------
3 files changed, 24 insertions(+), 9 deletions(-)
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 5123a716dc..7e7f7c5e27 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -1497,14 +1497,20 @@ Shell Options
underlying shell, of course.
@vindex comint-terminfo-terminal
+@vindex system-uses-terminfo
@vindex TERM@r{, environment variable, in sub-shell}
Comint mode sets the @env{TERM} environment variable to a safe default
value, but this value disables some useful features. For example,
color is disabled in applications that use @env{TERM} to determine if
color is supported. Therefore, Emacs provides an option
-@code{comint-terminfo-terminal}, which you can set to a terminal that
-is present in your system's terminfo database, in order to take
-advantage of advanced features of that terminal.
+@code{comint-terminfo-terminal} to let you choose a terminal with more
+advanced features, as defined in your system's terminfo database.
+Emacs will use this option as the value for @env{TERM} so long as
+@code{system-uses-terminfo} is non-nil.
+
+Both @code{comint-terminfo-terminal} and @code{system-uses-terminfo}
+can be declared as connection-local to adjust these options to match
+what a remote system expects (@pxref{Connection Variables}).
@node Terminal emulator
@subsection Emacs Terminal Emulator
diff --git a/etc/NEWS b/etc/NEWS
index c1b8adc511..2a8a3f08e7 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -183,6 +183,14 @@ To improve security, if an sql product has ':password-in-comint' set
to t, a password supplied via the minibuffer will be sent in-process,
as opposed to via the command-line.
+** Comint
+
++++
+*** 'comint-term-environment' is now aware of connection-local variables.
+The option 'comint-terminfo-terminal' and variable
+'system-uses-terminfo' can now be set as connection-local variables to
+change the terminal used on a remote host.
+
\f
* New Modes and Packages in Emacs 29.1
diff --git a/lisp/comint.el b/lisp/comint.el
index e925b3a4b6..c114bdf758 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -889,12 +889,13 @@ comint-term-environment
;; and there is no way for us to define it here.
;; Some programs that use terminfo get very confused
;; if TERM is not a valid terminal type.
- (if (and (boundp 'system-uses-terminfo) system-uses-terminfo)
- (list (format "TERM=%s" comint-terminfo-terminal)
- "TERMCAP="
- (format "COLUMNS=%d" (window-width)))
- (list "TERM=emacs"
- (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width)))))
+ (with-connection-local-variables
+ (if system-uses-terminfo
+ (list (format "TERM=%s" comint-terminfo-terminal)
+ "TERMCAP="
+ (format "COLUMNS=%d" (window-width)))
+ (list "TERM=emacs"
+ (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))))
(defun comint-nonblank-p (str)
"Return non-nil if STR contains non-whitespace syntax."
--
2.25.1
next prev parent reply other threads:[~2021-10-28 15:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-26 22:54 bug#51426: 29.0.50; [PATCH] Should 'comint-term-environment' be connection-aware? Jim Porter
2021-10-27 8:20 ` Michael Albinus
2021-10-28 0:45 ` Jim Porter
2021-10-28 8:02 ` Michael Albinus
2021-10-28 15:49 ` Jim Porter [this message]
2021-10-28 16:48 ` Michael Albinus
2021-10-29 5:26 ` Jim Porter
2021-10-29 8:21 ` Michael Albinus
2021-10-29 16:39 ` Jim Porter
2021-10-30 15:43 ` Michael Albinus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=94c1e53f-98cb-8891-77d9-81f3c401149e@gmail.com \
--to=jporterbugs@gmail.com \
--cc=51426@debbugs.gnu.org \
--cc=michael.albinus@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).