aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/rect.el24
1 files changed, 24 insertions, 0 deletions
diff --git a/lisp/rect.el b/lisp/rect.el
index e440904912f..7e80734a19c 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -192,6 +192,30 @@ but instead winds up to the right of the rectangle."
192 (indent-to column))) 192 (indent-to column)))
193 193
194;;;###autoload 194;;;###autoload
195(defun fill-rectangle (start end text)
196 "Fill each line of the rectangle with corners at point and mark with
197text, shifting text right. The text previously in the region is not
198overwritten by the blanks, but instead winds up to the right of the
199rectangle. Called from a program, takes three args; START, END and
200TEXT."
201 (interactive "r\nsText:")
202 (operate-on-rectangle 'fill-rectangle-line start end nil)
203 (goto-char start))
204
205(defun fill-rectangle-line (startpos begextra endextra)
206 (let ((column (+ (current-column) begextra endextra)))
207 (goto-char startpos)
208 (let ((ocol (current-column)))
209 (skip-chars-forward " \t")
210 (setq column (+ column (- (current-column) ocol))))
211 (delete-region (point)
212 ;; Use skip-chars-backward's LIM argument to leave
213 ;; characters before STARTPOS undisturbed.
214 (progn (skip-chars-backward " \t" startpos)
215 (point)))
216 (insert text)))
217
218;;;###autoload
195(defun clear-rectangle (start end) 219(defun clear-rectangle (start end)
196 "Blank out rectangle with corners at point and mark. 220 "Blank out rectangle with corners at point and mark.
197The text previously in the region is overwritten by the blanks. 221The text previously in the region is overwritten by the blanks.