emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/ibuffer.el


From: John Paul Wallington
Subject: [Emacs-diffs] Changes to emacs/lisp/ibuffer.el
Date: Thu, 23 Jan 2003 23:53:32 -0500

Index: emacs/lisp/ibuffer.el
diff -c emacs/lisp/ibuffer.el:1.47 emacs/lisp/ibuffer.el:1.48
*** emacs/lisp/ibuffer.el:1.47  Mon Dec  9 18:46:11 2002
--- emacs/lisp/ibuffer.el       Thu Jan 23 23:53:31 2003
***************
*** 3,9 ****
  ;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
  
  ;; Author: Colin Walters <address@hidden>
! ;; Maintainer: John Paul Wallington <address@hidden>
  ;; Created: 8 Sep 2000
  ;; Keywords: buffer, convenience
  
--- 3,9 ----
  ;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
  
  ;; Author: Colin Walters <address@hidden>
! ;; Maintainer: John Paul Wallington <address@hidden>
  ;; Created: 8 Sep 2000
  ;; Keywords: buffer, convenience
  
***************
*** 39,54 ****
  
  (require 'font-lock)
  
- ;;; Compatibility
- (eval-and-compile
-   (if (fboundp 'window-list)
-       (defun ibuffer-window-list ()
-       (window-list nil 'nomini))
-     (defun ibuffer-window-list ()
-       (let ((ibuffer-window-list-result nil))
-       (walk-windows #'(lambda (win) (push win ibuffer-window-list-result)) 
'nomini)
-       (nreverse ibuffer-window-list-result)))))
- 
  (defgroup ibuffer nil
    "An advanced replacement for `buffer-menu'.
  
--- 39,44 ----
***************
*** 148,154 ****
  evaluates to non-nil, then FACE will be put on the buffer name.  The
  element with the highest PRIORITY takes precedence.
  
! If you change this variable, you must kill the ibuffer buffer and
  recreate it for the change to take effect."
    :type '(repeat
          (list (integer :tag "Priority")
--- 138,144 ----
  evaluates to non-nil, then FACE will be put on the buffer name.  The
  element with the highest PRIORITY takes precedence.
  
! If you change this variable, you must kill the Ibuffer buffer and
  recreate it for the change to take effect."
    :type '(repeat
          (list (integer :tag "Priority")
***************
*** 180,187 ****
  (defcustom ibuffer-default-sorting-mode 'recency
    "The criteria by which to sort the buffers.
  
! Note that this variable is local to each ibuffer buffer.  Thus, you
! can have multiple ibuffer buffers open, each with a different sorted
  view of the buffers."
    :type '(choice (const :tag "Last view time" :value recency)
                 (const :tag "Lexicographic" :value alphabetic)
--- 170,177 ----
  (defcustom ibuffer-default-sorting-mode 'recency
    "The criteria by which to sort the buffers.
  
! Note that this variable is local to each Ibuffer buffer.  Thus, you
! can have multiple Ibuffer buffers open, each with a different sorted
  view of the buffers."
    :type '(choice (const :tag "Last view time" :value recency)
                 (const :tag "Lexicographic" :value alphabetic)
***************
*** 211,217 ****
  (defcustom ibuffer-maybe-show-predicates `(,(lambda (buf)
                                              (and (string-match "^ " 
(buffer-name buf))
                                                   (null buffer-file-name))))
!   "A list of predicates (a regexp or function) for buffers to display 
conditionally.
  If a regexp, then it will be matched against the buffer's name.
  If a function, it will be called with the buffer as an argument, and
  should return non-nil if this buffer should be shown.
--- 201,209 ----
  (defcustom ibuffer-maybe-show-predicates `(,(lambda (buf)
                                              (and (string-match "^ " 
(buffer-name buf))
                                                   (null buffer-file-name))))
!   "A list of predicates for buffers to display conditionally.
! 
! A predicate can be a regexp or a function.
  If a regexp, then it will be matched against the buffer's name.
  If a function, it will be called with the buffer as an argument, and
  should return non-nil if this buffer should be shown.
***************
*** 263,270 ****
    :group 'ibuffer)
  
  (defcustom ibuffer-always-show-last-buffer nil
!   "If non-nil, always display the previous buffer.  This variable
! takes precedence over filtering, and even
  `ibuffer-never-show-predicates'."
    :type '(choice (const :tag "Always" :value t)
                 (const :tag "Never" :value nil)
--- 255,262 ----
    :group 'ibuffer)
  
  (defcustom ibuffer-always-show-last-buffer nil
!   "If non-nil, always display the previous buffer.
! This variable takes precedence over filtering, and even
  `ibuffer-never-show-predicates'."
    :type '(choice (const :tag "Always" :value t)
                 (const :tag "Never" :value nil)
***************
*** 277,283 ****
    :group 'ibuffer)
  
  (defcustom ibuffer-default-directory nil
!   "The default directory to use for a new ibuffer buffer.
  If nil, inherit the directory of the buffer in which `ibuffer' was
  called.  Otherwise, this variable should be a string naming a
  directory, like `default-directory'."
--- 269,275 ----
    :group 'ibuffer)
  
  (defcustom ibuffer-default-directory nil
!   "The default directory to use for a new Ibuffer buffer.
  If nil, inherit the directory of the buffer in which `ibuffer' was
  called.  Otherwise, this variable should be a string naming a
  directory, like `default-directory'."
***************
*** 285,308 ****
                 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-hook nil
!   "Hooks run when `ibuffer' is called."
    :type 'hook
    :group 'ibuffer)
  (defvaralias 'ibuffer-hooks 'ibuffer-hook)
  
  (defcustom ibuffer-mode-hook nil
!   "Hooks run upon entry into `ibuffer-mode'."
    :type 'hook
    :group 'ibuffer)
  (defvaralias 'ibuffer-mode-hooks 'ibuffer-mode-hook)
  
  (defcustom ibuffer-marked-face 'font-lock-warning-face
    "Face used for displaying marked buffers."
    :type 'face
--- 277,305 ----
                 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-hook nil
!   "Hook run when `ibuffer' is called."
    :type 'hook
    :group 'ibuffer)
  (defvaralias 'ibuffer-hooks 'ibuffer-hook)
  
  (defcustom ibuffer-mode-hook nil
!   "Hook run upon entry into `ibuffer-mode'."
    :type 'hook
    :group 'ibuffer)
  (defvaralias 'ibuffer-mode-hooks 'ibuffer-mode-hook)
  
+ (defcustom ibuffer-load-hook nil
+   "Hook run when Ibuffer is loaded."
+   :type 'hook
+   :group 'ibuffer)
+ 
  (defcustom ibuffer-marked-face 'font-lock-warning-face
    "Face used for displaying marked buffers."
    :type 'face
***************
*** 331,336 ****
--- 328,334 ----
                       (regexp :tag "To")))
    :group 'ibuffer)
  
+ 
  (defvar ibuffer-mode-map nil)
  (defvar ibuffer-mode-operate-map nil)
  (defvar ibuffer-mode-groups-popup nil)
***************
*** 509,514 ****
--- 507,514 ----
      (define-key-after map [menu-bar view sort do-sort-by-recency]
        '(menu-item "Sort by view time" ibuffer-do-sort-by-recency
                  :help "Sort by the last time the buffer was displayed"))
+     (define-key-after map [menu-bar view sort dashes]
+       '("--"))
      (define-key-after map [menu-bar view sort invert-sorting]
        '(menu-item "Reverse sorting order" ibuffer-invert-sorting))
      (define-key-after map [menu-bar view sort toggle-sorting-mode]
***************
*** 558,564 ****
                               (cdr ibuffer-filtering-qualifiers))))
      (define-key-after map [menu-bar view filter save-filters]
        '(menu-item "Save current filters permanently..." ibuffer-save-filters
!                 :enable (and (featurep 'ibuf-ext) 
ibuffer-filtering-qualifiers)                 
                  :help "Use a mnemnonic name to store current filter stack"))
      (define-key-after map [menu-bar view filter switch-to-saved-filters]
        '(menu-item "Restore permanently saved filters..." 
ibuffer-switch-to-saved-filters
--- 558,564 ----
                               (cdr ibuffer-filtering-qualifiers))))
      (define-key-after map [menu-bar view filter save-filters]
        '(menu-item "Save current filters permanently..." ibuffer-save-filters
!                 :enable (and (featurep 'ibuf-ext) 
ibuffer-filtering-qualifiers)
                  :help "Use a mnemnonic name to store current filter stack"))
      (define-key-after map [menu-bar view filter switch-to-saved-filters]
        '(menu-item "Restore permanently saved filters..." 
ibuffer-switch-to-saved-filters
***************
*** 581,587 ****
                  :enable (and (featurep 'ibuf-ext) 
ibuffer-filtering-qualifiers)))
      (define-key-after groups-map [forward-filter-group]
        '(menu-item "Move point to the next filter group"
!                 ibuffer-forward-filter-group))    
      (define-key-after groups-map [backward-filter-group]
        '(menu-item "Move point to the previous filter group"
                  ibuffer-backward-filter-group))
--- 581,587 ----
                  :enable (and (featurep 'ibuf-ext) 
ibuffer-filtering-qualifiers)))
      (define-key-after groups-map [forward-filter-group]
        '(menu-item "Move point to the next filter group"
!                 ibuffer-forward-filter-group))
      (define-key-after groups-map [backward-filter-group]
        '(menu-item "Move point to the previous filter group"
                  ibuffer-backward-filter-group))
***************
*** 618,624 ****
        '(menu-item "Restore permanently saved filters..."
                  ibuffer-switch-to-saved-filter-groups
                  :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups)
!                 :help "Replace current filters with a saved stack"))    
      (define-key-after groups-map [delete-saved-filter-groups]
        '(menu-item "Delete permanently saved filter groups..."
                  ibuffer-delete-saved-filter-groups
--- 618,624 ----
        '(menu-item "Restore permanently saved filters..."
                  ibuffer-switch-to-saved-filter-groups
                  :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups)
!                 :help "Replace current filters with a saved stack"))
      (define-key-after groups-map [delete-saved-filter-groups]
        '(menu-item "Delete permanently saved filter groups..."
                  ibuffer-delete-saved-filter-groups
***************
*** 639,646 ****
        '(menu-item "Toggle Auto Mode" ibuffer-auto-mode
                  :help "Attempt to automatically update the Ibuffer buffer"))
      (define-key-after map [menu-bar view customize]
!       '(menu-item "Customize Ibuffer" (lambda () (interactive)
!                                       (customize-group 'ibuffer))
                  :help "Use Custom to customize Ibuffer"))
  
      (define-key-after map [menu-bar mark]
--- 639,645 ----
        '(menu-item "Toggle Auto Mode" ibuffer-auto-mode
                  :help "Attempt to automatically update the Ibuffer buffer"))
      (define-key-after map [menu-bar view customize]
!       '(menu-item "Customize Ibuffer" ibuffer-customize
                  :help "Use Custom to customize Ibuffer"))
  
      (define-key-after map [menu-bar mark]
***************
*** 751,764 ****
          ibuffer-mode-groups-popup (copy-keymap groups-map))))
  
  (define-key ibuffer-mode-groups-popup [kill-filter-group]
!       '(menu-item "Kill filter group"
!                 ibuffer-kill-line
!                 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
  (define-key ibuffer-mode-groups-popup [yank-filter-group]
!       '(menu-item "Yank last killed filter group"
!                 ibuffer-yank
!                 :enable (and (featurep 'ibuf-ext) 
ibuffer-filter-group-kill-ring)))
!  
  (defvar ibuffer-name-map nil)
  (unless ibuffer-name-map
    (let ((map (make-sparse-keymap)))
--- 750,763 ----
          ibuffer-mode-groups-popup (copy-keymap groups-map))))
  
  (define-key ibuffer-mode-groups-popup [kill-filter-group]
!   '(menu-item "Kill filter group"
!             ibuffer-kill-line
!             :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
  (define-key ibuffer-mode-groups-popup [yank-filter-group]
!   '(menu-item "Yank last killed filter group"
!             ibuffer-yank
!             :enable (and (featurep 'ibuf-ext) 
ibuffer-filter-group-kill-ring)))
! 
  (defvar ibuffer-name-map nil)
  (unless ibuffer-name-map
    (let ((map (make-sparse-keymap)))
***************
*** 875,887 ****
              (popup-menu ibuffer-mode-groups-popup))
          (let ((inhibit-read-only t))
            (ibuffer-save-marks
!            ;; hm.  we could probably do this in a better fashion
!            (ibuffer-unmark-all ?\r)
!            (save-excursion
!              (goto-char eventpt)
!              (ibuffer-set-mark ibuffer-marked-char))
!            (save-excursion
!              (popup-menu ibuffer-mode-operate-map)))))
        (setq buffer-read-only t)
        (if (= eventpt (point))
          (goto-char origpt)))))
