GNU bug report logs - #24556
25.1.50; Undo partially broken in patch mode

Previous Next

Package: emacs;

Reported by: Clément Pit--Claudel <clement.pitclaudel <at> live.com>

Date: Wed, 28 Sep 2016 13:30:03 UTC

Severity: normal

Tags: confirmed

Found in version 25.1.50

To reply to this bug, email your comments to 24556 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#24556; Package emacs. (Wed, 28 Sep 2016 13:30:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Clément Pit--Claudel <clement.pitclaudel <at> live.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 28 Sep 2016 13:30:03 GMT) Full text and rfc822 format available.

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

From: Clément Pit--Claudel <clement.pitclaudel <at> live.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 25.1.50; Undo partially broken in patch mode
Date: Wed, 28 Sep 2016 09:28:43 -0400
[Message part 1 (text/plain, inline)]
Recipe in emacs -Q:

* Open a patch or diff file
* Press C-c C-d [diff-unified->context]
* Press C-_ [undo]

Undo fails with the following backtrace:

Debugger entered--Lisp error: (error "Changes to be undone by function different than announced")
  signal(error ("Changes to be undone by function different than announced"))
  error("Changes to be undone by function different than announced")
  primitive-undo(1 ((apply -274 1289 9209 diff-context->unified 1289 9209) (apply -271 514 1289 diff-context->unified 514 1289) (#("---" 0 3 (fontified t face diff-header)) . 478) (481 . 484) (#("+++" 0 3 (fontified t face diff-header)) . 496) (t 22126 61486 433935 691000) (t 22126 61486 433935 691000) (499 . 502) (t 22126 61486 433935 691000)))
  undo-more(1)
  undo(nil)
  funcall-interactively(undo nil)
  call-interactively(undo nil nil)
  command-execute(undo)

Clément.

In GNU Emacs 25.1.50.7 (x86_64-pc-linux-gnu, GTK+ Version 3.18.9)
 of 2016-07-20 built on clem-w50-mint
Repository revision: a1a0c208e3e895a6ea0942e8e5c4077faf12c7ad
Windowing system distributor 'The X.Org Foundation', version 11.0.11803000
System Description:	Linux Mint 18 Sarah

[signature.asc (application/pgp-signature, attachment)]

Added tag(s) confirmed. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Tue, 25 Jun 2019 00:14:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24556; Package emacs. (Tue, 25 Jun 2019 00:16:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Clément Pit--Claudel <clement.pitclaudel <at> live.com>
Cc: 24556 <at> debbugs.gnu.org
Subject: Re: bug#24556: 25.1.50; Undo partially broken in patch mode
Date: Tue, 25 Jun 2019 02:15:51 +0200
Clément Pit--Claudel <clement.pitclaudel <at> live.com> writes:

> Recipe in emacs -Q:
>
> * Open a patch or diff file
> * Press C-c C-d [diff-unified->context]
> * Press C-_ [undo]
>
> Undo fails with the following backtrace:
>
> Debugger entered--Lisp error: (error "Changes to be undone by function different than announced")
>   signal(error ("Changes to be undone by function different than announced"))

I can confirm that this is still the case.

This code in diff-unified->context certainly looks like a likely culprit:

		(unless (or (not reversible) (eq buffer-undo-list t))
                  ;; Drop the many undo entries and replace them with
                  ;; a single entry that uses diff-context->unified to do
                  ;; the work.
		  (setq buffer-undo-list
			(cons (list 'apply (- old-end end) start (point-max)
				    'diff-context->unified start (point-max))
			      old-undo)))))))))))


-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




This bug report was last modified 5 years and 356 days ago.

Previous Next


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