diff options
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/ibuffer.el | 52 |
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 @@ | |||
| 1 | 2008-01-16 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2008-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 |