diff options
| author | Miles Bader | 2002-04-24 05:35:03 +0000 |
|---|---|---|
| committer | Miles Bader | 2002-04-24 05:35:03 +0000 |
| commit | 68310f2a121dac224b0104c1526ad05ff0de3202 (patch) | |
| tree | 3c14b51f496b743441b26386aec9763f951b2d4a | |
| parent | 07cc1196d2c8c68bd703dae8c431ea4bb49464d6 (diff) | |
| download | emacs-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/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/menu-bar.el | 54 |
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 @@ | |||
| 1 | 2002-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 | |||
| 1 | 2002-04-24 Martin Stjernholm <mast@lysator.liu.se> | 7 | 2002-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. | ||
| 1251 | The special value `unless-uniquify' means that directories will be shown | ||
| 1252 | unless `uniquify-buffer-name-style' is non-nil (in which case, buffer | ||
| 1253 | names should include enough of a buffer's directory to distinguish it | ||
| 1254 | from other buffers). | ||
| 1255 | |||
| 1256 | Setting this variable directly does not take effect until next time the | ||
| 1257 | Buffers 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. | ||
| 1269 | Setting this variable directly does not take effect until next time the | ||
| 1270 | Buffers 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 | ||