aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2002-04-24 05:35:03 +0000
committerMiles Bader2002-04-24 05:35:03 +0000
commit68310f2a121dac224b0104c1526ad05ff0de3202 (patch)
tree3c14b51f496b743441b26386aec9763f951b2d4a
parent07cc1196d2c8c68bd703dae8c431ea4bb49464d6 (diff)
downloademacs-68310f2a121dac224b0104c1526ad05ff0de3202.tar.gz
emacs-68310f2a121dac224b0104c1526ad05ff0de3202.zip
(buffers-menu-show-directories, buffers-menu-show-status): New variables.
(menu-bar-update-buffers-1): Use them.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/menu-bar.el54
2 files changed, 50 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9e59081b598..c2d67ad0e1a 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
12002-04-24 Miles Bader <miles@gnu.org>
2
3 * menu-bar.el (buffers-menu-show-directories)
4 (buffers-menu-show-status): New variables.
5 (menu-bar-update-buffers-1): Use them.
6
12002-04-24 Martin Stjernholm <mast@lysator.liu.se> 72002-04-24 Martin Stjernholm <mast@lysator.liu.se>
2 8
3 * progmodes/cc-cmds.el (c-mask-comment): More fixes when used 9 * progmodes/cc-cmds.el (c-mask-comment): More fixes when used
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)"))
1244 (interactive "*") 1244 (interactive "*")
1245 (push-mark (point)) 1245 (push-mark (point))
1246 (insert last-command-event)) 1246 (insert last-command-event))
1247
1247 1248
1249(defcustom buffers-menu-show-directories 'unless-uniquify
1250 "If non-nil, show directories in the Buffers menu for buffers that have them.
1251The special value `unless-uniquify' means that directories will be shown
1252unless `uniquify-buffer-name-style' is non-nil (in which case, buffer
1253names should include enough of a buffer's directory to distinguish it
1254from other buffers).
1255
1256Setting this variable directly does not take effect until next time the
1257Buffers menu is regenerated."
1258 :set (lambda (symbol value)
1259 (set symbol value)
1260 (menu-bar-update-buffers t))
1261 :initialize 'custom-initialize-default
1262 :type '(choice (const :tag "Never" nil)
1263 (const :tag "Unless uniquify is enabled" unless-uniquify)
1264 (const :tag "Always" t))
1265 :group 'menu)
1266
1267(defcustom buffers-menu-show-status t
1268 "If non-nil, show modified/read-only status of buffers in the Buffers menu.
1269Setting this variable directly does not take effect until next time the
1270Buffers menu is regenerated."
1271 :set (lambda (symbol value)
1272 (set symbol value)
1273 (menu-bar-update-buffers t))
1274 :initialize 'custom-initialize-default
1275 :type 'boolean
1276 :group 'menu)
1277
1248(defvar list-buffers-directory nil) 1278(defvar list-buffers-directory nil)
1249 1279
1250(defvar menu-bar-update-buffers-maxbuf) 1280(defvar menu-bar-update-buffers-maxbuf)
@@ -1264,25 +1294,29 @@ key (or menu-item)"))
1264 (select-frame frame))) 1294 (select-frame frame)))
1265 1295
1266(defun menu-bar-update-buffers-1 (elt) 1296(defun menu-bar-update-buffers-1 (elt)
1267 ;; (format "%%%ds %%s%%s %%s" menu-bar-update-buffers-maxbuf)
1268 (let* ((buf (car elt)) 1297 (let* ((buf (car elt))
1269 (file 1298 (file
1270 (and (or (not (boundp 'uniquify-buffer-name-style)) 1299 (and (if (eq buffers-menu-show-directories 'unless-uniquify)
1271 (null uniquify-buffer-name-style)) 1300 (or (not (boundp 'uniquify-buffer-name-style))
1301 (null uniquify-buffer-name-style))
1302 buffers-menu-show-directories)
1272 (or (buffer-file-name buf) 1303 (or (buffer-file-name buf)
1273 (buffer-local-value 'list-buffers-directory buf)))) 1304 (buffer-local-value 'list-buffers-directory buf)))))
1274 (mod (if (buffer-modified-p buf) "*" ""))
1275 (ro (if (buffer-local-value 'buffer-read-only buf) "%" "")))
1276 (when file 1305 (when file
1277 (setq file (file-name-directory file))) 1306 (setq file (file-name-directory file)))
1278 (when (and file (> (length file) 20)) 1307 (when (and file (> (length file) 20))
1279 (setq file (concat "..." (substring file -17)))) 1308 (setq file (concat "..." (substring file -17))))
1280 (cons (if file 1309 (cons (if buffers-menu-show-status
1281 (format "%s %s%s -- %s" (cdr elt) mod ro file) 1310 (let ((mod (if (buffer-modified-p buf) "*" ""))
1282 (format "%s %s%s" (cdr elt) mod ro)) 1311 (ro (if (buffer-local-value 'buffer-read-only buf) "%" "")))
1312 (if file
1313 (format "%s %s%s -- %s" (cdr elt) mod ro file)
1314 (format "%s %s%s" (cdr elt) mod ro)))
1315 (if file
1316 (format "%s -- %s" (cdr elt) file)
1317 (cdr elt)))
1283 buf))) 1318 buf)))
1284 1319
1285
1286;; Used to cache the menu entries for commands in the Buffers menu 1320;; Used to cache the menu entries for commands in the Buffers menu
1287(defvar menu-bar-buffers-menu-command-entries nil) 1321(defvar menu-bar-buffers-menu-command-entries nil)
1288 1322