changeset 76583:8693ff852e51

Revert 2007-01-04 change by Kevin Rodgers due to lack of legal papers.
author Chong Yidong <cyd@stupidchicken.com>
date Mon, 19 Mar 2007 18:39:24 +0000
parents cc2f126308a1
children 0f783040fbdb
files lisp/ChangeLog lisp/subr.el
diffstat 2 files changed, 26 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Mar 19 18:33:14 2007 +0000
+++ b/lisp/ChangeLog	Mon Mar 19 18:39:24 2007 +0000
@@ -1783,12 +1783,6 @@
 	* files.el (find-file-noselect-1, set-visited-file-name):
 	Allow backup-enable-predicate to be nil.
 
-2007-01-04  Kevin Rodgers  <kevin.d.rodgers@gmail.com>
-
-	* subr.el (momentary): New face.
-	(momentary-string-display): Display the string via a temporary
-	overlay using the new face, instead of inserting it in the buffer.
-
 2007-01-04  Andreas Schwab  <schwab@suse.de>
 
 	* progmodes/ebrowse.el (ebrowse-global-prefix-key): Fix typo in
--- a/lisp/subr.el	Mon Mar 19 18:33:14 2007 +0000
+++ b/lisp/subr.el	Mon Mar 19 18:39:24 2007 +0000
@@ -1903,21 +1903,32 @@
 Display MESSAGE (optional fourth arg) in the echo area.
 If MESSAGE is nil, instructions to type EXIT-CHAR are displayed there."
   (or exit-char (setq exit-char ?\s))
-  (let ((momentary-overlay (make-overlay pos pos nil t)))
-    (overlay-put momentary-overlay 'before-string
-		 (propertize string 'face 'momentary))
+  (let ((inhibit-read-only t)
+	;; Don't modify the undo list at all.
+	(buffer-undo-list t)
+	(modified (buffer-modified-p))
+	(name buffer-file-name)
+	insert-end)
     (unwind-protect
 	(progn
-	  ;; If the message end is off screen, recenter now.
-	  (if (< (window-end nil t) (+ pos (length string)))
-	      (recenter (/ (window-height) 2)))
-	  ;; If that pushed message start off the screen,
-	  ;; scroll to start it at the top of the screen.
 	  (save-excursion
+	    (goto-char pos)
+	    ;; To avoid trouble with out-of-bounds position
+	    (setq pos (point))
+	    ;; defeat file locking... don't try this at home, kids!
+	    (setq buffer-file-name nil)
+	    (insert-before-markers string)
+	    (setq insert-end (point))
+	    ;; If the message end is off screen, recenter now.
+	    (if (< (window-end nil t) insert-end)
+		(recenter (/ (window-height) 2)))
+	    ;; If that pushed message start off the screen,
+	    ;; scroll to start it at the top of the screen.
 	    (move-to-window-line 0)
 	    (if (> (point) pos)
-		(goto-char pos)
-	      (recenter 0)))
+		(progn
+		  (goto-char pos)
+		  (recenter 0))))
 	  (message (or message "Type %s to continue editing.")
 		   (single-key-description exit-char))
 	  (let (char)
@@ -1937,7 +1948,11 @@
 	      (or (eq char exit-char)
 		  (eq char (event-convert-list exit-char))
 		  (setq unread-command-events (list char))))))
-      (delete-overlay momentary-overlay))))
+      (if insert-end
+	  (save-excursion
+	    (delete-region pos insert-end)))
+      (setq buffer-file-name name)
+      (set-buffer-modified-p modified))))
 
 
 ;;;; Overlay operations