unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#24556: 25.1.50; Undo partially broken in patch mode
@ 2016-09-28 13:28 Clément Pit--Claudel
  2019-06-25  0:15 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 2+ messages in thread
From: Clément Pit--Claudel @ 2016-09-28 13:28 UTC (permalink / raw)
  To: 24556


[-- Attachment #1.1: Type: text/plain, Size: 1184 bytes --]

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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#24556: 25.1.50; Undo partially broken in patch mode
  2016-09-28 13:28 bug#24556: 25.1.50; Undo partially broken in patch mode Clément Pit--Claudel
@ 2019-06-25  0:15 ` Lars Ingebrigtsen
  0 siblings, 0 replies; 2+ messages in thread
From: Lars Ingebrigtsen @ 2019-06-25  0:15 UTC (permalink / raw)
  To: Clément Pit--Claudel; +Cc: 24556

Clément Pit--Claudel <clement.pitclaudel@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





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-06-25  0:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-28 13:28 bug#24556: 25.1.50; Undo partially broken in patch mode Clément Pit--Claudel
2019-06-25  0:15 ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).