]> code.delx.au - gnu-emacs/blobdiff - lisp/buff-menu.el
Restore window-safely-shrinkable-p but avoid using it in calendar.el.
[gnu-emacs] / lisp / buff-menu.el
index e0f00d3553dd9e4244aef07ef99816941aa3ebd1..95f309e33b93265f551afc72747d0186f05534b0 100644 (file)
@@ -1,7 +1,7 @@
 ;;; buff-menu.el --- buffer menu main function and support functions -*- coding:utf-8 -*-
 
-;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2000, 2001, 2002, 2003,
-;;   2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1987, 1993-1995, 2000-2011
+;;   Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: convenience
@@ -112,9 +112,15 @@ A nil value means sort by visited order (the default).")
 This variable determines whether reverting the buffer lists only
 file buffers.  It affects both manual reverting and reverting by
 Auto Revert Mode.")
-
 (make-variable-buffer-local 'Buffer-menu-files-only)
 
+(defvar Buffer-menu--buffers nil
+  "If non-nil, list of buffers shown in the current buffer-menu.
+This variable determines whether reverting the buffer lists only
+these buffers.  It affects both manual reverting and reverting by
+Auto Revert Mode.")
+(make-variable-buffer-local 'Buffer-menu--buffers)
+
 (defvar Info-current-file) ;; from info.el
 (defvar Info-current-node) ;; from info.el
 
@@ -258,21 +264,21 @@ Letters do not insert themselves; instead, they are commands.
   (set (make-local-variable 'revert-buffer-function)
        'Buffer-menu-revert-function)
   (set (make-local-variable 'buffer-stale-function)
-       #'(lambda (&optional noconfirm) 'fast))
+       (lambda (&optional _noconfirm) 'fast))
   (setq truncate-lines t)
   (setq buffer-read-only t))
 
 (define-obsolete-variable-alias 'buffer-menu-mode-hook
   'Buffer-menu-mode-hook "23.1")
 
-(defun Buffer-menu-revert-function (ignore1 ignore2)
+(defun Buffer-menu-revert-function (_ignore1 _ignore2)
   (or (eq buffer-undo-list t)
       (setq buffer-undo-list nil))
   ;; We can not use save-excursion here.  The buffer gets erased.
   (let ((opoint (point))
        (eobp (eobp))
        (ocol (current-column))
-       (oline (progn (move-to-column 4)
+       (oline (progn (move-to-column Buffer-menu-buffer-column)
                      (get-text-property (point) 'buffer)))
        (prop (point-min))
        ;; do not make undo records for the reversion.
@@ -282,7 +288,7 @@ Letters do not insert themselves; instead, they are commands.
     ;; interactively current buffer is correctly identified with a `.'
     ;; by `list-buffers-noselect'.
     (with-current-buffer (window-buffer)
-      (list-buffers-noselect Buffer-menu-files-only))
+      (list-buffers-noselect Buffer-menu-files-only Buffer-menu--buffers))
     (if oline
        (while (setq prop (next-single-property-change prop 'buffer))
          (when (eq (get-text-property prop 'buffer) oline)
@@ -303,9 +309,7 @@ negative ARG, display other buffers as well."
 \f
 (defun Buffer-menu-buffer (error-if-non-existent-p)
   "Return buffer described by this line of buffer menu."
-  (let* ((where (save-excursion
-                 (beginning-of-line)
-                 (+ (point) Buffer-menu-buffer-column)))
+  (let* ((where (+ (line-beginning-position) Buffer-menu-buffer-column))
         (name (and (not (eobp)) (get-text-property where 'buffer-name)))
         (buf (and (not (eobp)) (get-text-property where 'buffer))))
     (if name
@@ -684,7 +688,9 @@ For more information, see the function `buffer-menu'."
     (concat name
            (propertize (make-string (- name+space-width (string-width name))
                                     ?\s)
-                       'display `(space :align-to ,(+ 4 name+space-width)))
+                       'display `(space :align-to
+                                        ,(+ Buffer-menu-buffer-column
+                                            name+space-width)))
            size)))
 
 (defun Buffer-menu-sort (column)
@@ -699,7 +705,11 @@ For more information, see the function `buffer-menu'."
     (save-excursion
       (Buffer-menu-beginning)
       (while (not (eobp))
-       (when (buffer-live-p (setq buf (get-text-property (+ (point) 4) 'buffer)))
+       (when (buffer-live-p
+              (setq buf (get-text-property
+                         (+ (point)
+                            Buffer-menu-buffer-column)
+                         'buffer)))
          (setq m1 (char-after)
                m1 (if (memq m1 '(?> ?D)) m1)
                m2 (char-after (+ (point) 2))
@@ -711,7 +721,9 @@ For more information, see the function `buffer-menu'."
     (save-excursion
       (Buffer-menu-beginning)
       (while (not (eobp))
-       (when (setq buf (assq (get-text-property (+ (point) 4) 'buffer) l))
+       (when (setq buf (assq (get-text-property (+ (point)
+                                                   Buffer-menu-buffer-column)
+                                                'buffer) l))
          (setq m1 (cadr buf)
                m2 (cadr (cdr buf)))
          (when m1
@@ -921,8 +933,8 @@ For more information, see the function `buffer-menu'."
       (and desired-point
           (goto-char desired-point))
       (setq Buffer-menu-files-only files-only)
+      (setq Buffer-menu--buffers buffer-list)
       (set-buffer-modified-p nil)
       (current-buffer))))
 
-;; arch-tag: e7dfcfc9-6cb2-46e4-bf55-8ef1936d83c6
 ;;; buff-menu.el ends here