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

From: Óscar Fuentes <[email-masked]>
Date: Sat, 09 Aug 2025 14:00:07 +0200

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

> Gerd Möllmann <[email-masked]> writes:
>
>> Makes sense: no idea what that is, but it's something with mode-lines,
>> and what Pip found out is also the mode-line department. 
>
> And with Pip's patch applied, I can now longer reproduce the problem.

Applied the patch to igc (adding the call to detach_marker.) It took a
while of monkeying around, but eventually...

(nil (363 . 364) nil (354 . 363) nil (353 . 354) nil (352 . 353) nil
     (351 . 352) nil (#("
"
			0 1 (fontified t))
		      . 351)
     (#<marker (moves after insertion) at 351 in *scratch*> . 1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 363 in *scratch*> . -1)
     (#<marker at 363 in *scratch*> . -1)
     (#<marker in no buffer> . -1) nil
     (#("n" 0 1 (fontified t)) . 352)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 363 in *scratch*> . -1)
etc.

Bummer.

Looks like the patch puts igc on the same footing as master wrt the
required work to reproduce the problem.

As a side note, executing igc-collect removed some elements:

(nil (363 . 364) nil (354 . 363) nil (353 . 354) nil (352 . 353) nil
     (351 . 352) nil (#("
"
			0 1 (fontified t))
		      . 351)
     (#<marker (moves after insertion) at 351 in *scratch*> . 1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker at 364 in *scratch*> . -1)
     (#<marker in no buffer> . -1) (#<marker in no buffer> . -1)
     (#<marker in no buffer> . -1) nil
     (#("n" 0 1 (fontified t)) . 352)
etc.

Note that on my first copy&paste of buffer-undo-list the first sequence
of repeated elements was 8, but above it shows 6. The other repeated
sequences show a similar change.