emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/subr.el,v


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/subr.el,v
Date: Tue, 10 Jun 2008 16:12:20 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        08/06/10 16:12:19

Index: subr.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/subr.el,v
retrieving revision 1.598
retrieving revision 1.599
diff -u -b -r1.598 -r1.599
--- subr.el     10 Jun 2008 03:10:06 -0000      1.598
+++ subr.el     10 Jun 2008 16:12:18 -0000      1.599
@@ -2034,32 +2034,18 @@
 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 ((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)
+  (let ((ol (make-overlay pos pos))
+        (message (copy-sequence string)))
     (unwind-protect
        (progn
          (save-excursion
+            (overlay-put ol 'after-string message)
            (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)
-               (progn
-                 (goto-char pos)
-                 (recenter 0))))
+            (if (<= (window-end nil t) pos)
+                (recenter (/ (window-height) 2))))
          (message (or message "Type %s to continue editing.")
                   (single-key-description exit-char))
          (let (char)
@@ -2073,17 +2059,12 @@
                   ;; `exit-char' is a character, hence it differs
                   ;; from char, which is an event.
                   (setq unread-command-events (list char))))
-             ;; `exit-char' can be an event, or an event description
-             ;; list.
+              ;; `exit-char' can be an event, or an event description list.
              (setq char (read-event))
              (or (eq char exit-char)
                  (eq char (event-convert-list exit-char))
                  (setq unread-command-events (list char))))))
-      (if insert-end
-         (save-excursion
-           (delete-region pos insert-end)))
-      (setq buffer-file-name name)
-      (set-buffer-modified-p modified))))
+      (delete-overlay ol))))
 
 
 ;;;; Overlay operations




reply via email to

[Prev in Thread] Current Thread [Next in Thread]