Function: delimit-columns-rectangle-line
delimit-columns-rectangle-line is a byte-compiled function defined in
delim-col.el.gz.
Signature
(delimit-columns-rectangle-line STARTPOS &optional BEGEXTRA ENDEXTRA)
Source Code
;; Defined in /usr/src/emacs/lisp/delim-col.el.gz
(defun delimit-columns-rectangle-line (startpos &optional _begextra _endextra)
(let ((len (length delimit-columns-max))
(ncol 0)
origin)
(set-marker delimit-columns-limit (point))
(goto-char startpos)
;; skip initial columns
(while (and (< ncol delimit-columns-start)
(< (point) delimit-columns-limit)
(re-search-forward delimit-columns-separator
delimit-columns-limit 'move))
(setq ncol (1+ ncol)))
;; insert first formatting
(insert delimit-columns-str-before delimit-columns-before)
;; Adjust all columns but last one
(while (progn
(setq origin (current-column))
(and (< (point) delimit-columns-limit)
(re-search-forward delimit-columns-separator
delimit-columns-limit 'move)
(or (< ncol delimit-columns-end)
(progn
(goto-char (match-beginning 0))
nil))))
(delete-region (match-beginning 0) (point))
(delimit-columns-format
(and delimit-columns-format
(make-string (- (aref delimit-columns-max ncol)
(- (current-column) origin))
?\s)))
(setq ncol (1+ ncol)))
;; Prepare last column spaces
(let ((spaces (and delimit-columns-format
(make-string (- (aref delimit-columns-max ncol)
(- (current-column) origin))
?\s))))
;; Adjust extra columns, if needed
(and delimit-columns-extra
(while (and (< (setq ncol (1+ ncol)) len)
(<= ncol delimit-columns-end))
(delimit-columns-format spaces)
(setq spaces (and delimit-columns-format
(make-string (aref delimit-columns-max ncol)
?\s)))))
;; insert last formatting
(cond ((null delimit-columns-format)
(insert delimit-columns-after delimit-columns-str-after))
((eq delimit-columns-format 'padding)
(insert spaces delimit-columns-after delimit-columns-str-after))
(t
(insert delimit-columns-after spaces delimit-columns-str-after))))
(goto-char (max (point) delimit-columns-limit))))