Function: ibuffer-columnize-and-insert-list

ibuffer-columnize-and-insert-list is a byte-compiled function defined in ibuffer.el.gz.

Signature

(ibuffer-columnize-and-insert-list LIST &optional PAD-WIDTH)

Documentation

Insert LIST into the current buffer in as many columns as possible.

The maximum number of columns is determined by the current window width and the longest string in LIST.

Source Code

;; Defined in /usr/src/emacs/lisp/ibuffer.el.gz
;;; Utility functions
(defun ibuffer-columnize-and-insert-list (list &optional pad-width)
  "Insert LIST into the current buffer in as many columns as possible.
The maximum number of columns is determined by the current window
width and the longest string in LIST."
  (unless pad-width
    (setq pad-width 3))
  (let ((width (window-width))
	(max (+ (apply #'max (mapcar #'length list))
		pad-width)))
    (let ((columns (/ width max)))
      (when (zerop columns)
	(setq columns 1))
      (while list
	(dotimes (_ (1- columns))
	  (insert (concat (car list) (make-string (- max (length (car list)))
						  ?\s)))
	  (setq list (cdr list)))
	(when (not (null list))
	  (insert (pop list)))
	(insert "\n")))))