summaryrefslogtreecommitdiff
path: root/lisp/menu-bar.el
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2002-04-24 05:35:03 +0000
committerMiles Bader <miles@gnu.org>2002-04-24 05:35:03 +0000
commit68310f2a121dac224b0104c1526ad05ff0de3202 (patch)
tree3c14b51f496b743441b26386aec9763f951b2d4a /lisp/menu-bar.el
parent07cc1196d2c8c68bd703dae8c431ea4bb49464d6 (diff)
downloademacs-68310f2a121dac224b0104c1526ad05ff0de3202.tar.gz
(buffers-menu-show-directories, buffers-menu-show-status): New variables.
(menu-bar-update-buffers-1): Use them.
Diffstat (limited to 'lisp/menu-bar.el')
-rw-r--r--lisp/menu-bar.el54
1 files changed, 44 insertions, 10 deletions
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 3618c8a5122..83eb7f069e0 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1244,7 +1244,37 @@ key (or menu-item)"))
(interactive "*")
(push-mark (point))
(insert last-command-event))
+
+(defcustom buffers-menu-show-directories 'unless-uniquify
+ "If non-nil, show directories in the Buffers menu for buffers that have them.
+The special value `unless-uniquify' means that directories will be shown
+unless `uniquify-buffer-name-style' is non-nil (in which case, buffer
+names should include enough of a buffer's directory to distinguish it
+from other buffers).
+
+Setting this variable directly does not take effect until next time the
+Buffers menu is regenerated."
+ :set (lambda (symbol value)
+ (set symbol value)
+ (menu-bar-update-buffers t))
+ :initialize 'custom-initialize-default
+ :type '(choice (const :tag "Never" nil)
+ (const :tag "Unless uniquify is enabled" unless-uniquify)
+ (const :tag "Always" t))
+ :group 'menu)
+
+(defcustom buffers-menu-show-status t
+ "If non-nil, show modified/read-only status of buffers in the Buffers menu.
+Setting this variable directly does not take effect until next time the
+Buffers menu is regenerated."
+ :set (lambda (symbol value)
+ (set symbol value)
+ (menu-bar-update-buffers t))
+ :initialize 'custom-initialize-default
+ :type 'boolean
+ :group 'menu)
+
(defvar list-buffers-directory nil)
(defvar menu-bar-update-buffers-maxbuf)
@@ -1264,25 +1294,29 @@ key (or menu-item)"))
(select-frame frame)))
(defun menu-bar-update-buffers-1 (elt)
- ;; (format "%%%ds %%s%%s %%s" menu-bar-update-buffers-maxbuf)
(let* ((buf (car elt))
(file
- (and (or (not (boundp 'uniquify-buffer-name-style))
- (null uniquify-buffer-name-style))
+ (and (if (eq buffers-menu-show-directories 'unless-uniquify)
+ (or (not (boundp 'uniquify-buffer-name-style))
+ (null uniquify-buffer-name-style))
+ buffers-menu-show-directories)
(or (buffer-file-name buf)
- (buffer-local-value 'list-buffers-directory buf))))
- (mod (if (buffer-modified-p buf) "*" ""))
- (ro (if (buffer-local-value 'buffer-read-only buf) "%" "")))
+ (buffer-local-value 'list-buffers-directory buf)))))
(when file
(setq file (file-name-directory file)))
(when (and file (> (length file) 20))
(setq file (concat "..." (substring file -17))))
- (cons (if file
- (format "%s %s%s -- %s" (cdr elt) mod ro file)
- (format "%s %s%s" (cdr elt) mod ro))
+ (cons (if buffers-menu-show-status
+ (let ((mod (if (buffer-modified-p buf) "*" ""))
+ (ro (if (buffer-local-value 'buffer-read-only buf) "%" "")))
+ (if file
+ (format "%s %s%s -- %s" (cdr elt) mod ro file)
+ (format "%s %s%s" (cdr elt) mod ro)))
+ (if file
+ (format "%s -- %s" (cdr elt) file)
+ (cdr elt)))
buf)))
-
;; Used to cache the menu entries for commands in the Buffers menu
(defvar menu-bar-buffers-menu-command-entries nil)