1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-30 08:09:04 +00:00

Treat list-buffers-directory as a string

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.
This commit is contained in:
Mark Oteiza 2017-02-01 22:07:03 -05:00
parent 70d36dda26
commit 141b085674
3 changed files with 20 additions and 25 deletions

View 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

View 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'."

View 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)))))