summaryrefslogtreecommitdiff
path: root/lisp/rect.el
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen <larsi@gnus.org>2011-07-14 17:23:08 +0200
committerLars Magne Ingebrigtsen <larsi@gnus.org>2011-07-14 17:23:08 +0200
commit7509a874332af5ea1ce20a36f7dccd207b5090c3 (patch)
tree6af229926b3d27a8cf04b3d12e4fae7bec87176d /lisp/rect.el
parent9d2dcee629762c5d361200fe943851b1f0313c4a (diff)
downloademacs-7509a874332af5ea1ce20a36f7dccd207b5090c3.tar.gz
Leave point at the end of the rectangle after replacing text
* rect.el (apply-on-rectangle): Return the point after the last operation. (string-rectangle): Go to the point after the last operation (bug#7522).
Diffstat (limited to 'lisp/rect.el')
-rw-r--r--lisp/rect.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/lisp/rect.el b/lisp/rect.el
index ad914cab7d2..0756ec3bc0a 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -93,8 +93,9 @@ Point is at the end of the segment of this line within the rectangle."
"Call FUNCTION for each line of rectangle with corners at START, END.
FUNCTION is called with two arguments: the start and end columns of the
rectangle, plus ARGS extra arguments. Point is at the beginning of line when
-the function is called."
- (let (startcol startpt endcol endpt)
+the function is called.
+The final point after the last operation will be returned."
+ (let (startcol startpt endcol endpt final-point)
(save-excursion
(goto-char start)
(setq startcol (current-column))
@@ -112,8 +113,9 @@ the function is called."
(goto-char startpt)
(while (< (point) endpt)
(apply function startcol endcol args)
+ (setq final-point (point))
(forward-line 1)))
- ))
+ final-point))
(defun delete-rectangle-line (startcol endcol fill)
(when (= (move-to-column startcol (if fill t 'coerce)) startcol)
@@ -323,7 +325,8 @@ Called from a program, takes three args; START, END and STRING."
(or (car string-rectangle-history) ""))
nil 'string-rectangle-history
(car string-rectangle-history)))))
- (apply-on-rectangle 'string-rectangle-line start end string t))
+ (goto-char
+ (apply-on-rectangle 'string-rectangle-line start end string t)))
;;;###autoload
(defalias 'replace-rectangle 'string-rectangle)