GNU bug report logs - #78522
31.0.50; Conflict between standard-display-unicode-special-glyphs and whitespace-mode

Previous Next

Package: emacs;

Reported by: Ergus <spacibba <at> aol.com>

Date: Wed, 21 May 2025 00:12:01 UTC

Severity: normal

Found in version 31.0.50

To reply to this bug, email your comments to 78522 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#78522; Package emacs. (Wed, 21 May 2025 00:12:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ergus <spacibba <at> aol.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 21 May 2025 00:12:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ergus <spacibba <at> aol.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; Conflict between standard-display-unicode-special-glyphs
 and whitespace-mode
Date: Wed, 21 May 2025 02:11:16 +0200
Whitespace mode contradicts the standard-display-unicode-special-glyphs
effect

Reproduce:
;; -------------------------------
emacs -Q -nw
M-x standard-display-unicode-special-glyphs ;; This looks as expected
M-x whitespace-mode ;; reverts the effect
;; -------------------------------

The only way to get back the effect of
standard-display-unicode-special-glyphs is disabling whitespace-mode.



In GNU Emacs 31.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version
 3.24.49, cairo version 1.18.4) of 2025-05-19 built on RTX
Repository revision: b499898a5e6e27ecacfb6a60b22a2289afc589dd
Repository branch: project
System Description: Arch Linux

Configured using:
 'configure --prefix=/home/ergo/.local/ --with-mailutils --with-pgtk
 --with-modules --with-cairo --with-harfbuzz
 --with-native-compilation=aot
 '--program-transform-name=s/^ctags$/ctags.emacs/''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK
PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM GTK3 ZLIB

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

Major mode: Lisp Interaction

Minor modes in effect:
  global-auto-revert-mode: t
  recentf-mode: t
  electric-pair-mode: t
  flyspell-mode: t
  completion-preview-mode: t
  diff-hl-margin-mode: t
  global-corfu-mode: t
  corfu-mode: t
  fancy-compilation-mode: t
  winner-mode: t
  project-multi-mode: t
  gtags-mode: t
  repeat-mode: t
  xterm-mouse-mode: t
  tty-tip-mode: t
  xclip-mode: t
  override-global-mode: t
  save-place-mode: t
  delete-selection-mode: t
  savehist-mode: t
  global-display-fill-column-indicator-mode: t
  display-fill-column-indicator-mode: t
  global-display-line-numbers-mode: t
  display-line-numbers-mode: t
  which-key-mode: t
  tooltip-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/mnt/casa/gits/emacs_clones/gtags-mode/gtags-mode hides /home/ergo/.config/emacs/elpa/gtags-mode-1.8.6/gtags-mode
/home/ergo/.config/emacs/elpa/transient-20250516.1031/transient hides /home/ergo/.local/share/emacs/31.0.50/lisp/transient

