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:
parent
70d36dda26
commit
141b085674
@ -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
|
||||
|
@ -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'."
|
||||
|
11
lisp/info.el
11
lisp/info.el
@ -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)))))
|
||||
|
Loading…
Reference in New Issue
Block a user