Function: cua--rectangle-aux-replace
cua--rectangle-aux-replace is a byte-compiled function defined in
cua-rect.el.gz.
Signature
(cua--rectangle-aux-replace WIDTH ADJUST KEEP REPLACE PAD FORMAT-FCT &optional SETUP-FCT)
Source Code
;; Defined in /usr/src/emacs/lisp/emulation/cua-rect.el.gz
;;; Replace/rearrange text in current rectangle
(defun cua--rectangle-aux-replace (width adjust keep replace pad format-fct &optional setup-fct)
(declare (indent 4))
;; Process text inserted by calling SETUP-FCT or current rectangle if nil.
;; Then call FORMAT-FCT on text (if non-nil); takes two args: start and end.
;; Fill to WIDTH characters if > 0 or fill to current width if == 0.
;; Don't fill if WIDTH < 0.
;; Replace current rectangle by filled text if REPLACE is non-nil
(let ((auxbuf (get-buffer-create "*CUA temp*"))
(w (if (> width 1) width
(- (cua--rectangle-right) (cua--rectangle-left) -1)))
(r (or setup-fct (cua--extract-rectangle)))
y z (tr 0))
(with-current-buffer auxbuf
(erase-buffer)
(if setup-fct
(funcall setup-fct)
(cua--insert-rectangle r))
(if format-fct
(let ((fill-column w))
(funcall format-fct (point-min) (point-max))))
(when replace
(goto-char (point-min))
(while (not (eobp))
(setq z (cons (filter-buffer-substring (point) (line-end-position)) z))
(forward-line 1))))
(if (not cua--debug)
(kill-buffer auxbuf))
(when replace
(setq z (reverse z))
(if cua--debug
(print z auxbuf))
(cua--rectangle-operation nil nil t pad nil
(lambda (s e l _r)
(let (cc)
(goto-char e)
(skip-chars-forward " \t")
(setq cc (current-column))
(if cua--debug
(print (list cc s e) auxbuf))
(delete-region s (point))
(if (not z)
(setq y 0)
(move-to-column l t)
(insert (car z))
(when (> (current-column) (+ l w))
(setq y (point))
(move-to-column (+ l w) t)
(delete-region (point) y)
(setq tr (1+ tr)))
(setq z (cdr z)))
(if cua--debug
(print (list (current-column) cc) auxbuf))
(just-one-space 0)
(indent-to cc))))
(if (> tr 0)
(message "Warning: Truncated %d row%s" tr (if (> tr 1) "s" "")))
(if adjust
(cua--rectangle-right (+ (cua--rectangle-left) w -1)))
(if keep
(cua--rectangle-resized)))))