From e90f854587c8731d7c487723e4cc3a75b4e58f7a Mon Sep 17 00:00:00 2001 From: Sam Steingold Date: Wed, 2 Feb 2011 12:59:44 -0500 Subject: * lisp/apropos.el (apropos-print): Now that `apropos-mode' inherits from `special-mode', entering it makes the buffer read-only, so call it only when everything has been already inserted. * lisp/emacs-lisp/ert.el (ert--setup-results-buffer) (ert-results-pop-to-backtrace-for-test-at-point) (ert-results-pop-to-messages-for-test-at-point) (ert-results-pop-to-timings): Ditto. * lisp/emacs-lisp/package.el (package--list-packages): Ditto. * lisp/play/solitaire.el (solitaire): Ditto. --- lisp/ChangeLog | 12 ++++++++++++ lisp/apropos.el | 3 +-- lisp/emacs-lisp/ert.el | 27 +++++++++++---------------- lisp/emacs-lisp/package.el | 4 ++-- lisp/play/solitaire.el | 3 +-- 5 files changed, 27 insertions(+), 22 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index feb5daeca3b..8b7d36b8387 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2011-02-02 Sam Steingold + + * apropos.el (apropos-print): Now that `apropos-mode' inherits + from `special-mode', entering it makes the buffer read-only, so + call it only when everything has been already inserted. + * emacs-lisp/ert.el (ert--setup-results-buffer) + (ert-results-pop-to-backtrace-for-test-at-point) + (ert-results-pop-to-messages-for-test-at-point) + (ert-results-pop-to-timings): Ditto. + * emacs-lisp/package.el (package--list-packages): Ditto. + * play/solitaire.el (solitaire): Ditto. + 2011-02-02 Chong Yidong * progmodes/compile.el: Make all faces inherit. diff --git a/lisp/apropos.el b/lisp/apropos.el index ac7d3d4085e..70ce860e1d7 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el @@ -974,7 +974,6 @@ If non-nil TEXT is a string that will be printed as a heading." (old-buffer (current-buffer)) symbol item) (set-buffer standard-output) - (apropos-mode) (if (display-mouse-p) (insert "If moving the mouse over text changes the text's color, " @@ -1066,7 +1065,7 @@ If non-nil TEXT is a string that will be printed as a heading." (apropos-print-doc 4 'apropos-plist nil)) (set (make-local-variable 'truncate-partial-width-windows) t) (set (make-local-variable 'truncate-lines) t) - (setq buffer-read-only t)))) + (apropos-mode)))) (prog1 apropos-accumulator (setq apropos-accumulator ()))) ; permit gc diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el index fad8f822337..695dc1e2db6 100644 --- a/lisp/emacs-lisp/ert.el +++ b/lisp/emacs-lisp/ert.el @@ -1874,11 +1874,9 @@ BUFFER-NAME, if non-nil, is the buffer name to use." (unless buffer-name (setq buffer-name "*ert*")) (let ((buffer (get-buffer-create buffer-name))) (with-current-buffer buffer - (setq buffer-read-only t) (let ((inhibit-read-only t)) (buffer-disable-undo) (erase-buffer) - (ert-results-mode) ;; Erase buffer again in case switching out of the previous ;; mode inserted anything. (This happens e.g. when switching ;; from ert-results-mode to ert-results-mode when @@ -1897,8 +1895,9 @@ BUFFER-NAME, if non-nil, is the buffer name to use." (ewoc-enter-last ewoc (make-ert--ewoc-entry :test test :hidden-p t))) (ert--results-update-ewoc-hf ert--results-ewoc ert--results-stats) - (goto-char (1- (point-max))) - buffer))))) + (goto-char (1- (point-max))))) + (ert-results-mode) + buffer))) (defvar ert--selector-history nil @@ -2341,11 +2340,9 @@ To be used in the ERT results buffer." (let ((backtrace (ert-test-result-with-condition-backtrace result)) (buffer (get-buffer-create "*ERT Backtrace*"))) (pop-to-buffer buffer) - (setq buffer-read-only t) (let ((inhibit-read-only t)) (buffer-disable-undo) (erase-buffer) - (ert-simple-view-mode) ;; Use unibyte because `debugger-setup-buffer' also does so. (set-buffer-multibyte nil) (setq truncate-lines t) @@ -2354,7 +2351,8 @@ To be used in the ERT results buffer." (goto-char (point-min)) (insert "Backtrace for test `") (ert-insert-test-name-button (ert-test-name test)) - (insert "':\n"))))))) + (insert "':\n") + (ert-simple-view-mode))))))) (defun ert-results-pop-to-messages-for-test-at-point () "Display the part of the *Messages* buffer generated during the test at point. @@ -2367,16 +2365,15 @@ To be used in the ERT results buffer." (result (aref (ert--stats-test-results stats) pos))) (let ((buffer (get-buffer-create "*ERT Messages*"))) (pop-to-buffer buffer) - (setq buffer-read-only t) (let ((inhibit-read-only t)) (buffer-disable-undo) (erase-buffer) - (ert-simple-view-mode) (insert (ert-test-result-messages result)) (goto-char (point-min)) (insert "Messages for test `") (ert-insert-test-name-button (ert-test-name test)) - (insert "':\n"))))) + (insert "':\n") + (ert-simple-view-mode))))) (defun ert-results-pop-to-should-forms-for-test-at-point () "Display the list of `should' forms executed during the test at point. @@ -2389,11 +2386,9 @@ To be used in the ERT results buffer." (result (aref (ert--stats-test-results stats) pos))) (let ((buffer (get-buffer-create "*ERT list of should forms*"))) (pop-to-buffer buffer) - (setq buffer-read-only t) (let ((inhibit-read-only t)) (buffer-disable-undo) (erase-buffer) - (ert-simple-view-mode) (if (null (ert-test-result-should-forms result)) (insert "\n(No should forms during this test.)\n") (loop for form-description in (ert-test-result-should-forms result) @@ -2411,7 +2406,8 @@ To be used in the ERT results buffer." (insert (concat "(Values are shallow copies and may have " "looked different during the test if they\n" "have been modified destructively.)\n")) - (forward-line 1))))) + (forward-line 1) + (ert-simple-view-mode))))) (defun ert-results-toggle-printer-limits-for-test-at-point () "Toggle how much of the condition to print for the test at point. @@ -2443,11 +2439,9 @@ To be used in the ERT results buffer." (setq data (sort data (lambda (a b) (> (second a) (second b))))) (pop-to-buffer buffer) - (setq buffer-read-only t) (let ((inhibit-read-only t)) (buffer-disable-undo) (erase-buffer) - (ert-simple-view-mode) (if (null data) (insert "(No data)\n") (insert (format "%-3s %8s %8s\n" "" "time" "cumul")) @@ -2460,7 +2454,8 @@ To be used in the ERT results buffer." (insert "\n")))) (goto-char (point-min)) (insert "Tests by run time (seconds):\n\n") - (forward-line 1)))) + (forward-line 1) + (ert-simple-view-mode)))) ;;;###autoload (defun ert-describe-test (test-or-test-name) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index c581e586b98..af97bb1bd21 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -1658,10 +1658,10 @@ list; the default is to display everything in `package-alist'." (require 'finder-inf nil t) (let ((buf (get-buffer-create "*Packages*"))) (with-current-buffer buf - (package-menu-mode) (set (make-local-variable 'package-menu-package-list) packages) (set (make-local-variable 'package-menu-sort-key) nil) - (package--generate-package-list)) + (package--generate-package-list) + (package-menu-mode)) ;; The package menu buffer has keybindings. If the user types ;; `M-x list-packages', that suggests it should become current. (switch-to-buffer buf))) diff --git a/lisp/play/solitaire.el b/lisp/play/solitaire.el index a9cb6c32e7d..3e6e941473f 100644 --- a/lisp/play/solitaire.el +++ b/lisp/play/solitaire.el @@ -188,7 +188,6 @@ Pick your favourite shortcuts: (interactive "P") (switch-to-buffer "*Solitaire*") - (solitaire-mode) (setq buffer-read-only t) (setq solitaire-stones 32) (solitaire-insert-board) @@ -196,7 +195,7 @@ Pick your favourite shortcuts: (goto-char (point-max)) (setq solitaire-center (search-backward ".")) (setq buffer-undo-list (list (point))) - (set-buffer-modified-p nil)) + (solitaire-mode)) (defun solitaire-build-modeline () (setq mode-line-format -- cgit v1.2.1