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 [lexbind]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/ibuffer.el [lexbind]
Date: Tue, 14 Oct 2003 19:52:00 -0400

Index: emacs/lisp/ibuffer.el
diff -c emacs/lisp/ibuffer.el:1.32.2.1 emacs/lisp/ibuffer.el:1.32.2.2
*** emacs/lisp/ibuffer.el:1.32.2.1      Fri Apr  4 01:20:07 2003
--- emacs/lisp/ibuffer.el       Tue Oct 14 19:51:06 2003
***************
*** 47,54 ****
  the ability to filter the displayed buffers by various criteria."
    :group 'convenience)
  
! (defcustom ibuffer-formats '((mark modified read-only " " (name 16 16 :left 
:elide)
!                                  " " (size 7 -1 :right)
                                   " " (mode 16 16 :right :elide) " " 
filename-and-process)
                             (mark " " (name 16 -1) " " filename))
    "A list of ways to display buffer lines.
--- 47,54 ----
  the ability to filter the displayed buffers by various criteria."
    :group 'convenience)
  
! (defcustom ibuffer-formats '((mark modified read-only " " (name 18 18 :left 
:elide)
!                                  " " (size 9 -1 :right)
                                   " " (mode 16 16 :right :elide) " " 
filename-and-process)
                             (mark " " (name 16 -1) " " filename))
    "A list of ways to display buffer lines.
***************
*** 157,162 ****
--- 157,167 ----
    :group 'ibuffer)
  (defvar ibuffer-shrink-to-minimum-size nil)
  
