aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2008-06-25 15:13:03 +0000
committerStefan Monnier2008-06-25 15:13:03 +0000
commit70ef885744280207d433abf7aa6e4a700efddf78 (patch)
tree6c37ad952475b981903a0a2ea96df6cf2c04c8db
parenteafee8f2174ec13e93f1b7c14472b207fb5f9f60 (diff)
downloademacs-70ef885744280207d433abf7aa6e4a700efddf78.tar.gz
emacs-70ef885744280207d433abf7aa6e4a700efddf78.zip
* buff-menu.el: Use with-current-buffer and inhibit-read-only.
(Buffer-menu-toggle-read-only): Avoid vc-toggle-read-only. * bs.el: Use with-current-buffer. Simplify. (bs-toggle-readonly): Avoid vc-toggle-read-only.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/bs.el49
-rw-r--r--lisp/buff-menu.el39
3 files changed, 42 insertions, 52 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 82822ff4a3f..f38574259f7 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,11 @@
12008-06-25 Stefan Monnier <monnier@iro.umontreal.ca> 12008-06-25 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * buff-menu.el: Use with-current-buffer and inhibit-read-only.
4 (Buffer-menu-toggle-read-only): Avoid vc-toggle-read-only.
5
6 * bs.el: Use with-current-buffer. Simplify.
7 (bs-toggle-readonly): Avoid vc-toggle-read-only.
8
3 * eshell/esh-cmd.el (eshell-manipulate): Check eshell-debug-command 9 * eshell/esh-cmd.el (eshell-manipulate): Check eshell-debug-command
4 is bound before using it. 10 is bound before using it.
5 11
diff --git a/lisp/bs.el b/lisp/bs.el
index d240de81845..88d969f05a1 100644
--- a/lisp/bs.el
+++ b/lisp/bs.el
@@ -129,6 +129,8 @@
129 129
130;;; Code: 130;;; Code:
131 131
132(eval-when-compile (require 'cl))
133
132;; ---------------------------------------------------------------------- 134;; ----------------------------------------------------------------------
133;; Globals for customization 135;; Globals for customization
134;; ---------------------------------------------------------------------- 136;; ----------------------------------------------------------------------
@@ -373,9 +375,7 @@ A value of `always' means to show buffer regardless of the configuration.")
373 375
374(defun bs--sort-by-size (b1 b2) 376(defun bs--sort-by-size (b1 b2)
375 "Compare buffers B1 and B2 by buffer size." 377 "Compare buffers B1 and B2 by buffer size."
376 (save-excursion 378 (< (buffer-size b1) (buffer-size b2)))
377 (< (progn (set-buffer b1) (buffer-size))
378 (progn (set-buffer b2) (buffer-size)))))
379 379
380(defcustom bs-sort-functions 380(defcustom bs-sort-functions
381 '(("by name" bs--sort-by-name "Buffer" region) 381 '(("by name" bs--sort-by-name "Buffer" region)
@@ -814,11 +814,9 @@ Leave Buffer Selection Menu."
814(defun bs-save () 814(defun bs-save ()
815 "Save buffer on current line." 815 "Save buffer on current line."
816 (interactive) 816 (interactive)
817 (let ((buffer (bs--current-buffer))) 817 (with-current-buffer (bs--current-buffer)
818 (save-excursion 818 (save-buffer)
819 (set-buffer buffer) 819 (bs--update-current-line))
820 (save-buffer))
821 (bs--update-current-line)))
822 820
823(defun bs-visit-tags-table () 821(defun bs-visit-tags-table ()
824 "Visit the tags table in the buffer on this line. 822 "Visit the tags table in the buffer on this line.
@@ -832,16 +830,12 @@ See `visit-tags-table'."
832(defun bs-toggle-current-to-show () 830(defun bs-toggle-current-to-show ()
833 "Toggle status of showing flag for buffer in current line." 831 "Toggle status of showing flag for buffer in current line."
834 (interactive) 832 (interactive)
835 (let ((buffer (bs--current-buffer)) 833 (let ((res
836 res) 834 (with-current-buffer (bs--current-buffer)
837 (save-excursion 835 (setq bs-buffer-show-mark (case bs-buffer-show-mark
838 (set-buffer buffer) 836 ((nil) 'never)
839 (setq res (cond ((null bs-buffer-show-mark) 837 ((never) 'always)
840 'never) 838 (t nil))))))
841 ((eq bs-buffer-show-mark 'never)
842 'always)
843 (t nil)))
844 (setq bs-buffer-show-mark res))
845 (bs--update-current-line) 839 (bs--update-current-line)
846 (bs--set-window-height) 840 (bs--set-window-height)
847 (bs--show-config-message res))) 841 (bs--show-config-message res)))
@@ -969,21 +963,17 @@ Default is `bs--current-sort-function'."
969 963
970(defun bs-toggle-readonly () 964(defun bs-toggle-readonly ()
971 "Toggle read-only status for buffer on current line. 965 "Toggle read-only status for buffer on current line.
972Uses function `vc-toggle-read-only'." 966Uses function `toggle-read-only'."
973 (interactive) 967 (interactive)
974 (let ((buffer (bs--current-buffer))) 968 (with-current-buffer (bs--current-buffer)
975 (save-excursion 969 (toggle-read-only))
976 (set-buffer buffer) 970 (bs--update-current-line))
977 (vc-toggle-read-only))
978 (bs--update-current-line)))
979 971
980(defun bs-clear-modified () 972(defun bs-clear-modified ()
981 "Set modified flag for buffer on current line to nil." 973 "Set modified flag for buffer on current line to nil."
982 (interactive) 974 (interactive)
983 (let ((buffer (bs--current-buffer))) 975 (with-current-buffer (bs--current-buffer)
984 (save-excursion 976 (set-buffer-modified-p nil))
985 (set-buffer buffer)
986 (set-buffer-modified-p nil)))
987 (bs--update-current-line)) 977 (bs--update-current-line))
988 978
989(defun bs--nth-wrapper (count fun &rest args) 979(defun bs--nth-wrapper (count fun &rest args)
@@ -1352,8 +1342,7 @@ normally *buffer-selection*."
1352 (let ((string "") 1342 (let ((string "")
1353 (to-much 0) 1343 (to-much 0)
1354 (apply-args (append (list bs--buffer-coming-from bs-current-list)))) 1344 (apply-args (append (list bs--buffer-coming-from bs-current-list))))
1355 (save-excursion 1345 (with-current-buffer buffer
1356 (set-buffer buffer)
1357 (dolist (column bs-attributes-list) 1346 (dolist (column bs-attributes-list)
1358 (let* ((min (bs--get-value (nth 1 column))) 1347 (let* ((min (bs--get-value (nth 1 column)))
1359 (new-string (bs--format-aux (bs--get-value (nth 4 column) ; fun 1348 (new-string (bs--format-aux (bs--get-value (nth 4 column) ; fun
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index bf3cb26ccca..7ebf13c0976 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -305,7 +305,7 @@ For more information, see the function `buffer-menu'."
305 "Mark buffer on this line for being displayed by \\<Buffer-menu-mode-map>\\[Buffer-menu-select] command." 305 "Mark buffer on this line for being displayed by \\<Buffer-menu-mode-map>\\[Buffer-menu-select] command."
306 (interactive) 306 (interactive)
307 (when (Buffer-menu-no-header) 307 (when (Buffer-menu-no-header)
308 (let ((buffer-read-only nil)) 308 (let ((inhibit-read-only t))
309 (delete-char 1) 309 (delete-char 1)
310 (insert ?>) 310 (insert ?>)
311 (forward-line 1)))) 311 (forward-line 1))))
@@ -317,8 +317,8 @@ Optional prefix arg means move up."
317 (when (Buffer-menu-no-header) 317 (when (Buffer-menu-no-header)
318 (let* ((buf (Buffer-menu-buffer t)) 318 (let* ((buf (Buffer-menu-buffer t))
319 (mod (buffer-modified-p buf)) 319 (mod (buffer-modified-p buf))
320 (readonly (save-excursion (set-buffer buf) buffer-read-only)) 320 (readonly (with-current-buffer buf buffer-read-only))
321 (buffer-read-only nil)) 321 (inhibit-read-only t))
322 (delete-char 3) 322 (delete-char 3)
323 (insert (if readonly (if mod " %*" " % ") (if mod " *" " "))))) 323 (insert (if readonly (if mod " %*" " % ") (if mod " *" " ")))))
324 (forward-line (if backup -1 1))) 324 (forward-line (if backup -1 1)))
@@ -336,7 +336,7 @@ Prefix arg is how many buffers to delete.
336Negative arg means delete backwards." 336Negative arg means delete backwards."
337 (interactive "p") 337 (interactive "p")
338 (when (Buffer-menu-no-header) 338 (when (Buffer-menu-no-header)
339 (let ((buffer-read-only nil)) 339 (let ((inhibit-read-only t))
340 (if (or (null arg) (= arg 0)) 340 (if (or (null arg) (= arg 0))
341 (setq arg 1)) 341 (setq arg 1))
342 (while (> arg 0) 342 (while (> arg 0)
@@ -361,7 +361,7 @@ and then move up one line. Prefix arg means move that many lines."
361 "Mark buffer on this line to be saved by \\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command." 361 "Mark buffer on this line to be saved by \\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command."
362 (interactive) 362 (interactive)
363 (when (Buffer-menu-no-header) 363 (when (Buffer-menu-no-header)
364 (let ((buffer-read-only nil)) 364 (let ((inhibit-read-only t))
365 (forward-char 2) 365 (forward-char 2)
366 (delete-char 1) 366 (delete-char 1)
367 (insert ?S) 367 (insert ?S)
@@ -370,14 +370,13 @@ and then move up one line. Prefix arg means move that many lines."
370(defun Buffer-menu-not-modified (&optional arg) 370(defun Buffer-menu-not-modified (&optional arg)
371 "Mark buffer on this line as unmodified (no changes to save)." 371 "Mark buffer on this line as unmodified (no changes to save)."
372 (interactive "P") 372 (interactive "P")
373 (save-excursion 373 (with-current-buffer (Buffer-menu-buffer t)
374 (set-buffer (Buffer-menu-buffer t))
375 (set-buffer-modified-p arg)) 374 (set-buffer-modified-p arg))
376 (save-excursion 375 (save-excursion
377 (beginning-of-line) 376 (beginning-of-line)
378 (forward-char 2) 377 (forward-char 2)
379 (if (= (char-after) (if arg ?\s ?*)) 378 (if (= (char-after) (if arg ?\s ?*))
380 (let ((buffer-read-only nil)) 379 (let ((inhibit-read-only t))
381 (delete-char 1) 380 (delete-char 1)
382 (insert (if arg ?* ?\s)))))) 381 (insert (if arg ?* ?\s))))))
383 382
@@ -393,17 +392,16 @@ and then move up one line. Prefix arg means move that many lines."
393 (Buffer-menu-beginning) 392 (Buffer-menu-beginning)
394 (while (re-search-forward "^..S" nil t) 393 (while (re-search-forward "^..S" nil t)
395 (let ((modp nil)) 394 (let ((modp nil))
396 (save-excursion 395 (with-current-buffer (Buffer-menu-buffer t)
397 (set-buffer (Buffer-menu-buffer t))
398 (save-buffer) 396 (save-buffer)
399 (setq modp (buffer-modified-p))) 397 (setq modp (buffer-modified-p)))
400 (let ((buffer-read-only nil)) 398 (let ((inhibit-read-only t))
401 (delete-char -1) 399 (delete-char -1)
402 (insert (if modp ?* ?\s)))))) 400 (insert (if modp ?* ?\s))))))
403 (save-excursion 401 (save-excursion
404 (Buffer-menu-beginning) 402 (Buffer-menu-beginning)
405 (let ((buff-menu-buffer (current-buffer)) 403 (let ((buff-menu-buffer (current-buffer))
406 (buffer-read-only nil)) 404 (inhibit-read-only t))
407 (while (re-search-forward "^D" nil t) 405 (while (re-search-forward "^D" nil t)
408 (forward-char -1) 406 (forward-char -1)
409 (let ((buf (Buffer-menu-buffer nil))) 407 (let ((buf (Buffer-menu-buffer nil)))
@@ -430,7 +428,7 @@ in the selected frame."
430 (Buffer-menu-beginning) 428 (Buffer-menu-beginning)
431 (while (re-search-forward "^>" nil t) 429 (while (re-search-forward "^>" nil t)
432 (setq tem (Buffer-menu-buffer t)) 430 (setq tem (Buffer-menu-buffer t))
433 (let ((buffer-read-only nil)) 431 (let ((inhibit-read-only t))
434 (delete-char -1) 432 (delete-char -1)
435 (insert ?\s)) 433 (insert ?\s))
436 (or (eq tem buff) (memq tem others) (setq others (cons tem others)))) 434 (or (eq tem buff) (memq tem others) (setq others (cons tem others))))
@@ -478,8 +476,7 @@ in the selected frame."
478 "Select the buffer whose line you click on." 476 "Select the buffer whose line you click on."
479 (interactive "e") 477 (interactive "e")
480 (let (buffer) 478 (let (buffer)
481 (save-excursion 479 (with-current-buffer (window-buffer (posn-window (event-end event)))
482 (set-buffer (window-buffer (posn-window (event-end event))))
483 (save-excursion 480 (save-excursion
484 (goto-char (posn-point (event-end event))) 481 (goto-char (posn-point (event-end event)))
485 (setq buffer (Buffer-menu-buffer t)))) 482 (setq buffer (Buffer-menu-buffer t))))
@@ -525,15 +522,14 @@ The current window remains selected."
525 "Toggle read-only status of buffer on this line, perhaps via version control." 522 "Toggle read-only status of buffer on this line, perhaps via version control."
526 (interactive) 523 (interactive)
527 (let (char) 524 (let (char)
528 (save-excursion 525 (with-current-buffer (Buffer-menu-buffer t)
529 (set-buffer (Buffer-menu-buffer t)) 526 (toggle-read-only)
530 (vc-toggle-read-only)
531 (setq char (if buffer-read-only ?% ?\s))) 527 (setq char (if buffer-read-only ?% ?\s)))
532 (save-excursion 528 (save-excursion
533 (beginning-of-line) 529 (beginning-of-line)
534 (forward-char 1) 530 (forward-char 1)
535 (if (/= (following-char) char) 531 (if (/= (following-char) char)
536 (let (buffer-read-only) 532 (let ((inhibit-read-only t))
537 (delete-char 1) 533 (delete-char 1)
538 (insert char)))))) 534 (insert char))))))
539 535
@@ -545,7 +541,7 @@ The current window remains selected."
545 (beginning-of-line) 541 (beginning-of-line)
546 (bury-buffer (Buffer-menu-buffer t)) 542 (bury-buffer (Buffer-menu-buffer t))
547 (let ((line (buffer-substring (point) (progn (forward-line 1) (point)))) 543 (let ((line (buffer-substring (point) (progn (forward-line 1) (point))))
548 (buffer-read-only nil)) 544 (inhibit-read-only t))
549 (delete-region (point) (progn (forward-line -1) (point))) 545 (delete-region (point) (progn (forward-line -1) (point)))
550 (goto-char (point-max)) 546 (goto-char (point-max))
551 (insert line)) 547 (insert line))
@@ -612,7 +608,7 @@ For more information, see the function `buffer-menu'."
612 (if (< column 2) (setq column 2)) 608 (if (< column 2) (setq column 2))
613 (if (> column 5) (setq column 5))) 609 (if (> column 5) (setq column 5)))
614 (setq Buffer-menu-sort-column column) 610 (setq Buffer-menu-sort-column column)
615 (let (buffer-read-only l buf m1 m2) 611 (let ((inhibit-read-only t) l buf m1 m2)
616 (save-excursion 612 (save-excursion
617 (Buffer-menu-beginning) 613 (Buffer-menu-beginning)
618 (while (not (eobp)) 614 (while (not (eobp))
@@ -625,7 +621,6 @@ For more information, see the function `buffer-menu'."
625 (push (list buf m1 m2) l))) 621 (push (list buf m1 m2) l)))
626 (forward-line))) 622 (forward-line)))
627 (Buffer-menu-revert) 623 (Buffer-menu-revert)
628 (setq buffer-read-only)
629 (save-excursion 624 (save-excursion
630 (Buffer-menu-beginning) 625 (Buffer-menu-beginning)
631 (while (not (eobp)) 626 (while (not (eobp))