Subject: bug#79200: 31.0.50; Duplicated elements for '#<marker at' in buffer-undo-list

From: Gerd Möllmann <[email-masked]>
Date: Sat, 09 Aug 2025 15:33:56 +0200

Gerd Möllmann <[email-masked]> writes:

> Another thought: the format_mode_line_unwind is only called from
> display_mode_line (redisplay) and format-mode-line. Why does soemthing
> land in the undo list at all? DOes that make sense at all?

jit-lock uses this, which turns undo recording off

subr.el:
 5253 (defmacro with-silent-modifications (&rest body)
 5254   "Execute BODY, pretending it does not modify the buffer.
 5255 This macro is typically used around modifications of
 5256 text properties that do not really affect the buffer's content.
 5257 If BODY performs real modifications to the buffer's text, other
 5258 than cosmetic ones, undo data may become corrupted.
 5259 
 5260 This macro will run BODY normally, but doesn't count its buffer
 5261 modifications as being buffer modifications.  This affects things
 5262 like `buffer-modified-p', checking whether the file is locked by
 5263 someone else, running buffer modification hooks, and other things
 5264 of that nature."
 5265   (declare (debug t) (indent 0))
 5266   (let ((modified (make-symbol "modified")))
 5267     `(let* ((,modified (buffer-modified-p))
 5268             (buffer-undo-list t)
                   ^^^^^^^^^^^^^^^^^^
Maybe there specbinds missing somewhere.