]> git.eshelyaron.com Git - emacs.git/commitdiff
(reindent-then-newline-and-indent): Use a `move after
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 24 Oct 2007 01:51:03 +0000 (01:51 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 24 Oct 2007 01:51:03 +0000 (01:51 +0000)
insert' kind of marker in the save-excursion.

lisp/ChangeLog
lisp/simple.el

index 258a63614277ce03592d22a087aaf74e3c217a21..0b3c86d40978f653c9f849a7fd601978a4456ef4 100644 (file)
@@ -1,3 +1,8 @@
+2007-10-24  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * simple.el (reindent-then-newline-and-indent): Use a `move after
+       insert' kind of marker in the save-excursion.
+
 2007-10-23  Michael Albinus  <michael.albinus@gmx.de>
 
        * net/tramp.el (tramp-set-file-uid-gid): Protect `call-process'
index eb76cd490d4e8dc96fbb8ebed730271899d7c928..317acdaff312ee0c4df48955d08da87071fef2f7 100644 (file)
@@ -633,9 +633,16 @@ column specified by the function `current-left-margin'."
     (newline)
     (save-excursion
       (goto-char pos)
-      ;; Usually indent-according-to-mode should "preserve" point, but it is
-      ;; not guaranteed; e.g. indent-to-left-margin doesn't.
-      (save-excursion (indent-according-to-mode))
+      ;; We are at EOL before the call to indent-according-to-mode, and
+      ;; after it we usually are as well, but not always.  We tried to
+      ;; address it with `save-excursion' but that uses a normal marker
+      ;; whereas we need `move after insertion', so we do the save/restore
+      ;; by hand.
+      (setq pos (copy-marker pos t))
+      (indent-according-to-mode)
+      (goto-char pos)
+      ;; Remove the trailing white-space after indentation because
+      ;; indentation may introduce the whitespace.
       (delete-horizontal-space t))
     (indent-according-to-mode)))