From: Colin Walters Date: Wed, 27 Mar 2002 22:19:24 +0000 (+0000) Subject: (ibuffer-help-buffer-modes): New variable. X-Git-Tag: ttn-vms-21-2-B4~15950 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=60356fb51b6219db944b87d2efb9aafde662c591;p=emacs.git (ibuffer-help-buffer-modes): New variable. (ibuffer-fontification-alist): Use it. (ibuffer-backward-line): Handle `ibuffer-summary' area. (ibuffer-forward-line): Ditto. --- diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index 441f0e02119..34e53ae217b 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el @@ -145,7 +145,7 @@ elisp byte-compiler." `((10 buffer-read-only font-lock-reference-face) (15 (string-match "^*" (buffer-name)) font-lock-keyword-face) (20 (string-match "^ " (buffer-name)) font-lock-warning-face) - (25 (memq major-mode '(help-mode apropos-mode info-mode)) font-lock-comment-face) + (25 (memq major-mode ibuffer-help-buffer-modes) font-lock-comment-face) (30 (eq major-mode 'dired-mode) font-lock-function-name-face)) "An alist describing how to fontify buffers. Each element should be of the form (PRIORITY FORM FACE), where @@ -284,6 +284,12 @@ directory, like `default-directory'." string) :group 'ibuffer) +(defcustom ibuffer-help-buffer-modes '(help-mode apropos-mode + Info-mode Info-edit-mode) + "List of \"Help\" major modes." + :type '(repeat function) + :group 'ibuffer) + (defcustom ibuffer-hooks nil "Hooks run when `ibuffer' is called." :type 'hook @@ -801,9 +807,15 @@ width and the longest string in LIST." (forward-line -1) (when (get-text-property (point) 'ibuffer-title) (goto-char (point-max)) + (beginning-of-line)) + (while (get-text-property (point) 'ibuffer-summary) (forward-line -1) - (setq arg 0)) - (setq arg (1- arg)))) + (beginning-of-line)) + ;; Handle the special case of no buffers. + (when (get-text-property (point) 'ibuffer-title) + (forward-line 1) + (setq arg 1)) + (decf arg))) (defun ibuffer-forward-line (&optional arg) "Move forward ARG lines, wrapping around the list if necessary." @@ -813,22 +825,14 @@ width and the longest string in LIST." (beginning-of-line) (if (< arg 0) (ibuffer-backward-line (- arg)) - (progn - (when (get-text-property (point) 'ibuffer-title) - ;; If we're already on the title, moving past it counts as - ;; moving a line. - (decf arg) - (while (and (get-text-property (point) 'ibuffer-title) - (not (eobp))) - (forward-line 1))) - (while (> arg 0) - (forward-line 1) - (when (eobp) - (goto-char (point-min))) - (while (and (get-text-property (point) 'ibuffer-title) - (not (eobp))) - (forward-line 1)) - (setq arg (1- arg)))))) + (while (> arg 0) + (forward-line 1) + (when (or (eobp) + (get-text-property (point) 'ibuffer-summary)) + (goto-char (point-min))) + (while (get-text-property (point) 'ibuffer-title) + (forward-line 1)) + (decf arg)))) (defun ibuffer-visit-buffer () "Visit the buffer on this line."