changeset 110423:6c2baabc9d98

* lisp/emacs-lisp/warnings.el: Fix commenting convention. (display-warning): Use special mode and make the buffer read-only.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 19 Sep 2010 02:05:26 +0200
parents 93e093c035a0
children 03a492f2d1ce
files lisp/ChangeLog lisp/emacs-lisp/warnings.el
diffstat 2 files changed, 21 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Sep 18 23:36:29 2010 +0000
+++ b/lisp/ChangeLog	Sun Sep 19 02:05:26 2010 +0200
@@ -1,3 +1,8 @@
+2010-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* emacs-lisp/warnings.el: Fix commenting convention.
+	(display-warning): Use special mode and make the buffer read-only.
+
 2010-09-18  Jay Belanger  <jay.p.belanger@gmail.com>
 
 	* calc/calc-prog.el (calc-read-parse-table-part): Don't "fix" the
--- a/lisp/emacs-lisp/warnings.el	Sat Sep 18 23:36:29 2010 +0000
+++ b/lisp/emacs-lisp/warnings.el	Sun Sep 19 02:05:26 2010 +0200
@@ -119,9 +119,9 @@
   :type '(repeat (repeat symbol))
   :version "22.1")
 
-;;; The autoload cookie is so that programs can bind this variable
-;;; safely, testing the existing value, before they call one of the
-;;; warnings functions.
+;; The autoload cookie is so that programs can bind this variable
+;; safely, testing the existing value, before they call one of the
+;; warnings functions.
 ;;;###autoload
 (defvar warning-prefix-function nil
   "Function to generate warning prefixes.
@@ -132,9 +132,9 @@
 and the function can insert text in it.  This text becomes
 the beginning of the warning.")
 
-;;; The autoload cookie is so that programs can bind this variable
-;;; safely, testing the existing value, before they call one of the
-;;; warnings functions.
+;; The autoload cookie is so that programs can bind this variable
+;; safely, testing the existing value, before they call one of the
+;; warnings functions.
 ;;;###autoload
 (defvar warning-series nil
   "Non-nil means treat multiple `display-warning' calls as a series.
@@ -146,16 +146,16 @@
 also call that function before the next warning.")
 (put 'warning-series 'risky-local-variable t)
 
-;;; The autoload cookie is so that programs can bind this variable
-;;; safely, testing the existing value, before they call one of the
-;;; warnings functions.
+;; The autoload cookie is so that programs can bind this variable
+;; safely, testing the existing value, before they call one of the
+;; warnings functions.
 ;;;###autoload
 (defvar warning-fill-prefix nil
   "Non-nil means fill each warning text using this string as `fill-prefix'.")
 
-;;; The autoload cookie is so that programs can bind this variable
-;;; safely, testing the existing value, before they call one of the
-;;; warnings functions.
+;; The autoload cookie is so that programs can bind this variable
+;; safely, testing the existing value, before they call one of the
+;; warnings functions.
 ;;;###autoload
 (defvar warning-type-format (purecopy " (%s)")
   "Format for displaying the warning type in the warning message.
@@ -241,6 +241,8 @@
 	(with-current-buffer buffer
           ;; If we created the buffer, disable undo.
           (unless old
+            (special-mode)
+            (setq buffer-read-only t)
             (setq buffer-undo-list t))
 	  (goto-char (point-max))
 	  (when (and warning-series (symbolp warning-series))
@@ -248,6 +250,7 @@
 		  (prog1 (point-marker)
 		    (unless (eq warning-series t)
 		      (funcall warning-series)))))
+          (let ((inhibit-read-only t))
 	  (unless (bolp)
 	    (newline))
 	  (setq start (point))
@@ -262,7 +265,7 @@
 	    (let ((fill-prefix warning-fill-prefix)
 		  (fill-column 78))
 	      (fill-region start (point))))
-	  (setq end (point))
+            (setq end (point)))
 	  (when (and (markerp warning-series)
 		     (eq (marker-buffer warning-series) buffer))
 	    (goto-char warning-series)))