Mercurial > emacs
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<")