From: Richard Stallman <rms@gnu.org>
To: emacs-devel@gnu.org
Subject: Patch to term.el
Date: Sun, 05 Aug 2007 09:31:29 -0400 [thread overview]
Message-ID: <E1IHgCf-0007Rg-Bf@fencepost.gnu.org> (raw)
Would someone please install this patch (a tiny change)
in Emacs 22? It is a tiny change.
Date: Mon, 23 Jul 2007 12:22:56 -0700 (PDT)
From: Peter Povinec <pp_publiclists@yahoo.com>
To: Dan Nicolaescu <dann@ics.uci.edu>
In-Reply-To: <200707021728.l62HSpEj014971@oogie-boogie.ics.uci.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Message-ID: <831335.3790.qm@web57313.mail.re1.yahoo.com>
X-detected-kernel: FreeBSD 6.x (1)
X-Mailman-Approved-At: Mon, 23 Jul 2007 16:43:41 -0400
Cc: bug-gnu-emacs@gnu.org
Subject: Re: Setting term-default-fg-color/term-default-bg-color has no
effect
X-BeenThere: bug-gnu-emacs@gnu.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "Bug reports for GNU Emacs,
the Swiss army knife of text editors" <bug-gnu-emacs.gnu.org>
List-Unsubscribe: <http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs>,
<mailto:bug-gnu-emacs-request@gnu.org?subject=unsubscribe>
List-Archive: <http://lists.gnu.org/pipermail/bug-gnu-emacs>
List-Post: <mailto:bug-gnu-emacs@gnu.org>
List-Help: <mailto:bug-gnu-emacs-request@gnu.org?subject=help>
List-Subscribe: <http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs>,
<mailto:bug-gnu-emacs-request@gnu.org?subject=subscribe>
Sender: bug-gnu-emacs-bounces+rms=gnu.org@gnu.org
Errors-To: bug-gnu-emacs-bounces+rms=gnu.org@gnu.org
X-detected-kernel: Linux 2.6, seldom 2.4 (older, 4)
> Can you please describe exactly what are you doing and how? How did
> you test your patch?
The basic idea is the same as it was in Emacs 21. Take the user preferences
in terms of fg/bg colors as stored in term-default-fg-color and
term-default-bg-color and apply them consistently every time term-current-face
is set. This is done for the initial value of term-current-face, when the
terminal is reset in term-reset-terminal, and when the escape sequences
setting the default fg/bg colors are interpreted in term-handle-color-array.
Note that this was partially done already in term-handle-color-array, e.g. in
the case of setting reverse+invisible.
For the testing, I've tested with my color customizations, including colored
terminal prompt in csh. I verified the reverse video logic by running 'top'
and 'emacs -nw' inside an ansi-term, both with my customizations, and plain
emacs. Customizations to term-default-fg-color or term-default-bg-color while
one or more term sessions are running take effect as expected, e.g. by running
'reset'.
> >
> > ! (defcustom term-default-fg-color (face-foreground term-current-face)
> > "Default color for foreground in `term'."
> > :group 'term
> > :type 'string)
> >
> > ! (defcustom term-default-bg-color (face-background term-current-face)
> > "Default color for background in `term'."
> > :group 'term
> > :type 'string)
>
> This can't be right, term-current-face is nil when term.el is
> loaded...
See line 462 (in revision 1.89):
(defvar term-current-face 'default)
I'd agree the code would be easier to read if this line was moved, but as I
mentioned I didn't want to do any unnecessary changes to keep this a tiny
patch.
> > + ;;; Start with requested fg/bg.
> > + (setq term-current-face (list :background term-default-bg-color
> > + :foreground term-default-fg-color))
>
> We don't want forms that have side effects at the top level...
Moved to (term-mode) now.
The updated patch is below.
HTH,
--Peter
2007-07-23 Peter Povinec <ppovinec <at> yahoo.com>
* term.el: Honor term-default-fg-color and term-default-bg-color
settings when modifying term-current-face.
(term-default-fg-color, term-default-bg-color): initialized from
default term-current-face
(term-mode, term-reset-terminal): set term-current-face with
term-default-fg-color and term-default-bg-color
(term-handle-colors-array): term-current-face has term-default-fg-color
and term-default-bg-color after reset escape sequence
(term-handle-colors-array): set term-current-color with
term-default-fg/bg-color instead of ansi-term-color-vector when the
index (term-ansi-current-color or term-ansi-current-bg-color) is zero
*** /home/ppovinec/term.el.orig 2007-06-24 01:04:07.298996000 -0700
--- /home/ppovinec/term.el 2007-07-23 12:18:01.418489000 -0700
***************
*** 695,706 ****
;;; faces -mm
! (defcustom term-default-fg-color 'unspecified
"Default color for foreground in `term'."
:group 'term
:type 'string)
! (defcustom term-default-bg-color 'unspecified
"Default color for background in `term'."
:group 'term
:type 'string)
--- 695,706 ----
;;; faces -mm
! (defcustom term-default-fg-color (face-foreground term-current-face)
"Default color for foreground in `term'."
:group 'term
:type 'string)
! (defcustom term-default-bg-color (face-background term-current-face)
"Default color for background in `term'."
:group 'term
:type 'string)
***************
*** 1098,1103 ****
--- 1098,1105 ----
(make-local-variable 'term-pending-delete-marker)
(setq term-pending-delete-marker (make-marker))
(make-local-variable 'term-current-face)
+ (setq term-current-face (list :background term-default-bg-color
+ :foreground term-default-fg-color))
(make-local-variable 'term-pending-frame)
(setq term-pending-frame nil)
;; Cua-mode's keybindings interfere with the term keybindings, disable it.
***************
*** 3055,3061 ****
(setq term-scroll-start 0)
(setq term-scroll-end term-height)
(setq term-insert-mode nil)
! (setq term-current-face nil)
(setq term-ansi-current-underline nil)
(setq term-ansi-current-bold nil)
(setq term-ansi-current-reverse nil)
--- 3057,3064 ----
(setq term-scroll-start 0)
(setq term-scroll-end term-height)
(setq term-insert-mode nil)
! (setq term-current-face (list :background term-default-bg-color
! :foreground term-default-fg-color))
(setq term-ansi-current-underline nil)
(setq term-ansi-current-bold nil)
(setq term-ansi-current-reverse nil)
***************
*** 3117,3123 ****
;;; 0 (Reset) or unknown (reset anyway)
(t
! (setq term-current-face nil)
(setq term-ansi-current-underline nil)
(setq term-ansi-current-bold nil)
(setq term-ansi-current-reverse nil)
--- 3120,3127 ----
;;; 0 (Reset) or unknown (reset anyway)
(t
! (setq term-current-face (list :background term-default-bg-color
! :foreground term-default-fg-color))
(setq term-ansi-current-underline nil)
(setq term-ansi-current-bold nil)
(setq term-ansi-current-reverse nil)
***************
*** 3154,3164 ****
(setq term-current-face
(list :background
(if (= term-ansi-current-color 0)
! (face-foreground 'default)
(elt ansi-term-color-vector term-ansi-current-color))
:foreground
(if (= term-ansi-current-bg-color 0)
! (face-background 'default)
(elt ansi-term-color-vector term-ansi-current-bg-color))))
(when term-ansi-current-bold
(setq term-current-face
--- 3158,3168 ----
(setq term-current-face
(list :background
(if (= term-ansi-current-color 0)
! term-default-fg-color
(elt ansi-term-color-vector term-ansi-current-color))
:foreground
(if (= term-ansi-current-bg-color 0)
! term-default-bg-color
(elt ansi-term-color-vector term-ansi-current-bg-color))))
(when term-ansi-current-bold
(setq term-current-face
***************
*** 3181,3189 ****
)
(setq term-current-face
(list :foreground
! (elt ansi-term-color-vector term-ansi-current-color)
:background
(elt ansi-term-color-vector term-ansi-current-bg-color)))
(when term-ansi-current-bold
(setq term-current-face
(append '(:weight bold) term-current-face)))
--- 3185,3198 ----
)
(setq term-current-face
(list :foreground
! (if (= term-ansi-current-color 0)
! term-default-fg-color
! (elt ansi-term-color-vector
term-ansi-current-color))
:background
+ (if (= term-ansi-current-bg-color 0)
+ term-default-bg-color
(elt ansi-term-color-vector term-ansi-current-bg-color)))
+ )
(when term-ansi-current-bold
(setq term-current-face
(append '(:weight bold) term-current-face)))
____________________________________________________________________________________
next reply other threads:[~2007-08-05 13:31 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-05 13:31 Richard Stallman [this message]
2007-08-05 14:14 ` Patch to term.el Vinicius Jose Latorre
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=E1IHgCf-0007Rg-Bf@fencepost.gnu.org \
--to=rms@gnu.org \
--cc=emacs-devel@gnu.org \
/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).