diff options
| author | Eric S. Raymond | 1993-03-27 01:58:22 +0000 |
|---|---|---|
| committer | Eric S. Raymond | 1993-03-27 01:58:22 +0000 |
| commit | d91e2b1a2d91d9dd76754d4c639a5671fb0dd8e6 (patch) | |
| tree | 3822fe95080043278059474ede7fe1604bc4577c | |
| parent | 43713c76d373d081595f67aad7b693f49e6854b3 (diff) | |
| download | emacs-d91e2b1a2d91d9dd76754d4c639a5671fb0dd8e6.tar.gz emacs-d91e2b1a2d91d9dd76754d4c639a5671fb0dd8e6.zip | |
(Buffer-menu-toggle-read-only) Added, per Rob Austein's suggestion
in the LCD package bm-toggle.el.
| -rw-r--r-- | lisp/buff-menu.el | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index e722df90953..c70e9a0aba8 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el | |||
| @@ -83,7 +83,9 @@ restore window configuration when only one buffer is selected.") | |||
| 83 | (define-key Buffer-menu-mode-map "?" 'describe-mode) | 83 | (define-key Buffer-menu-mode-map "?" 'describe-mode) |
| 84 | (define-key Buffer-menu-mode-map "u" 'Buffer-menu-unmark) | 84 | (define-key Buffer-menu-mode-map "u" 'Buffer-menu-unmark) |
| 85 | (define-key Buffer-menu-mode-map "m" 'Buffer-menu-mark) | 85 | (define-key Buffer-menu-mode-map "m" 'Buffer-menu-mark) |
| 86 | (define-key Buffer-menu-mode-map "t" 'Buffer-menu-visit-tags-table)) | 86 | (define-key Buffer-menu-mode-map "t" 'Buffer-menu-visit-tags-table) |
| 87 | (define-key Buffer-menu-mode-map "%" 'Buffer-menu-toggle-read-only) | ||
| 88 | ) | ||
| 87 | 89 | ||
| 88 | ;; Buffer Menu mode is suitable only for specially formatted data. | 90 | ;; Buffer Menu mode is suitable only for specially formatted data. |
| 89 | (put 'Buffer-menu-mode 'mode-class 'special) | 91 | (put 'Buffer-menu-mode 'mode-class 'special) |
| @@ -111,7 +113,8 @@ Letters do not insert themselves; instead, they are commands. | |||
| 111 | \\[Buffer-menu-execute] -- delete or save marked buffers. | 113 | \\[Buffer-menu-execute] -- delete or save marked buffers. |
| 112 | \\[Buffer-menu-unmark] -- remove all kinds of marks from current line. | 114 | \\[Buffer-menu-unmark] -- remove all kinds of marks from current line. |
| 113 | With prefix argument, also move up one line. | 115 | With prefix argument, also move up one line. |
| 114 | \\[Buffer-menu-backup-unmark] -- back up a line and remove marks." | 116 | \\[Buffer-menu-backup-unmark] -- back up a line and remove marks. |
| 117 | \\[Buffer-menu-toggle-read-only] -- toggle read-only status of buffer on this line." | ||
| 115 | (kill-all-local-variables) | 118 | (kill-all-local-variables) |
| 116 | (use-local-map Buffer-menu-mode-map) | 119 | (use-local-map Buffer-menu-mode-map) |
| 117 | (setq truncate-lines t) | 120 | (setq truncate-lines t) |
| @@ -355,4 +358,20 @@ The current window remains selected." | |||
| 355 | (pop-to-buffer buff) | 358 | (pop-to-buffer buff) |
| 356 | (bury-buffer menu))) | 359 | (bury-buffer menu))) |
| 357 | 360 | ||
| 361 | (defun Buffer-menu-toggle-read-only () | ||
| 362 | "Toggle read-only status of buffer on this line." | ||
| 363 | (interactive) | ||
| 364 | (let (char) | ||
| 365 | (save-excursion | ||
| 366 | (set-buffer (Buffer-menu-buffer t)) | ||
| 367 | (toggle-read-only) | ||
| 368 | (setq char (if buffer-read-only ?% ? ))) | ||
| 369 | (save-excursion | ||
| 370 | (beginning-of-line) | ||
| 371 | (forward-char 2) | ||
| 372 | (if (/= (following-char) char) | ||
| 373 | (let (buffer-read-only) | ||
| 374 | (delete-char 1) | ||
| 375 | (insert char)))))) | ||
| 376 | |||
| 358 | ;;; buff-menu.el ends here | 377 | ;;; buff-menu.el ends here |