--- 874,886 ----
              (popup-menu ibuffer-mode-groups-popup))
          (let ((inhibit-read-only t))
            (ibuffer-save-marks
!             ;; hm.  we could probably do this in a better fashion
!             (ibuffer-unmark-all ?\r)
!             (save-excursion
!               (goto-char eventpt)
!               (ibuffer-set-mark ibuffer-marked-char))
!             (save-excursion
!               (popup-menu ibuffer-mode-operate-map)))))
        (setq buffer-read-only t)
        (if (= eventpt (point))
          (goto-char origpt)))))
***************
*** 895,900 ****
--- 894,904 ----
      (forward-line direction)
      (beginning-of-line)))
  
+ (defun ibuffer-customize ()
+   "Begin customizing Ibuffer interactively."
+   (interactive)
+   (customize-group 'ibuffer))
+ 
  (defun ibuffer-backward-line (&optional arg skip-group-names)
    "Move backwards ARG lines, wrapping around the list if necessary."
    (interactive "P")
***************
*** 1030,1040 ****
                 (> (length marked-bufs) 3)
                 (not (y-or-n-p (format "Really create a new frame for %s 
buffers? "
                                        (length marked-bufs)))))
!      (set-buffer-modified-p nil)
        (delete-other-windows)
        (switch-to-buffer (pop marked-bufs))
        (let ((height (/ (1- (if (eq type 'horizontally) (frame-width)
!                              (frame-height)))
                       (1+ (length marked-bufs)))))
        (mapcar (if (eq type 'other-frame)
                    #'(lambda (buf)
--- 1034,1044 ----
                 (> (length marked-bufs) 3)
                 (not (y-or-n-p (format "Really create a new frame for %s 
buffers? "
                                        (length marked-bufs)))))
!       (set-buffer-modified-p nil)
        (delete-other-windows)
        (switch-to-buffer (pop marked-bufs))
        (let ((height (/ (1- (if (eq type 'horizontally) (frame-width)
!                            (frame-height)))
                       (1+ (length marked-bufs)))))
        (mapcar (if (eq type 'other-frame)
                    #'(lambda (buf)
***************
*** 1073,1079 ****
            (ibuffer-columnize-and-insert-list names)
            (goto-char (point-min))
            (setq buffer-read-only t))
!         (let ((lastwin (car (last (ibuffer-window-list)))))
            ;; Now attempt to display the buffer...
            (save-window-excursion
              (select-window lastwin)
--- 1077,1083 ----
            (ibuffer-columnize-and-insert-list names)
            (goto-char (point-min))
            (setq buffer-read-only t))
!         (let ((lastwin (car (last (window-list nil 'nomini)))))
            ;; Now attempt to display the buffer...
            (save-window-excursion
              (select-window lastwin)
***************
*** 1090,1100 ****
                     ;; Handle a failure
                     (if (or (> (incf attempts) 4)
                             (and (stringp (cadr err))
!              ;; This definitely falls in the ghetto hack category...
                                  (not (string-match "too small" (cadr err)))))
                         (apply #'signal err)
                       (enlarge-window 3))))))
-             ;; This part doesn't work correctly sometimes under XEmacs.
              (select-window (next-window))
              (switch-to-buffer buf)
              (unwind-protect
--- 1094,1104 ----
                     ;; Handle a failure
                     (if (or (> (incf attempts) 4)
                             (and (stringp (cadr err))
!                                 ;; This definitely falls in the 
!                                 ;; ghetto hack category...
                                  (not (string-match "too small" (cadr err)))))
                         (apply #'signal err)
                       (enlarge-window 3))))))
              (select-window (next-window))
              (switch-to-buffer buf)
              (unwind-protect
***************
*** 1111,1117 ****
  (defun ibuffer-buffer-names-with-mark (mark)
    (let ((ibuffer-buffer-names-with-mark-result nil))
      (ibuffer-map-lines-nomodify
!      #'(lambda (buf mk) 
         (when (char-equal mark mk)
           (push (buffer-name buf)
                 ibuffer-buffer-names-with-mark-result))))
--- 1115,1121 ----
  (defun ibuffer-buffer-names-with-mark (mark)
    (let ((ibuffer-buffer-names-with-mark-result nil))
      (ibuffer-map-lines-nomodify
!      #'(lambda (buf mk)
         (when (char-equal mark mk)
           (push (buffer-name buf)
                 ibuffer-buffer-names-with-mark-result))))
***************
*** 1267,1273 ****
        (progn
        (require 'ibuf-ext)
        (ibuffer-mark-on-buffer #'identity mark it))
!     (ibuffer-forward-line 0 t) 
      (let ((inhibit-read-only t))
        (while (> arg 0)
        (ibuffer-set-mark mark)
--- 1271,1277 ----
        (progn
        (require 'ibuf-ext)
        (ibuffer-mark-on-buffer #'identity mark it))
!     (ibuffer-forward-line 0 t)
      (let ((inhibit-read-only t))
        (while (> arg 0)
        (ibuffer-set-mark mark)
***************
*** 1338,1366 ****
  (defun ibuffer-current-format (&optional uncompiledp)
    (or ibuffer-current-format
        (setq ibuffer-current-format 0))
!   (nth ibuffer-current-format (ibuffer-current-formats uncompiledp)))  
  
  (defun ibuffer-expand-format-entry (form)
    (if (or (consp form)
          (symbolp form))
!     (let ((sym (intern (concat "ibuffer-make-column-"
!                              (symbol-name (if (consp form)
!                                               (car form)
!                                             form))))))
!       (unless (or (fboundp sym)
!                 (assq sym ibuffer-inline-columns))
!       (error "Unknown column %s in ibuffer-formats" form))
!       (let (min max align elide)
!       (if (consp form)
!           (setq min (or (nth 1 form) 0)
!                 max (or (nth 2 form) -1)
!                 align (or (nth 3 form) :left)
!                 elide (or (nth 4 form) nil))
!         (setq min 0
!               max -1
!               align :left
!               elide nil))
!       (list sym min max align elide)))
      form))
    
  (defun ibuffer-compile-make-eliding-form (strvar elide from-end-p)
--- 1342,1370 ----
  (defun ibuffer-current-format (&optional uncompiledp)
    (or ibuffer-current-format
        (setq ibuffer-current-format 0))
!   (nth ibuffer-current-format (ibuffer-current-formats uncompiledp)))
  
  (defun ibuffer-expand-format-entry (form)
    (if (or (consp form)
          (symbolp form))
!       (let ((sym (intern (concat "ibuffer-make-column-"
!                                (symbol-name (if (consp form)
!                                                 (car form)
!                                               form))))))
!       (unless (or (fboundp sym)
!                   (assq sym ibuffer-inline-columns))
!         (error "Unknown column %s in ibuffer-formats" form))
!       (let (min max align elide)
!         (if (consp form)
!             (setq min (or (nth 1 form) 0)
!                   max (or (nth 2 form) -1)
!                   align (or (nth 3 form) :left)
!                   elide (or (nth 4 form) nil))
!           (setq min 0
!                 max -1
!                 align :left
!                 elide nil))
!         (list sym min max align elide)))
      form))
    
  (defun ibuffer-compile-make-eliding-form (strvar elide from-end-p)
***************
*** 1462,1480 ****
                    ;; into our generated code.  Otherwise, we just
                    ;; generate a call to the column function.
                    (ibuffer-aif (assq sym ibuffer-inline-columns)
!                                (nth 1 it)
!                                `(,sym buffer mark)))
                   ;; You're not expected to understand this.  Hell, I
                   ;; don't even understand it, and I wrote it five
                   ;; minutes ago.
                   (insertgenfn (ibuffer-aif (get sym 
'ibuffer-column-summarizer)
!                                 ;; I really, really wish Emacs Lisp had 
closures.
!                                 (lambda (arg sym)
!                                   `(insert
!                                     (let ((ret ,arg))
!                                       (put ',sym 'ibuffer-column-summary
!                                            (cons ret (get ',sym 
'ibuffer-column-summary)))
!                                       ret)))
                                  (lambda (arg sym)
                                    `(insert ,arg))))
                   (mincompform `(< strlen ,(if (integerp min)
--- 1466,1484 ----
                    ;; into our generated code.  Otherwise, we just
                    ;; generate a call to the column function.
                    (ibuffer-aif (assq sym ibuffer-inline-columns)
!                       (nth 1 it)
!                     `(,sym buffer mark)))
                   ;; You're not expected to understand this.  Hell, I
                   ;; don't even understand it, and I wrote it five
                   ;; minutes ago.
                   (insertgenfn (ibuffer-aif (get sym 
'ibuffer-column-summarizer)
!                                   ;; I really, really wish Emacs Lisp had 
closures.
!                                   (lambda (arg sym)
!                                     `(insert
!                                       (let ((ret ,arg))
!                                         (put ',sym 'ibuffer-column-summary
!                                              (cons ret (get ',sym 
'ibuffer-column-summary)))
!                                         ret)))
                                  (lambda (arg sym)
                                    `(insert ,arg))))
                   (mincompform `(< strlen ,(if (integerp min)
***************
*** 1483,1522 ****
                   (maxcompform `(> strlen ,(if (integerp max)
                                                max
                                              'max))))
!                (if (or min-used max-used)
!                    ;; The complex case, where we have to limit the
!                    ;; form to a maximum or minimum size.
!                    (progn
!                      (when (and min-used (not (integerp min)))
!                        (push `(min ,min) letbindings))
!                      (when (and max-used (not (integerp max)))
!                        (push `(max ,max) letbindings))
!                      (push 
!                       (if (and min-used max-used)
!                           `(if ,mincompform
!                                ,minform
!                              (if ,maxcompform
!                                  ,maxform))
!                         (if min-used
!                             `(when ,mincompform
!                                ,minform)
!                           `(when ,maxcompform
!                              ,maxform)))
!                       outforms)
!                      (push (append 
!                             `(setq str ,callform)
!                             (when strlen-used
!                               `(strlen (length str))))
!                            outforms)
!                      (setq outforms
!                            (append outforms (list (funcall insertgenfn 'str 
sym)))))
!                  ;; The simple case; just insert the string.
!                  (push (funcall insertgenfn callform sym) outforms))
!                ;; Finally, return a `let' form which binds the
!                ;; variables in `letbindings', and contains all the
!                ;; code in `outforms'.
!                `(let ,letbindings
!                   ,@outforms)))))
         result))
      (setq result
          ;; We don't want to unconditionally load the byte-compiler.
--- 1487,1526 ----
                   (maxcompform `(> strlen ,(if (integerp max)
                                                max
                                              'max))))
!              (if (or min-used max-used)
!                  ;; The complex case, where we have to limit the
!                  ;; form to a maximum or minimum size.
!                  (progn
!                    (when (and min-used (not (integerp min)))
!                      (push `(min ,min) letbindings))
!                    (when (and max-used (not (integerp max)))
!                      (push `(max ,max) letbindings))
!                    (push
!                     (if (and min-used max-used)
!                         `(if ,mincompform
!                              ,minform
!                            (if ,maxcompform
!                                ,maxform))
!                       (if min-used
!                           `(when ,mincompform
!                              ,minform)
!                         `(when ,maxcompform
!                            ,maxform)))
!                     outforms)
!                    (push (append
!                           `(setq str ,callform)
!                           (when strlen-used
!                             `(strlen (length str))))
!                          outforms)
!                    (setq outforms
!                          (append outforms (list (funcall insertgenfn 'str 
sym)))))
!                ;; The simple case; just insert the string.
!                (push (funcall insertgenfn callform sym) outforms))
!              ;; Finally, return a `let' form which binds the
!              ;; variables in `letbindings', and contains all the
!              ;; code in `outforms'.
!              `(let ,letbindings
!                 ,@outforms)))))
         result))
      (setq result
          ;; We don't want to unconditionally load the byte-compiler.
***************
*** 1547,1553 ****
    "Recompile `ibuffer-formats'."
    (interactive)
    (setq ibuffer-compiled-formats
!         (mapcar #'ibuffer-compile-format ibuffer-formats))
    (when (boundp 'ibuffer-filter-format-alist)
      (setq ibuffer-compiled-filter-formats
          (mapcar #'(lambda (entry)
--- 1551,1557 ----
    "Recompile `ibuffer-formats'."
    (interactive)
    (setq ibuffer-compiled-formats
!       (mapcar #'ibuffer-compile-format ibuffer-formats))
    (when (boundp 'ibuffer-filter-format-alist)
      (setq ibuffer-compiled-filter-formats
          (mapcar #'(lambda (entry)
***************
*** 1607,1614 ****
  (define-ibuffer-column name (:inline t
                             :props
                             ('mouse-face 'highlight 'keymap ibuffer-name-map
!                             'ibuffer-name-column t
!                             'help-echo "mouse-1: mark this buffer\nmouse-2: 
select this buffer\nmouse-3: operate on this buffer"))
    (propertize (buffer-name) 'font-lock-face (ibuffer-buffer-name-face buffer 
mark)))
    
  (define-ibuffer-column size (:inline t)
--- 1611,1618 ----
  (define-ibuffer-column name (:inline t
                             :props
                             ('mouse-face 'highlight 'keymap ibuffer-name-map
!                             'ibuffer-name-column t
!                             'help-echo "mouse-1: mark this buffer\nmouse-2: 
select this buffer\nmouse-3: operate on this buffer"))
    (propertize (buffer-name) 'font-lock-face (ibuffer-buffer-name-face buffer 
mark)))
    
  (define-ibuffer-column size (:inline t)
***************
*** 1617,1623 ****
  (define-ibuffer-column mode (:inline t
                             :props
                             ('mouse-face 'highlight
!                             'keymap ibuffer-mode-name-map
                              'help-echo "mouse-2: filter by this mode"))
    (format "%s" mode-name))
  
--- 1621,1627 ----
  (define-ibuffer-column mode (:inline t
                             :props
                             ('mouse-face 'highlight
!                             'keymap ibuffer-mode-name-map
                              'help-echo "mouse-2: filter by this mode"))
    (format "%s" mode-name))
  
***************
*** 1709,1716 ****
  If optional argument GROUP is non-nil, then only call FUNCTION on
  buffers in filtering group GROUP.
  
!  FUNCTION is called with four arguments: the buffer object itself, the
! current mark symbol, and the beginning and ending line positions."
    (assert (eq major-mode 'ibuffer-mode))
    (ibuffer-forward-line 0)
    (let* ((orig-target-line (1+ (count-lines (save-excursion
--- 1713,1720 ----
  If optional argument GROUP is non-nil, then only call FUNCTION on
  buffers in filtering group GROUP.
  
! FUNCTION is called with two arguments:
! the buffer object itself and the current mark symbol."
    (assert (eq major-mode 'ibuffer-mode))
    (ibuffer-forward-line 0)
    (let* ((orig-target-line (1+ (count-lines (save-excursion
***************
*** 1725,1731 ****
        (progn
          (setq buffer-read-only nil)
          (goto-char (point-min))
!         (ibuffer-forward-line 0 t)      
          (while (and (not (eobp))
                      (not (get-text-property (point) 'ibuffer-summary))
                      (progn
--- 1729,1735 ----
        (progn
          (setq buffer-read-only nil)
          (goto-char (point-min))
!         (ibuffer-forward-line 0 t)
          (while (and (not (eobp))
                      (not (get-text-property (point) 'ibuffer-summary))
                      (progn
***************
*** 1755,1761 ****
                                    (1+ (line-end-position)))
                     (incf ibuffer-map-lines-count)
                     (when (< ibuffer-map-lines-total
!                              orig-target-line)
                       (decf target-line-offset)))
                    (t
                     (incf ibuffer-map-lines-count)
--- 1759,1765 ----
                                    (1+ (line-end-position)))
                     (incf ibuffer-map-lines-count)
                     (when (< ibuffer-map-lines-total
!                             orig-target-line)
                       (decf target-line-offset)))
                    (t
                     (incf ibuffer-map-lines-count)
***************
*** 1824,1834 ****
                 (when
                     ;; This takes precedence over anything else
                     (or (and ibuffer-always-show-last-buffer
!                               (eq last buf))
!                          (funcall (if ext-loaded
!                                       #'ibuffer-ext-visible-p
!                                     #'ibuffer-visible-p)
!                                   buf all ibuffer-buf))
                   e)))
           bmarklist))))
  
--- 1828,1838 ----
                 (when
                     ;; This takes precedence over anything else
                     (or (and ibuffer-always-show-last-buffer
!                             (eq last buf))
!                        (funcall (if ext-loaded
!                                     #'ibuffer-ext-visible-p
!                                   #'ibuffer-visible-p)
!                                 buf all ibuffer-buf))
                   e)))
           bmarklist))))
  
***************
*** 1837,1843 ****
           (not
            (ibuffer-buf-matches-predicates buf ibuffer-maybe-show-predicates)))
         (or ibuffer-view-ibuffer
!          (and ibuffer-buf 
                (not (eq ibuffer-buf buf))))))
  
  ;; This function is a special case; it's not defined by
--- 1841,1847 ----
           (not
            (ibuffer-buf-matches-predicates buf ibuffer-maybe-show-predicates)))
         (or ibuffer-view-ibuffer
!          (and ibuffer-buf
                (not (eq ibuffer-buf buf))))))
  
  ;; This function is a special case; it's not defined by
***************
*** 1889,1895 ****
                    (min (cadr element))
                    ;; (max (caddr element))
                    (align (cadddr element)))
!              ;; Ignore a negative min when we're inserting the title
                (when (minusp min)
                  (setq min (- min)))
                (let* ((name (or (get sym 'ibuffer-column-name)
--- 1893,1899 ----
                    (min (cadr element))
                    ;; (max (caddr element))
                    (align (cadddr element)))
!               ;; Ignore a negative min when we're inserting the title
                (when (minusp min)
                  (setq min (- min)))
                (let* ((name (or (get sym 'ibuffer-column-name)
***************
*** 2000,2006 ****
  (defun ibuffer-update (arg &optional silent)
    "Regenerate the list of all buffers.
  Display buffers whose name matches one of `ibuffer-maybe-show-predicates'
! iff arg ARG is non-nil.  
  
  If optional arg SILENT is non-nil, do not display progress messages."
    (interactive "P")
--- 2004,2010 ----
  (defun ibuffer-update (arg &optional silent)
    "Regenerate the list of all buffers.
  Display buffers whose name matches one of `ibuffer-maybe-show-predicates'
! iff arg ARG is non-nil.
  
  If optional arg SILENT is non-nil, do not display progress messages."
    (interactive "P")
***************
*** 2407,2413 ****
    (set (make-local-variable 'ibuffer-cached-eliding-string) nil)
    (set (make-local-variable 'ibuffer-cached-elide-long-columns) nil)
    (set (make-local-variable 'ibuffer-current-format) nil)
-   (set (make-local-variable 'ibuffer-did-modifiction) nil)
    (set (make-local-variable 'ibuffer-delete-window-on-quit) nil)
    (set (make-local-variable 'ibuffer-did-modification) nil)
    (set (make-local-variable 'ibuffer-tmp-hide-regexps) nil)
--- 2411,2416 ----
***************
*** 2423,2428 ****
--- 2426,2433 ----
    (ibuffer-update-mode-name))
  
  (provide 'ibuffer)
+ 
+ (run-hooks 'ibuffer-load-hook)
  
  ;; Local Variables:
  ;; coding: iso-8859-1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]