changeset 50503:7c83c5770cb6

(last-sexp-toggle-display): At end of buffer, just call `newline'.
author Richard M. Stallman <rms@gnu.org>
date Wed, 09 Apr 2003 01:32:45 +0000
parents c94093d2e642
children e907858b9aef
files lisp/emacs-lisp/lisp-mode.el
diffstat 1 files changed, 23 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/lisp-mode.el	Wed Apr 09 01:31:31 2003 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el	Wed Apr 09 01:32:45 2003 +0000
@@ -419,24 +419,29 @@
 						printed-value)))))
 
 
-(defun last-sexp-toggle-display ()
+(defun last-sexp-toggle-display (&optional arg)
   "Toggle between abbreviated and unabbreviated printed representations."
-  (interactive)
-  (let ((value (get-text-property (point) 'printed-value)))
-    (when value
-      (let ((beg (or (previous-single-property-change (min (point-max) (1+ (point)))
-						      'printed-value)
-		     (point)))
-	    (end (or (next-single-char-property-change (point) 'printed-value) (point)))
-	    (standard-output (current-buffer))
-	    (point (point)))
-	(delete-region beg end)
-	(insert (nth 1 value))
-	(last-sexp-setup-props beg (point)
-			       (nth 0 value)
-			       (nth 2 value)
-			       (nth 1 value))
-	(goto-char (min (point-max) point))))))
+  (interactive "P")
+  ;; Normally this command won't be called at end of line.
+  ;; But when the end of the line is also the end of the buffer,
+  ;; it does get called.  For consistency, pretend it was not called.
+  (if (eobp)
+      (newline arg)
+    (let ((value (get-text-property (point) 'printed-value)))
+      (when value
+	(let ((beg (or (previous-single-property-change (min (point-max) (1+ (point)))
+							'printed-value)
+		       (point)))
+	      (end (or (next-single-char-property-change (point) 'printed-value) (point)))
+	      (standard-output (current-buffer))
+	      (point (point)))
+	  (delete-region beg end)
+	  (insert (nth 1 value))
+	  (last-sexp-setup-props beg (point)
+				 (nth 0 value)
+				 (nth 2 value)
+				 (nth 1 value))
+	  (goto-char (min (point-max) point)))))))
 
 (defun eval-last-sexp-1 (eval-last-sexp-arg-internal)
   "Evaluate sexp before point; print value in minibuffer.
@@ -626,7 +631,7 @@
 	     (unless (eq old-value new-value)
 	       (setq debug-on-error new-value))
 	     value)))))
-
+
 
 (defun lisp-comment-indent ()
   (if (looking-at "\\s<\\s<\\s<")