]> git.eshelyaron.com Git - emacs.git/commitdiff
Treat list-buffers-directory as a string
authorMark Oteiza <mvoteiza@udel.edu>
Thu, 2 Feb 2017 03:07:03 +0000 (22:07 -0500)
committerMark Oteiza <mvoteiza@udel.edu>
Thu, 2 Feb 2017 03:57:23 +0000 (22:57 -0500)
Another step in the long history of list-buffers-directory.  A thread
branch discussing the meaning/use of the variable starts here
https://lists.gnu.org/archive/html/emacs-devel/2009-09/msg00684.html
Also see (info "(elisp) Buffer File Name").
* lisp/buff-menu.el: Relocate special case code into info.el.  Nix
Info-* defvars.
(Buffer-menu--pretty-file-name): Remove special case.  Use
bound-and-true-p.
(Buffer-menu-info-node-description): Remove.
* lisp/ibuffer.el (ibuffer-buffer-file-name): Treat
list-buffers-directory as a string.
* lisp/info.el (Info-node-description): New function.
(Info-select-node): Use it.

lisp/buff-menu.el
lisp/ibuffer.el
lisp/info.el

index 77b325ff25db7e44321162dde4a53a70a66d4209..9f618bcb7de72e4d83c16b467e7ed45b7c1d2b71 100644 (file)
@@ -102,9 +102,6 @@ This is set by the prefix argument to `buffer-menu' and related
 commands.")
 (make-variable-buffer-local 'Buffer-menu-files-only)
 
-(defvar Info-current-file) ; from info.el
-(defvar Info-current-node) ; from info.el
-
 (defvar Buffer-menu-mode-map
   (let ((map (make-sparse-keymap))
        (menu-map (make-sparse-keymap)))
@@ -702,21 +699,7 @@ means list those buffers and no others."
 (defun Buffer-menu--pretty-file-name (file)
   (cond (file
         (abbreviate-file-name file))
-       ((and (boundp 'list-buffers-directory)
-             list-buffers-directory)
-        list-buffers-directory)
-       ((eq major-mode 'Info-mode)
-        (Buffer-menu-info-node-description Info-current-file))
+       ((bound-and-true-p list-buffers-directory))
        (t "")))
 
-(defun Buffer-menu-info-node-description (file)
-  (cond
-   ((equal file "dir") "*Info Directory*")
-   ((eq file 'apropos) "*Info Apropos*")
-   ((eq file 'history) "*Info History*")
-   ((eq file 'toc)     "*Info TOC*")
-   ((not (stringp file)) "") ; Avoid errors
-   (t
-    (concat "(" (file-name-nondirectory file) ") " Info-current-node))))
-
 ;;; buff-menu.el ends here
index c6e5e471a3613cdb22937921916e3ec0e29e966c..71bf1d6dcc268e8f20f5c1fe4e678831f23d6347 100644 (file)
@@ -1319,13 +1319,14 @@ a new window in the current frame, splitting vertically."
   (cl-assert (derived-mode-p 'ibuffer-mode)))
 
 (defun ibuffer-buffer-file-name ()
-  (or buffer-file-name
-      (let ((dirname (or (and (boundp 'dired-directory)
-                             (if (stringp dired-directory)
-                                 dired-directory
-                               (car dired-directory)))
-                        (bound-and-true-p list-buffers-directory))))
-       (and dirname (expand-file-name dirname)))))
+  (cond
+   ((buffer-file-name))
+   ((bound-and-true-p list-buffers-directory))
+   ((let ((dirname (and (boundp 'dired-directory)
+                        (if (stringp dired-directory)
+                            dired-directory
+                          (car dired-directory)))))
+       (and dirname (expand-file-name dirname))))))
 
 (define-ibuffer-op ibuffer-do-save ()
   "Save marked buffers as with `save-buffer'."
index e32b6b356324c218d6afec2c8c9652195dc30453..0cfcec32f82c8e9583dbcfab05c30415d4db7f94 100644 (file)
@@ -1599,6 +1599,16 @@ escaped (\\\",\\\\)."
            parameter-alist))
     parameter-alist))
 
+(defun Info-node-description (file)
+  (cond
+   ((equal file "dir") "*Info Directory*")
+   ((eq file 'apropos) "*Info Apropos*")
+   ((eq file 'history) "*Info History*")
+   ((eq file 'toc)     "*Info TOC*")
+   ((not (stringp file)) "") ; Avoid errors
+   (t
+    (concat "(" (file-name-nondirectory file) ") " Info-current-node))))
+
 (defun Info-display-images-node ()
   "Display images in current node."
   (save-excursion
@@ -1693,6 +1703,7 @@ escaped (\\\",\\\\)."
          (setq Info-history-forward nil))
        (if (not (eq Info-fontify-maximum-menu-size nil))
             (Info-fontify-node))
+        (setq list-buffers-directory (Info-node-description Info-current-file))
        (Info-display-images-node)
        (Info-hide-cookies-node)
        (run-hooks 'Info-selection-hook)))))