Subject: 25.0.50; Buffer-local value of face-remapping-alist leaks to other buffers

From: [email-masked] (Óscar Fuentes)
Date: Wed, 10 Dec 2014 19:24:19 +0100

emacs -Q

Eval this in *scratch* :

(dolist (b (buffer-list))
  (when (or (string= (buffer-name b) " *Echo Area 0*")
	    (string= (buffer-name b) " *Echo Area 1*"))
    (with-current-buffer b
      (make-local-variable 'face-remapping-alist)))
      (add-to-list 'face-remapping-alist
		   '(default (:background "green"))))

The minibuffer window now has a green background, as expected. Now do
`C-x b' to switch to another buffer. Now the *scratch* buffer also has
the green background.

If, instead of `C-x b', you press `C-j', part of the buffer remains with
the original background and the rest is painted green. Also, a "nil"
string is inserted in *scratch* everytime you press `C-j'. And the
minibuffer window reverts to its original background.

In GNU Emacs 25.0.50.2 (x86_64-unknown-linux-gnu, X toolkit)
 of 2014-11-18 on qcore
Repository revision: 07556b0299b33b52cf352581bfdd6554819eea30
Windowing system distributor `The X.Org Foundation', version 11.0.11600000
System Description:	Ubuntu 14.10

Configured using:
 `configure --without-toolkit-scroll-bars --with-x-toolkit=lucid'

Configured features:
XAW3D XPM JPEG TIFF GIF PNG SOUND GSETTINGS NOTIFY LIBXML2 FREETYPE XFT
ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix