]> git.eshelyaron.com Git - emacs.git/commitdiff
(list-buffers-noselect): Massage to fit in 80 columns.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 17 Nov 2004 17:12:57 +0000 (17:12 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 17 Nov 2004 17:12:57 +0000 (17:12 +0000)
Replace mapcar->dolist, format->string.

lisp/buff-menu.el

index 6512e09213aa7f247600edd5e53d8bc97a584f4e..910d6d6753f1c8a85ae0494a2c26cac7d181dc2e 100644 (file)
@@ -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 @@ For more information, see the function `buffer-menu'."
                         "  "
                         (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 @@ For more information, see the function `buffer-menu'."
        (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 @@ For more information, see the function `buffer-menu'."
       (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