Function: mouse-buffer-menu-alist
mouse-buffer-menu-alist is a byte-compiled function defined in
mouse.el.gz.
Signature
(mouse-buffer-menu-alist BUFFERS)
Source Code
;; Defined in /usr/src/emacs/lisp/mouse.el.gz
(defun mouse-buffer-menu-alist (buffers)
(let (tail
(maxlen 0)
head)
(setq buffers
(sort buffers
(lambda (elt1 elt2)
(string< (buffer-name elt1) (buffer-name elt2)))))
(setq tail buffers)
(while tail
(or (eq ?\s (aref (buffer-name (car tail)) 0))
(setq maxlen
(max maxlen
(length (buffer-name (car tail))))))
(setq tail (cdr tail)))
(setq tail buffers)
(while tail
(let ((elt (car tail)))
(if (/= (aref (buffer-name elt) 0) ?\s)
(setq head
(cons
(cons
(format
(format "%%-%ds %%s%%s %%s" maxlen)
(buffer-name elt)
(if (buffer-modified-p elt) "*" " ")
(with-current-buffer elt
(if buffer-read-only "%" " "))
(or (buffer-file-name elt)
(with-current-buffer elt
(if list-buffers-directory
(expand-file-name
list-buffers-directory)))
""))
elt)
head))))
(setq tail (cdr tail)))
;; Compensate for the reversal that the above loop does.
(nreverse head)))