]> code.delx.au - gnu-emacs/commitdiff
(open-line): Shield undo from the hack to insert at pt-1.
authorRichard M. Stallman <rms@gnu.org>
Sat, 3 Oct 1992 02:21:51 +0000 (02:21 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 3 Oct 1992 02:21:51 +0000 (02:21 +0000)
lisp/simple.el

index d4eac802e339e96694af4a16344b2f4e381948ef..243b1eeb2118fc7b1e326f778df27f6a185f209e 100644 (file)
@@ -28,7 +28,17 @@ With arg N, insert N newlines."
   (interactive "*p")
   (let* ((do-fill-prefix (and fill-prefix (bolp)))
         (flag (and (null do-fill-prefix) (bolp) (not (bobp)))))
-    (if flag (forward-char -1))
+    ;; If this is a simple case, and we are at the beginning of a line,
+    ;; actually insert the newline *before* the preceding newline
+    ;; instead of after.  That makes better display behavior.
+    (if flag
+       (progn
+         ;; If undo is enabled, don't let this hack be visible:
+         ;; record the real value of point as the place to move back to
+         ;; if we undo this insert.
+         (if (and buffer-undo-list (not (eq buffer-undo-list t)))
+             (setq buffer-undo-list (cons (point) buffer-undo-list)))
+         (forward-char -1)))
     (while (> arg 0)
       (save-excursion
         (insert ?\n))