;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
"Mark buffer on this line for being displayed by \\<Buffer-menu-mode-map>\\[Buffer-menu-select] command."
(interactive)
(when (Buffer-menu-no-header)
- (let ((buffer-read-only nil))
+ (let ((inhibit-read-only t))
(delete-char 1)
(insert ?>)
(forward-line 1))))
(when (Buffer-menu-no-header)
(let* ((buf (Buffer-menu-buffer t))
(mod (buffer-modified-p buf))
- (readonly (save-excursion (set-buffer buf) buffer-read-only))
- (buffer-read-only nil))
+ (readonly (with-current-buffer buf buffer-read-only))
+ (inhibit-read-only t))
(delete-char 3)
(insert (if readonly (if mod " %*" " % ") (if mod " *" " ")))))
(forward-line (if backup -1 1)))
Negative arg means delete backwards."
(interactive "p")
(when (Buffer-menu-no-header)
- (let ((buffer-read-only nil))
+ (let ((inhibit-read-only t))
(if (or (null arg) (= arg 0))
(setq arg 1))
(while (> arg 0)
"Mark buffer on this line to be saved by \\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command."
(interactive)
(when (Buffer-menu-no-header)
- (let ((buffer-read-only nil))
+ (let ((inhibit-read-only t))
(forward-char 2)
(delete-char 1)
(insert ?S)
(defun Buffer-menu-not-modified (&optional arg)
"Mark buffer on this line as unmodified (no changes to save)."
(interactive "P")
- (save-excursion
- (set-buffer (Buffer-menu-buffer t))
+ (with-current-buffer (Buffer-menu-buffer t)
(set-buffer-modified-p arg))
(save-excursion
(beginning-of-line)
(forward-char 2)
(if (= (char-after) (if arg ?\s ?*))
- (let ((buffer-read-only nil))
+ (let ((inhibit-read-only t))
(delete-char 1)
(insert (if arg ?* ?\s))))))
(Buffer-menu-beginning)
(while (re-search-forward "^..S" nil t)
(let ((modp nil))
- (save-excursion
- (set-buffer (Buffer-menu-buffer t))
+ (with-current-buffer (Buffer-menu-buffer t)
(save-buffer)
(setq modp (buffer-modified-p)))
- (let ((buffer-read-only nil))
+ (let ((inhibit-read-only t))
(delete-char -1)
(insert (if modp ?* ?\s))))))
(save-excursion
(Buffer-menu-beginning)
(let ((buff-menu-buffer (current-buffer))
- (buffer-read-only nil))
+ (inhibit-read-only t))
(while (re-search-forward "^D" nil t)
(forward-char -1)
(let ((buf (Buffer-menu-buffer nil)))
(Buffer-menu-beginning)
(while (re-search-forward "^>" nil t)
(setq tem (Buffer-menu-buffer t))
- (let ((buffer-read-only nil))
+ (let ((inhibit-read-only t))
(delete-char -1)
(insert ?\s))
(or (eq tem buff) (memq tem others) (setq others (cons tem others))))
"Select the buffer whose line you click on."
(interactive "e")
(let (buffer)
- (save-excursion
- (set-buffer (window-buffer (posn-window (event-end event))))
+ (with-current-buffer (window-buffer (posn-window (event-end event)))
(save-excursion
(goto-char (posn-point (event-end event)))
(setq buffer (Buffer-menu-buffer t))))
"Toggle read-only status of buffer on this line, perhaps via version control."
(interactive)
(let (char)
- (save-excursion
- (set-buffer (Buffer-menu-buffer t))
- (vc-toggle-read-only)
+ (with-current-buffer (Buffer-menu-buffer t)
+ (toggle-read-only)
(setq char (if buffer-read-only ?% ?\s)))
(save-excursion
(beginning-of-line)
(forward-char 1)
(if (/= (following-char) char)
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(delete-char 1)
(insert char))))))
(beginning-of-line)
(bury-buffer (Buffer-menu-buffer t))
(let ((line (buffer-substring (point) (progn (forward-line 1) (point))))
- (buffer-read-only nil))
+ (inhibit-read-only t))
(delete-region (point) (progn (forward-line -1) (point)))
(goto-char (point-max))
(insert line))
(if (< column 2) (setq column 2))
(if (> column 5) (setq column 5)))
(setq Buffer-menu-sort-column column)
- (let (buffer-read-only l buf m1 m2)
+ (let ((inhibit-read-only t) l buf m1 m2)
(save-excursion
(Buffer-menu-beginning)
(while (not (eobp))
(push (list buf m1 m2) l)))
(forward-line)))
(Buffer-menu-revert)
- (setq buffer-read-only)
(save-excursion
(Buffer-menu-beginning)
(while (not (eobp))
;; Put the buffer name into a text property
;; so we don't have to extract it from the text.
;; This way we avoid problems with unusual buffer names.
- (Buffer-menu-buffer+size (nth 2 buffer)
- (int-to-string (nth 3 buffer))
- `(buffer-name ,(nth 2 buffer)
- buffer ,(car buffer)
- font-lock-face buffer-menu-buffer
- mouse-face highlight
- help-echo "mouse-2: select this buffer"))
- " "
+ (let ((name (nth 2 buffer))
+ (size (int-to-string (nth 3 buffer))))
+ (Buffer-menu-buffer+size name size
+ `(buffer-name ,name
+ buffer ,(car buffer)
+ font-lock-face buffer-menu-buffer
+ mouse-face highlight
+ help-echo
+ ,(if (>= (length name)
+ (- Buffer-menu-buffer+size-width
+ (max (length size) 3)
+ 2))
+ name
+ "mouse-2: select this buffer"))))
+ " "
(if (> (length (nth 4 buffer)) Buffer-menu-mode-width)
(substring (nth 4 buffer) 0 Buffer-menu-mode-width)
(nth 4 buffer)))