Mercurial > emacs
changeset 58299:40fc4ca7acc0
(list-buffers-noselect): Massage to fit in 80 columns.
Replace mapcar->dolist, format->string.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 17 Nov 2004 17:12:57 +0000 |
parents | 064c1eb5f5ae |
children | 7b70b40dbfc7 |
files | lisp/buff-menu.el |
diffstat | 1 files changed, 46 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/buff-menu.el Wed Nov 17 12:05:26 2004 +0000 +++ b/lisp/buff-menu.el Wed Nov 17 17:12:57 2004 +0000 @@ -1,7 +1,7 @@ ;;; buff-menu.el --- buffer menu main function and support functions -;; Copyright (C) 1985, 86, 87, 93, 94, 95, 2000, 2001, 2002, 03, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2000, 2001, 2002, 2003, +;; 2004 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: convenience @@ -652,7 +652,7 @@ " " (Buffer-menu-make-sort-button "Mode" 4) mode-end (Buffer-menu-make-sort-button "File" 5) "\n")) - list desired-point name mode file) + list desired-point) (when Buffer-menu-use-header-line (let ((pos 0)) ;; Turn spaces in the header into stretch specs so they work @@ -672,44 +672,48 @@ (insert (Buffer-menu-buffer+size "------" "----")) (insert " ----" mode-end "----\n") (put-text-property 1 (point) 'intangible t)) - (setq list - (or buffer-list - (delq t - (mapcar - (lambda (buffer) - (with-current-buffer buffer - (setq name (buffer-name) - mode (concat (format-mode-line mode-name nil nil buffer) - (if mode-line-process - (format-mode-line mode-line-process nil nil buffer))) - file (buffer-file-name)) - (cond - ;; Don't mention internal buffers. - ((and (string= (substring name 0 1) " ") (null file))) - ;; Maybe don't mention buffers without files. - ((and files-only (not file))) - ((string= name "*Buffer List*")) - ;; Otherwise output info. - (t - (unless file - ;; No visited file. Check local value of - ;; list-buffers-directory. - (when (and (boundp 'list-buffers-directory) - list-buffers-directory) - (setq file list-buffers-directory))) - (list buffer - (format "%c%c%c " - (if (eq buffer old-buffer) ?. ? ) - ;; Handle readonly status. The output buffer is special - ;; cased to appear readonly; it is actually made so at a - ;; later date. - (if (or (eq buffer standard-output) - buffer-read-only) - ?% ? ) - ;; Identify modified buffers. - (if (buffer-modified-p) ?* ? )) - name (buffer-size) mode file))))) - (buffer-list))))) + (if buffer-list + (setq list buffer-list) + ;; Collect info for every buffer we're interested in. + (dolist (buffer (buffer-list)) + (with-current-buffer buffer + (let ((name (buffer-name)) + (file buffer-file-name)) + (cond + ;; Don't mention internal buffers. + ((and (string= (substring name 0 1) " ") (null file))) + ;; Maybe don't mention buffers without files. + ((and files-only (not file))) + ((string= name "*Buffer List*")) + ;; Otherwise output info. + (t + (let ((mode (concat (format-mode-line mode-name nil nil buffer) + (if mode-line-process + (format-mode-line mode-line-process + nil nil buffer)))) + (bits (string + (if (eq buffer old-buffer) ?. ?\ ) + ;; Handle readonly status. The output buffer + ;; is special cased to appear readonly; it is + ;; actually made so at a later date. + (if (or (eq buffer standard-output) + buffer-read-only) + ?% ?\ ) + ;; Identify modified buffers. + (if (buffer-modified-p) ?* ?\ ) + ;; Space separator. + ?\ ))) + (unless file + ;; No visited file. Check local value of + ;; list-buffers-directory. + (when (and (boundp 'list-buffers-directory) + list-buffers-directory) + (setq file list-buffers-directory))) + (push (list buffer bits name (buffer-size) mode file) + list))))))) + ;; Preserve the original buffer-list ordering, just in case. + (setq list (nreverse list))) + ;; Place the buffers's info in the output buffer, sorted if necessary. (dolist (buffer (if Buffer-menu-sort-column (sort list @@ -754,5 +758,5 @@ (set-buffer-modified-p nil) (current-buffer)))) -;;; arch-tag: e7dfcfc9-6cb2-46e4-bf55-8ef1936d83c6 +;; arch-tag: e7dfcfc9-6cb2-46e4-bf55-8ef1936d83c6 ;;; buff-menu.el ends here