Subject: bug#73332: 31.0.50; Whitespace-mode breaking font-locking

From: Jordan Ellis Coppard <[email-masked]>
Date: Wed, 18 Sep 2024 21:44:53 +0900

Hello,

Starting from `emacs -Q`:

With whitespace-mode enabled (no other configuration at all) in an Elisp
buffer (or any other I've tested such as Org) the last character at the
end of the buffer has all fontification removed (confirmed with 
describe-char) while typing and said character stays un-fontified until 
the buffer is re-formatted (say by killing it and re-opening, or by 
having whitespace cleanup occur).

Whitespace-mode should not be stripping all fontification of the last
character in a buffer while typing.

Open Emacs, create an Elisp buffer, enable whitespace-mode, and type a 
comment (easiest to visualise): `;; Foo bar baz`. Notice as you type 
this comment the last character has no fontification until a subsequent 
one is typed or the aforementioned buffer re-formatting occurs.

In GNU Emacs 31.0.50 (build 1, aarch64-apple-darwin23.5.0, NS
appkit-2487.60 Version 14.5 (Build 23F79)) of 2024-09-16 built on
yote.local
Windowing system distributor 'Apple', version 10.3.2487
System Description: macOS 14.5

Configured using:
'configure --prefix=/opt/local --disable-silent-rules --without-dbus
--without-gconf --without-libotf --without-m17n-flt --with-libgmp
--with-gnutls --with-xml2 --with-modules --with-sqlite3 --with-webp
--infodir /opt/local/share/info/emacs --with-native-compilation=no
--with-ns --with-lcms2 --without-harfbuzz --without-imagemagick
--without-xaw3d --with-rsvg --with-xwidgets
--with-native-compilation=aot --with-tree-sitter 'CFLAGS=-pipe -Os
-Wno-attributes
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch
arm64' 'CPPFLAGS=-I/opt/local/include
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk'
'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-no_pie
-Wl,-rpath /opt/local/lib/gcc14 -Wl,-rpath /opt/local/lib
-Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk
-arch arm64''

Configured features:
ACL GIF GLIB GMP GNUTLS JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY
KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM XWIDGETS ZLIB

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

Major mode: Help

Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
isearch-fold-quotes-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
minibuffer-regexp-mode: t
buffer-read-only: 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:
None found.

Features:
(shadow sort mail-extr cl-extra pp wid-edit descr-text help-mode
emacsbug message mailcap yank-media puny dired dired-loaddefs rfc822 mml
mml-sec password-cache epa derived epg rfc6068 epg-config gnus-util
text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils time-date subr-x cl-loaddefs cl-lib
disp-table whitespace rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win 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 xwidget-internal kqueue cocoa
ns lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 63491 38364) (symbols 48 22693 0) (strings 32 84115 2344)
(string-bytes 1 1921637) (vectors 16 10958)
(vector-slots 8 222175 45778) (floats 8 139 3) (intervals 56 774 32)
(buffers 992 14))