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:
parent
b923819c10
commit
e3d090b4c5
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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")
|
||||
|
Loading…
Reference in New Issue
Block a user