1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

* simple.el (undo-elt-in-region): Fix buffer corruption for edge

case of undo in region.
* automated/undo-tests.el (undo-test-in-region-not-most-recent):
Add new test of undo in region.
(undo-test-in-region-eob): Add test case described at
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16411#41
This commit is contained in:
Barry O'Reilly 2014-03-02 12:37:32 -05:00
parent b923819c10
commit e3d090b4c5
4 changed files with 55 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2014-03-02 Barry O'Reilly <gundaetiapo@gmail.com>
* simple.el (undo-elt-in-region): Fix buffer corruption for edge
case of undo in region.
2014-03-02 Martin Rudalics <rudalics@gmx.at>
* window.el (fit-window-to-buffer): Fix argument in window-size

View File

@ -2426,7 +2426,7 @@ If it crosses the edge, we return nil."
((stringp (car undo-elt))
;; (TEXT . POSITION)
(and (>= (abs (cdr undo-elt)) start)
(< (abs (cdr undo-elt)) end)))
(<= (abs (cdr undo-elt)) end)))
((and (consp undo-elt) (markerp (car undo-elt)))
;; This is a marker-adjustment element (MARKER . ADJUSTMENT).
;; See if MARKER is inside the region.

View File

@ -1,3 +1,10 @@
2014-03-02 Barry O'Reilly <gundaetiapo@gmail.com>
* automated/undo-tests.el (undo-test-in-region-not-most-recent):
Add new test of undo in region.
(undo-test-in-region-eob): Add test case described at
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16411
2014-02-28 Michael Albinus <michael.albinus@gmx.de>
* automated/tramp-tests.el (tramp--test-enabled)

View File

@ -226,6 +226,48 @@
(should-not (buffer-modified-p))))
(delete-file tempfile))))
(ert-deftest undo-test-in-region-not-most-recent ()
"Test undo in region of an edit not the most recent."
(with-temp-buffer
(buffer-enable-undo)
(transient-mark-mode 1)
(insert "1111")
(undo-boundary)
(goto-char 2)
(insert "2")
(forward-char 2)
(undo-boundary)
(insert "3")
(undo-boundary)
;; Highlight around "2", not "3"
(push-mark (+ 3 (point-min)) t t)
(setq mark-active t)
(goto-char (point-min))
(undo)
(should (string= (buffer-string)
"11131"))))
(ert-deftest undo-test-in-region-eob ()
"Test undo in region of a deletion at EOB, demonstrating bug 16411."
(with-temp-buffer
(buffer-enable-undo)
(transient-mark-mode 1)
(insert "This sentence corrupted?")
(undo-boundary)
;; Same as recipe at
;; http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16411
(insert "aaa")
(undo-boundary)
(undo)
;; Select entire buffer
(push-mark (point) t t)
(setq mark-active t)
(goto-char (point-min))
;; Should undo the undo of "aaa", ie restore it.
(undo)
(should (string= (buffer-string)
"This sentence corrupted?aaa"))))
(defun undo-test-all (&optional interactive)
"Run all tests for \\[undo]."
(interactive "p")