Features:
(shadow sort mail-extr emacsbug lisp-mnt autorevert filenotify recentf
tree-widget ffap thingatpt elec-pair flyspell-correct flyspell ispell
completion-preview diff-hl-margin diff-hl-dired diff-hl log-view
log-edit message sendmail yank-media puny dired-x dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util
time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils
mailheader add-log pcvs-util vc-dir ewoc vc vc-dispatcher diff-mode
track-changes corfu fancy-compilation compile text-property-search
comint ansi-osc ansi-color comp-run comp-common winner cus-edit pp
cus-start cus-load wid-edit project-multi-mode gtags-mode files-x xref
project ring term/tmux term/xterm xterm init rx repeat cape compat
use-package-ensure package browse-url xdg url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source eieio
eieio-core cl-macs icons password-cache json subr-x map url-vars
use-package-diminish xt-mouse tty-tip xclip edmacro kmacro byte-opt
use-package-bind-key bind-key cl-extra help-mode simple-16-theme
saveplace delsel savehist easy-mmode display-fill-column-indicator
display-line-numbers diminish which-key cl-seq use-package-core
cl-loaddefs cl-lib bytecomp byte-compile gv disp-table info
arduino-cli-mode-autoloads auctex-autoloads tex-site avy-zap-autoloads
avy-autoloads benchmark-init-autoloads bufferlo-autoloads caml-autoloads
cape-autoloads clang-format-autoloads cobol-mode-autoloads
compile-multi-autoloads compiler-explorer-autoloads corfu-autoloads
crdt-autoloads csv-mode-autoloads d-mode-autoloads dape-autoloads
deadgrep-autoloads debbugs-autoloads diff-hl-autoloads
diminish-autoloads dired-sidebar-autoloads dired-subtree-autoloads
dired-hacks-utils-autoloads dumb-jump-autoloads e2ansi-autoloads
eglot-booster-autoloads emamux-autoloads eshell-toggle-autoloads
esup-autoloads evil-collection-autoloads annalist-autoloads
evil-leader-autoloads evil-autoloads face-explorer-autoloads
fancy-compilation-autoloads flx-autoloads flymake-nasm-autoloads
flymake-quickdef-autoloads flyspell-correct-autoloads
git-commit-ts-mode-autoloads git-modes-autoloads
git-timemachine-autoloads gnuplot-autoloads goto-chg-autoloads
groovy-mode-autoloads gtags-mode-autoloads haskell-mode-autoloads
highlight-indent-guides-autoloads i3wm-config-mode-autoloads
ibuffer-sidebar-autoloads iedit-autoloads imenu-list-autoloads
julia-ts-mode-autoloads julia-mode-autoloads languagetool-autoloads
lice-autoloads lorem-ipsum-autoloads lua-mode-autoloads magit-autoloads
magit-section-autoloads llama-autoloads move-dup-autoloads
multiple-cursors-autoloads mutt-mode-autoloads nasm-mode-autoloads
neotree-autoloads nftables-mode-autoloads nginx-mode-autoloads
notmuch-autoloads objed-autoloads phi-search-autoloads
pkgbuild-mode-autoloads plz-autoloads popup-autoloads
protobuf-ts-mode-autoloads scopeline-autoloads shell-command+-autoloads
slime-autoloads macrostep-autoloads sphinx-mode-autoloads f-autoloads
s-autoloads dash-autoloads spinner-autoloads ssh-config-mode-autoloads
string-inflection-autoloads sudo-edit-autoloads systemd-autoloads
tmux-mode-autoloads transient-autoloads urgrep-autoloads vdiff-autoloads
hydra-autoloads lv-autoloads vterm-toggle-autoloads vterm-autoloads
vundo-autoloads with-editor-autoloads xclip-autoloads
yasnippet-snippets-autoloads yasnippet-autoloads early-init rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
term/common-win touch-screen pgtk-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
lcms2 multi-tty move-toolbar make-network-process tty-child-frames
native-compile emacs)

Memory information:
((conses 16 233090 116420) (symbols 48 16647 5)
 (strings 32 64231 14974) (string-bytes 1 2019767) (vectors 16 21192)
 (vector-slots 8 249206 25888) (floats 8 116 283)
 (intervals 56 1657 0) (buffers 1064 12))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78522; Package emacs. (Wed, 21 May 2025 12:32:01 GMT) Full text and rfc822 format available.

Message #8 received at 78522 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ergus <spacibba <at> aol.com>,
 Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: 78522 <at> debbugs.gnu.org
Subject: Re: bug#78522: 31.0.50;
 Conflict between standard-display-unicode-special-glyphs and
 whitespace-mode
Date: Wed, 21 May 2025 15:31:02 +0300
> Date: Wed, 21 May 2025 02:11:16 +0200
> From:  Ergus via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> 
> Whitespace mode contradicts the standard-display-unicode-special-glyphs
> effect
> 
> Reproduce:
> ;; -------------------------------
> emacs -Q -nw
> M-x standard-display-unicode-special-glyphs ;; This looks as expected
> M-x whitespace-mode ;; reverts the effect
> ;; -------------------------------
> 
> The only way to get back the effect of
> standard-display-unicode-special-glyphs is disabling whitespace-mode.

Does the patch below fix the problem?

diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index 1042575..58ba0db 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -2480,7 +2480,8 @@ whitespace-display-char-on
 	;; Assure `buffer-display-table' is unique
 	;; when two or more windows are visible.
 	(setq buffer-display-table
-	      (copy-sequence buffer-display-table)))
+	      (copy-sequence (or buffer-display-table
+                                 standard-display-table))))
       (unless buffer-display-table
 	(setq buffer-display-table (make-display-table)))
       (dolist (entry whitespace-display-mappings)




This bug report was last modified 3 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.