+ (defcustom ibuffer-display-summary t
+   "If non-nil, summarize Ibuffer columns."
+   :type 'boolean
+   :group 'ibuffer)
+ 
  (defcustom ibuffer-truncate-lines t
    "If non-nil, do not display continuation lines."
    :type 'boolean
***************
*** 752,786 ****
  (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)))
      (define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
      (define-key map [(mouse-2)] 'ibuffer-mouse-visit-buffer)
      (define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
!     (setq ibuffer-name-map map)))
  
! (defvar ibuffer-mode-name-map nil)
! (unless ibuffer-mode-name-map
    (let ((map (make-sparse-keymap)))
      (define-key map [(mouse-2)] 'ibuffer-mouse-filter-by-mode)
      (define-key map (kbd "RET") 'ibuffer-interactive-filter-by-mode)
!     (setq ibuffer-mode-name-map map)))
  
! (defvar ibuffer-mode-filter-group-map nil)
! (unless ibuffer-mode-filter-group-map
    (let ((map (make-sparse-keymap)))
      (define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
      (define-key map [(mouse-2)] 'ibuffer-mouse-toggle-filter-group)
      (define-key map (kbd "RET") 'ibuffer-toggle-filter-group)
      (define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
!     (setq ibuffer-mode-filter-group-map map)))
  
  (defvar ibuffer-delete-window-on-quit nil
    "Whether or not to delete the window upon exiting `ibuffer'.")
--- 757,790 ----
  (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
    (let ((map (make-sparse-keymap)))
      (define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
      (define-key map [(mouse-2)] 'ibuffer-mouse-visit-buffer)
      (define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
!     map))
  
! (defvar ibuffer-mode-name-map
    (let ((map (make-sparse-keymap)))
      (define-key map [(mouse-2)] 'ibuffer-mouse-filter-by-mode)
      (define-key map (kbd "RET") 'ibuffer-interactive-filter-by-mode)
!     map))
  
! (defvar ibuffer-mode-filter-group-map
    (let ((map (make-sparse-keymap)))
      (define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
      (define-key map [(mouse-2)] 'ibuffer-mouse-toggle-filter-group)
      (define-key map (kbd "RET") 'ibuffer-toggle-filter-group)
      (define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
!     map))
  
  (defvar ibuffer-delete-window-on-quit nil
    "Whether or not to delete the window upon exiting `ibuffer'.")
***************
*** 902,916 ****
  (defun ibuffer-backward-line (&optional arg skip-group-names)
    "Move backwards ARG lines, wrapping around the list if necessary."
    (interactive "P")
!   (unless arg
!     (setq arg 1))
    (beginning-of-line)
    (while (> arg 0)
      (forward-line -1)
      (when (and ibuffer-movement-cycle
               (or (get-text-property (point) 'ibuffer-title)
                   (and skip-group-names
!                       (get-text-property (point) 
'ibuffer-filter-group-name))))
        (goto-char (point-max))
        (beginning-of-line))
      (ibuffer-skip-properties (append '(ibuffer-summary)
--- 906,920 ----
  (defun ibuffer-backward-line (&optional arg skip-group-names)
    "Move backwards ARG lines, wrapping around the list if necessary."
    (interactive "P")
!   (or arg (setq arg 1))
    (beginning-of-line)
    (while (> arg 0)
      (forward-line -1)
      (when (and ibuffer-movement-cycle
               (or (get-text-property (point) 'ibuffer-title)
                   (and skip-group-names
!                       (get-text-property (point)
!                                          'ibuffer-filter-group-name))))
        (goto-char (point-max))
        (beginning-of-line))
      (ibuffer-skip-properties (append '(ibuffer-summary)
***************
*** 926,933 ****
  (defun ibuffer-forward-line (&optional arg skip-group-names)
    "Move forward ARG lines, wrapping around the list if necessary."
    (interactive "P")
!   (unless arg
!     (setq arg 1))
    (beginning-of-line)
    (when (and ibuffer-movement-cycle
             (or (eobp)
--- 930,936 ----
  (defun ibuffer-forward-line (&optional arg skip-group-names)
    "Move forward ARG lines, wrapping around the list if necessary."
    (interactive "P")
!   (or arg (setq arg 1))
    (beginning-of-line)
    (when (and ibuffer-movement-cycle
             (or (eobp)
***************
*** 1043,1049 ****
        (mapcar (if (eq type 'other-frame)
                    #'(lambda (buf)
                        (let ((curframe (selected-frame)))
!                         (select-frame (new-frame))
                          (switch-to-buffer buf)
                          (select-frame curframe)))
                  #'(lambda (buf)
--- 1046,1052 ----
        (mapcar (if (eq type 'other-frame)
                    #'(lambda (buf)
                        (let ((curframe (selected-frame)))
!                         (select-frame (make-frame))
                          (switch-to-buffer buf)
                          (select-frame curframe)))
                  #'(lambda (buf)
***************
*** 1264,1271 ****
  
  (defun ibuffer-mark-interactive (arg mark movement)
    (assert (eq major-mode 'ibuffer-mode))
!   (unless arg
!     (setq arg 1))
    (ibuffer-forward-line 0)
    (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name)
        (progn
--- 1267,1273 ----
  
  (defun ibuffer-mark-interactive (arg mark movement)
    (assert (eq major-mode 'ibuffer-mode))
!   (or arg (setq arg 1))
    (ibuffer-forward-line 0)
    (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name)
        (progn
***************
*** 1389,1395 ****
  
  (defun ibuffer-compile-make-format-form (strvar widthform alignment)
    (let* ((left `(make-string tmp2 ? ))
!          (right `(make-string (- tmp1 tmp2) ? )))
      `(progn
         (setq tmp1 ,widthform
             tmp2 (/ tmp1 2))
--- 1391,1397 ----
  
  (defun ibuffer-compile-make-format-form (strvar widthform alignment)
    (let* ((left `(make-string tmp2 ? ))
!        (right `(make-string (- tmp1 tmp2) ? )))
      `(progn
         (setq tmp1 ,widthform
             tmp2 (/ tmp1 2))
***************
*** 1600,1606 ****
  
  (define-ibuffer-column read-only (:name "R" :inline t)
    (if buffer-read-only
!       "%"
      " "))
  
  (define-ibuffer-column modified (:name "M" :inline t)
--- 1602,1608 ----
  
  (define-ibuffer-column read-only (:name "R" :inline t)
    (if buffer-read-only
!       (string ibuffer-read-only-char)
      " "))
  
  (define-ibuffer-column modified (:name "M" :inline t)
***************
*** 1608,1621 ****
        (string ibuffer-modified-char)
      " "))
  
! (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)
    (format "%s" (buffer-size)))
  
  (define-ibuffer-column mode (:inline t
--- 1610,1642 ----
        (string ibuffer-modified-char)
      " "))
  
! (define-ibuffer-column name
!   (:inline t
!    :props
!    ('mouse-face 'highlight 'keymap ibuffer-name-map
!               'ibuffer-name-column t
!               'help-echo '(if tooltip-mode
!                               "mouse-1: mark this buffer\nmouse-2: select 
this buffer\nmouse-3: operate on this buffer"
!                             "mouse-1: mark buffer   mouse-2: select buffer   
mouse-3: operate"))
!    :summarizer
!    (lambda (strings)
!      (let ((bufs (length strings)))
!        (cond ((zerop bufs) "No buffers")
!            ((= 1 bufs) "1 buffer")
!            (t (format "%s buffers" bufs))))))
    (propertize (buffer-name) 'font-lock-face (ibuffer-buffer-name-face buffer 
mark)))
  
! (define-ibuffer-column size
!   (:inline t
!    :summarizer
!    (lambda (column-strings)
!      (let ((total 0))
!        (dolist (string column-strings)
!        (setq total
!              ;; like, ewww ...
!              (+ (float (string-to-int string))
!                 total)))
!        (format "%.0f" total))))
    (format "%s" (buffer-size)))
  
  (define-ibuffer-column mode (:inline t
***************
*** 1625,1636 ****
                              'help-echo "mouse-2: filter by this mode"))
    (format "%s" mode-name))
  
! (define-ibuffer-column process ()
    (ibuffer-aif (get-buffer-process buffer)
        (format "(%s %s)" it (process-status it))
!     "none"))
  
! (define-ibuffer-column filename ()
    (let ((directory-abbrev-alist ibuffer-directory-abbrev-alist))
      (abbreviate-file-name
       (or buffer-file-name
--- 1646,1669 ----
                              'help-echo "mouse-2: filter by this mode"))
    (format "%s" mode-name))
  
! (define-ibuffer-column process
!   (:summarizer
!    (lambda (strings)
!      (let ((total (length (delete "" strings))))
!        (cond ((zerop total) "No processes")
!            ((= 1 total) "1 process")
!            (t (format "%d processes" total))))))
    (ibuffer-aif (get-buffer-process buffer)
        (format "(%s %s)" it (process-status it))
!     ""))
  
! (define-ibuffer-column filename
!   (:summarizer
!    (lambda (strings)
!      (let ((total (length (delete "" strings))))
!        (cond ((zerop total) "No files")
!            ((= 1 total) "1 file")
!            (t (format "%d files" total))))))
    (let ((directory-abbrev-alist ibuffer-directory-abbrev-alist))
      (abbreviate-file-name
       (or buffer-file-name
***************
*** 1638,1650 ****
              dired-directory)
         ""))))
  
! (define-ibuffer-column filename-and-process (:name "Filename/Process")
    (let ((proc (get-buffer-process buffer))
        (filename (ibuffer-make-column-filename buffer mark)))
      (if proc
!       (concat (propertize (format "(%s %s) " proc (process-status proc))
                            'font-lock-face 'italic)
!               filename)
        filename)))
  
  (defun ibuffer-format-column (str width alignment)
--- 1671,1704 ----
              dired-directory)
         ""))))
  
! (define-ibuffer-column filename-and-process
!   (:name "Filename/Process"
!    :summarizer
!    (lambda (strings)
!      (setq strings (delete "" strings))
!      (let ((procs 0)
!          (files 0))
!        (dolist (string strings)
!        (if (string-match "\\(\?:\\`(\[\[:ascii:\]\]\+)\\)" string)
!            (progn (setq procs (1+ procs))
!                   (if (< (match-end 0) (length string))
!                       (setq files (1+ files))))
!          (setq files (1+ files))))
!        (concat (cond ((zerop files) "No files")
!                    ((= 1 files) "1 file")
!                    (t (format "%d files" files)))
!              ", "
!              (cond ((zerop procs) "no processes")
!                    ((= 1 procs) "1 process")
!                    (t (format "%d processes" procs)))))))
    (let ((proc (get-buffer-process buffer))
        (filename (ibuffer-make-column-filename buffer mark)))
      (if proc
!       (concat (propertize (format "(%s %s)" proc (process-status proc))
                            'font-lock-face 'italic)
!               (if (> (length filename) 0)
!                   (format " %s" filename)
!                 ""))
        filename)))
  
  (defun ibuffer-format-column (str width alignment)
***************
*** 1927,1960 ****
        (delete-region (previous-single-property-change
                        (point-max) 'ibuffer-summary)
                       (point-max)))
!     (add-text-properties
!      (point)
!      (progn
!        (insert "\n")
!        (dolist (element format)
!        (insert
!         (if (stringp element)
!             (make-string (length element) ? )
!           (let ((sym (car element)))
!             (let ((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* ((summary (if (get sym 'ibuffer-column-summarizer)
!                                   (funcall (get sym 
'ibuffer-column-summarizer)
!                                            (get sym 'ibuffer-column-summary))
!                                 (make-string (length (get sym 
'ibuffer-column-name))
!                                              ? )))
!                      (len (length summary)))
!                 (if (< len min)
!                     (ibuffer-format-column summary
!                                            (- min len)
!                                            align)
!                   summary)))))))
!        (point))
!      `(ibuffer-summary t))))
  
  (defun ibuffer-update-mode-name ()
    (setq mode-name (format "Ibuffer by %s" (if ibuffer-sorting-mode
--- 1981,2015 ----
        (delete-region (previous-single-property-change
                        (point-max) 'ibuffer-summary)
                       (point-max)))
!     (if ibuffer-display-summary
!       (add-text-properties
!        (point)
!        (progn
!          (insert "\n")
!          (dolist (element format)
!            (insert
!             (if (stringp element)
!                 (make-string (length element) ? )
!               (let ((sym (car element)))
!                 (let ((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* ((summary (if (get sym 'ibuffer-column-summarizer)
!                                       (funcall (get sym 
'ibuffer-column-summarizer)
!                                                (get sym 
'ibuffer-column-summary))
!                                     (make-string (length (get sym 
'ibuffer-column-name))
!                                                  ? )))
!                          (len (length summary)))
!                     (if (< len min)
!                         (ibuffer-format-column summary
!                                                (- min len)
!                                                align)
!                       summary)))))))
!          (point))
!        `(ibuffer-summary t)))))
  
  (defun ibuffer-update-mode-name ()
    (setq mode-name (format "Ibuffer by %s" (if ibuffer-sorting-mode
***************
*** 2063,2069 ****
       font-lock-face ,ibuffer-filter-group-name-face
       keymap ,ibuffer-mode-filter-group-map
       mouse-face highlight
!      help-echo ,(concat filter-string "mouse-1: toggle marks in this 
group\nmouse-2: hide/show this filtering group ")))
    (insert "\n")
    (when bmarklist
      (put-text-property
--- 2118,2131 ----
       font-lock-face ,ibuffer-filter-group-name-face
       keymap ,ibuffer-mode-filter-group-map
       mouse-face highlight
!      help-echo ,(let ((echo '(if tooltip-mode
!                                "mouse-1: toggle marks in this group\nmouse-2: 
hide/show this filtering group"
!                              "mouse-1: toggle marks  mouse-2: hide/show")))
!                 (if (> (length filter-string) 0)
!                     `(concat ,filter-string
!                              (if tooltip-mode "\n" " ")
!                              ,echo)
!                   echo))))
    (insert "\n")
    (when bmarklist
      (put-text-property
***************
*** 2170,2178 ****
    (interactive "P")
    (when ibuffer-use-other-window
      (setq other-window-p t))
!   (let* ((buf (get-buffer-create (or name "*Ibuffer*")))
!        (already-in (eq (current-buffer) buf))
!        (need-update nil))
      (if other-window-p
        (funcall (if noselect #'(lambda (buf) (display-buffer buf t)) 
#'pop-to-buffer) buf)
        (funcall (if noselect #'display-buffer #'switch-to-buffer) buf))
--- 2232,2238 ----
    (interactive "P")
    (when ibuffer-use-other-window
      (setq other-window-p t))
!   (let ((buf (get-buffer-create (or name "*Ibuffer*"))))
      (if other-window-p
        (funcall (if noselect #'(lambda (buf) (display-buffer buf t)) 
#'pop-to-buffer) buf)
        (funcall (if noselect #'display-buffer #'switch-to-buffer) buf))
***************
*** 2181,2189 ****
        ;; We switch to the buffer's window in order to be able
        ;; to modify the value of point
        (select-window (get-buffer-window buf))
!       (unless (eq major-mode 'ibuffer-mode)
!         (ibuffer-mode)
!         (setq need-update t))
        (setq ibuffer-delete-window-on-quit other-window-p)
        (when shrink
          (setq ibuffer-shrink-to-minimum-size shrink))
--- 2241,2248 ----
        ;; We switch to the buffer's window in order to be able
        ;; to modify the value of point
        (select-window (get-buffer-window buf))
!       (or (eq major-mode 'ibuffer-mode)
!           (ibuffer-mode))
        (setq ibuffer-delete-window-on-quit other-window-p)
        (when shrink
          (setq ibuffer-shrink-to-minimum-size shrink))
***************
*** 2433,2436 ****
--- 2492,2496 ----
  ;; coding: iso-8859-1
  ;; End:
  
+ ;;; arch-tag: 72581688-0603-4954-b8cf-837c700f62e8
  ;;; ibuffer.el ends here




reply via email to

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