diff options
author | Eric S. Raymond <esr@snark.thyrsus.com> | 1993-03-27 01:58:26 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@snark.thyrsus.com> | 1993-03-27 01:58:26 +0000 |
commit | 131ca136d1e3912684c8acba26423736712f0abb (patch) | |
tree | 47e28e47fda8672ba2a8ca2a65ebb74c87c8c5ed /lisp/rect.el | |
parent | b0912e2d9b3759d2e51ed7e23d1fe40c3325d717 (diff) | |
download | emacs-131ca136d1e3912684c8acba26423736712f0abb.tar.gz |
(fill-rectangle) Added. Inspired by Lynn Slater's insert-box package in LCD,
but the interface and implementation are different.
Diffstat (limited to 'lisp/rect.el')
-rw-r--r-- | lisp/rect.el | 24 |
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." (indent-to column))) ;;;###autoload +(defun fill-rectangle (start end text) + "Fill each line of the rectangle with corners at point and mark with +text, shifting text right. The text previously in the region is not +overwritten by the blanks, but instead winds up to the right of the +rectangle. Called from a program, takes three args; START, END and +TEXT." + (interactive "r\nsText:") + (operate-on-rectangle 'fill-rectangle-line start end nil) + (goto-char start)) + +(defun fill-rectangle-line (startpos begextra endextra) + (let ((column (+ (current-column) begextra endextra))) + (goto-char startpos) + (let ((ocol (current-column))) + (skip-chars-forward " \t") + (setq column (+ column (- (current-column) ocol)))) + (delete-region (point) + ;; Use skip-chars-backward's LIM argument to leave + ;; characters before STARTPOS undisturbed. + (progn (skip-chars-backward " \t" startpos) + (point))) + (insert text))) + +;;;###autoload (defun clear-rectangle (start end) "Blank out rectangle with corners at point and mark. The text previously in the region is overwritten by the blanks. |