[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 8c3245e 2/2: Make `undo' of `C-x r t' put point whe
From: |
Lars Ingebrigtsen |
Subject: |
[Emacs-diffs] master 8c3245e 2/2: Make `undo' of `C-x r t' put point where it should be |
Date: |
Wed, 27 Apr 2016 23:15:43 +0000 |
branch: master
commit 8c3245ef0107337d0a2284c58089e2e8e21e257c
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>
Make `undo' of `C-x r t' put point where it should be
* lisp/rect.el (string-rectangle): Make `undo' of a this
command put point back where it was (bug#7522).
---
lisp/rect.el | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/lisp/rect.el b/lisp/rect.el
index 6056b14..07e0f6f 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -476,10 +476,15 @@ Called from a program, takes three args; START, END and
STRING."
#'rectangle--string-erase-preview nil t)
(add-hook 'post-command-hook
#'rectangle--string-preview nil t))
- (read-string (format "String rectangle (default %s): "
- (or (car string-rectangle-history) ""))
- nil 'string-rectangle-history
+ (read-string (format "String rectangle (default %s): "
+ (or (car string-rectangle-history) ""))
+ nil 'string-rectangle-history
(car string-rectangle-history)))))))
+ ;; If we undo this change, we want to have the point back where we
+ ;; are now, and not after the first line in the rectangle (which is
+ ;; the first line to be changed by the following command).
+ (unless (eq buffer-undo-list t)
+ (push (point) buffer-undo-list))
(goto-char
(apply-on-rectangle 'string-rectangle-line start end string t)))