(goto-char start)
(while (search-forward "\t" end t)
(let ((width (- (current-column)
- (save-excursion (forward-char -1)
+ (save-excursion (backward-char 1)
(current-column)))))
(setq line (concat (substring line 0 (- (point) end 1))
(spaces-string width)
(defun open-rectangle-line (startcol endcol fill)
- (let (spaces)
- (when (= (move-to-column startcol (or fill 'coerce)) startcol)
- (unless (and (not fill)
- (= (point) (point-at-eol)))
- (indent-to endcol)))
- ))
+ (when (= (move-to-column startcol (or fill 'coerce)) startcol)
+ (unless (and (not fill)
+ (= (point) (point-at-eol)))
+ (indent-to endcol))))
;;;###autoload
(defun open-rectangle (start end &optional fill)
When called from a program, the rectangle's corners are START and END."
(interactive "*r\nsString rectangle: ")
+ (defvar pending-delete-mode)
(apply-on-rectangle 'string-rectangle-line start end string
(and (boundp 'pending-delete-mode) pending-delete-mode)))
+;;;###autoload
(defun replace-rectangle (start end string)
"Like `string-rectangle', but unconditionally replace the original region,
as if `pending-delete-mode' were active."