# HG changeset patch # User Gerd Moellmann # Date 988109786 0 # Node ID d5ed9aa37aa29c1a8cd8e0722b01ceb7e94f77b9 # Parent 9161434725989c66aec83cf84354a779e9a88362 (string-rectangle): Revert to 20.x behaviour. (replace-rectangle): Make it an alias for string-rectangle. (string-insert-rectangle): New function. diff -r 916143472598 -r d5ed9aa37aa2 lisp/rect.el --- a/lisp/rect.el Tue Apr 24 06:33:40 2001 +0000 +++ b/lisp/rect.el Tue Apr 24 10:56:26 2001 +0000 @@ -1,6 +1,6 @@ ;;; rect.el --- rectangle functions for GNU Emacs. -;; Copyright (C) 1985, 1999 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1999, 2000, 2001 Free Software Foundation, Inc. ;; Maintainer: Didier Verna ;; Keywords: internal @@ -305,8 +305,7 @@ (defun delete-whitespace-rectangle-line (startcol endcol fill) (when (= (move-to-column-force startcol (or fill 'coerce)) startcol) (unless (= (point) (point-at-eol)) - (delete-region (point) (progn (skip-syntax-forward " ") (point)))) - )) + (delete-region (point) (progn (skip-syntax-forward " ") (point)))))) ;;;###autoload (defalias 'close-rectangle 'delete-whitespace-rectangle) ;; Old name ;;;###autoload @@ -326,22 +325,6 @@ ;; to string-rectangle-line. (defvar string-rectangle-string) -;;;###autoload -(defun string-rectangle (start end string) - "Insert STRING on each line of the region-rectangle, shifting text right. - -When called from a program the rectangle's corners are START and END. -The left edge of the rectangle specifies the column for insertion. -This command does not delete or overwrite any existing text." - (interactive "*r\nsString rectangle: ") - ;; XEmacs tests `pending-delete-mode' here, and replaces the - ;; rectangle if that's on. Using `delete-selection-mode' here would - ;; only be useful if `mark-even-if-inactive' is on since otherwise - ;; we need the mark to be active, given the interactive spec, and - ;; then we'd always delete. Maybe revisit this and consider testing - ;; `mark-even-if-inactive' too? - (apply-on-rectangle 'string-rectangle-line start end string nil)) - (defun string-rectangle-line (startcol endcol string delete) (move-to-column-force startcol) (if delete @@ -349,11 +332,26 @@ (insert string)) ;;;###autoload -(defun replace-rectangle (start end string) - "Like `string-rectangle', but replace the original region." +(defun string-rectangle (start end string) + "Replace rectangle contents with STRING on each line. +The length of STRING need not be the same as the rectangle width. + +Called from a program, takes three args; START, END and STRING." (interactive "*r\nsString rectangle: ") (apply-on-rectangle 'string-rectangle-line start end string t)) +(defalias 'replace-rectangle 'string-rectangle) + +;;;###autoload +(defun string-insert-rectangle (start end string) + "Insert STRING on each line of region-rectangle, shifting text right. + +When called from a program, the rectangle's corners are START and END. +The left edge of the rectangle specifies the column for insertion. +This command does not delete or overwrite any existing text." + (interactive "*r\nsString insert rectangle: ") + (apply-on-rectangle 'string-rectangle-line start end string nil)) + ;;;###autoload (defun clear-rectangle (start end &optional fill) "Blank out the region-rectangle. @@ -377,8 +375,7 @@ (move-to-column-force endcol) (setq spaces (- (point) pt)) (delete-region pt (point)) - (indent-to (+ (current-column) spaces)))) - )) + (indent-to (+ (current-column) spaces)))))) (provide 'rect)