aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2008-01-16 16:11:09 +0000
committerStefan Monnier2008-01-16 16:11:09 +0000
commit23eabff6db4307e484b26be2e94d0721544e9f2f (patch)
tree2e1bff3240a2c1ac1919d2eaccf701cd634e3431
parentb5c499629bb142f926cab4519194966baaecf911 (diff)
downloademacs-23eabff6db4307e484b26be2e94d0721544e9f2f.tar.gz
emacs-23eabff6db4307e484b26be2e94d0721544e9f2f.zip
(mode): Pass the buffer to format-mode-line.
(ibuffer-update-mode-name): Remove. (ibuffer-redisplay, ibuffer-update, ibuffer-mode): Don't call it. (ibuffer-mode): Use mode-line-process instead.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/ibuffer.el52
2 files changed, 27 insertions, 30 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 19155ed1b6b..6db94872819 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,10 @@
12008-01-16 Stefan Monnier <monnier@iro.umontreal.ca> 12008-01-16 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * ibuffer.el (mode): Pass the buffer to format-mode-line.
4 (ibuffer-update-mode-name): Remove.
5 (ibuffer-redisplay, ibuffer-update, ibuffer-mode): Don't call it.
6 (ibuffer-mode): Use mode-line-process instead.
7
3 * ibuf-ext.el (ibuffer-auto-update-changed, ibuffer-auto-mode): 8 * ibuf-ext.el (ibuffer-auto-update-changed, ibuffer-auto-mode):
4 Use derived-mode-p. 9 Use derived-mode-p.
5 (ibuffer-mark-by-mode-regexp): Pass the buffer to format-mode-line. 10 (ibuffer-mark-by-mode-regexp): Pass the buffer to format-mode-line.
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 9e6918e8020..0a26311541c 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -1722,7 +1722,7 @@ If point is on a group name, this function operates on that group."
1722 ('mouse-face 'highlight 1722 ('mouse-face 'highlight
1723 'keymap ibuffer-mode-name-map 1723 'keymap ibuffer-mode-name-map
1724 'help-echo "mouse-2: filter by this mode")) 1724 'help-echo "mouse-2: filter by this mode"))
1725 (format-mode-line mode-name)) 1725 (format-mode-line mode-name nil nil (current-buffer)))
1726 1726
1727(define-ibuffer-column process 1727(define-ibuffer-column process
1728 (:summarizer 1728 (:summarizer
@@ -2097,29 +2097,6 @@ the value of point at the beginning of the line for that buffer."
2097 (point)) 2097 (point))
2098 `(ibuffer-summary t))))) 2098 `(ibuffer-summary t)))))
2099 2099
2100(defun ibuffer-update-mode-name ()
2101 (setq mode-name (format "Ibuffer by %s" (if ibuffer-sorting-mode
2102 ibuffer-sorting-mode
2103 "view time")))
2104 (when ibuffer-sorting-reversep
2105 (setq mode-name (concat mode-name " [rev]")))
2106 (when (and (featurep 'ibuf-ext)
2107 ibuffer-auto-mode)
2108 (setq mode-name (concat mode-name " (Auto)")))
2109 (let ((result ""))
2110 (when (featurep 'ibuf-ext)
2111 (dolist (qualifier ibuffer-filtering-qualifiers)
2112 (setq result
2113 (concat result (ibuffer-format-qualifier qualifier))))
2114 (if ibuffer-use-header-line
2115 (setq header-line-format
2116 (when ibuffer-filtering-qualifiers
2117 (replace-regexp-in-string "%" "%%"
2118 (concat mode-name result))))
2119 (progn
2120 (setq mode-name (concat mode-name result))
2121 (when (boundp 'header-line-format)
2122 (setq header-line-format nil)))))))
2123 2100
2124(defun ibuffer-redisplay (&optional silent) 2101(defun ibuffer-redisplay (&optional silent)
2125 "Redisplay the current list of buffers. 2102 "Redisplay the current list of buffers.
@@ -2137,7 +2114,6 @@ If optional arg SILENT is non-nil, do not display progress messages."
2137 (message "No buffers! (note: filtering in effect)") 2114 (message "No buffers! (note: filtering in effect)")
2138 (error "No buffers!"))) 2115 (error "No buffers!")))
2139 (ibuffer-redisplay-engine blist t) 2116 (ibuffer-redisplay-engine blist t)
2140 (ibuffer-update-mode-name)
2141 (unless silent 2117 (unless silent
2142 (message "Redisplaying current buffer list...done")) 2118 (message "Redisplaying current buffer list...done"))
2143 (ibuffer-forward-line 0))) 2119 (ibuffer-forward-line 0)))
@@ -2174,7 +2150,6 @@ If optional arg SILENT is non-nil, do not display progress messages."
2174 (unless silent 2150 (unless silent
2175 (message "Updating buffer list...")) 2151 (message "Updating buffer list..."))
2176 (ibuffer-redisplay-engine blist arg) 2152 (ibuffer-redisplay-engine blist arg)
2177 (ibuffer-update-mode-name)
2178 (unless silent 2153 (unless silent
2179 (message "Updating buffer list...done"))) 2154 (message "Updating buffer list...done")))
2180 (if (eq ibuffer-shrink-to-minimum-size 'onewindow) 2155 (if (eq ibuffer-shrink-to-minimum-size 'onewindow)
@@ -2540,6 +2515,25 @@ will be inserted before the group at point."
2540 (use-local-map ibuffer-mode-map) 2515 (use-local-map ibuffer-mode-map)
2541 (setq major-mode 'ibuffer-mode) 2516 (setq major-mode 'ibuffer-mode)
2542 (setq mode-name "Ibuffer") 2517 (setq mode-name "Ibuffer")
2518 ;; Include state info next to the mode name.
2519 (set (make-local-variable mode-line-process)
2520 '((ibuffer-sorting-mode (:eval (symbol-name ibuffer-sorting-mode))
2521 "view time")
2522 (ibuffer-sorting-reversep " [rev]")
2523 (ibuffer-auto-mode " (Auto)")
2524 ;; Only list the filters if they're not already in the header-line.
2525 (header-line-format
2526 ""
2527 (:eval (if (functionp 'ibuffer-format-qualifier)
2528 (mapconcat 'ibuffer-format-qualifier
2529 ibuffer-filtering-qualifiers ""))))))
2530 (setq header-line-format
2531 (if ibuffer-use-header-line
2532 ;; Display the part that won't be in the mode-line.
2533 (mapcar (lambda (elem) (if (eq (car-safe elem) 'header-line-format)
2534 (nth 2 elem) elem))
2535 mode-line-process)))
2536
2543 (setq buffer-read-only t) 2537 (setq buffer-read-only t)
2544 (buffer-disable-undo) 2538 (buffer-disable-undo)
2545 (setq truncate-lines ibuffer-truncate-lines) 2539 (setq truncate-lines ibuffer-truncate-lines)
@@ -2578,9 +2572,7 @@ will be inserted before the group at point."
2578 (when ibuffer-default-directory 2572 (when ibuffer-default-directory
2579 (setq default-directory ibuffer-default-directory)) 2573 (setq default-directory ibuffer-default-directory))
2580 (add-hook 'change-major-mode-hook 'font-lock-defontify nil t) 2574 (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)
2581 (run-mode-hooks 'ibuffer-mode-hook) 2575 (run-mode-hooks 'ibuffer-mode-hook))
2582 ;; called after mode hooks to allow the user to add filters
2583 (ibuffer-update-mode-name))
2584 2576
2585(provide 'ibuffer) 2577(provide 'ibuffer)
2586 2578
@@ -2590,5 +2582,5 @@ will be inserted before the group at point."
2590;; coding: iso-8859-1 2582;; coding: iso-8859-1
2591;; End: 2583;; End:
2592 2584
2593;;; arch-tag: 72581688-0603-4954-b8cf-837c700f62e8 2585;; arch-tag: 72581688-0603-4954-b8cf-837c700f62e8
2594;;; ibuffer.el ends here 2586;;; ibuffer.el ends here