diff options
| author | Stefan Monnier | 2008-06-25 15:13:03 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2008-06-25 15:13:03 +0000 |
| commit | 70ef885744280207d433abf7aa6e4a700efddf78 (patch) | |
| tree | 6c37ad952475b981903a0a2ea96df6cf2c04c8db | |
| parent | eafee8f2174ec13e93f1b7c14472b207fb5f9f60 (diff) | |
| download | emacs-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/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/bs.el | 49 | ||||
| -rw-r--r-- | lisp/buff-menu.el | 39 |
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 @@ | |||
| 1 | 2008-06-25 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2008-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. |
| 972 | Uses function `vc-toggle-read-only'." | 966 | Uses 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. | |||
| 336 | Negative arg means delete backwards." | 336 | Negative 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)) |