changeset 110188:92e4fa270c92

* lisp/electric.el (electric-indent-post-self-insert-function): Don't reindent with a sloppy indentation function.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 05 Sep 2010 00:54:58 +0200
parents 98d8e4cd2326
children 821c596efa5f
files lisp/ChangeLog lisp/electric.el
diffstat 2 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Sep 05 00:51:39 2010 +0200
+++ b/lisp/ChangeLog	Sun Sep 05 00:54:58 2010 +0200
@@ -1,5 +1,8 @@
 2010-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* electric.el (electric-indent-post-self-insert-function):
+	Don't reindent with a sloppy indentation function.
+
 	* emacs-lisp/syntax.el (syntax-ppss): More sanity check to catch
 	border case in change-log-mode.
 
@@ -12,7 +15,7 @@
 
 2010-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-	Avoid global recursive calls to kill-buffer-hooks, and fit into 80 cols.
+	Avoid global recursive calls to kill-buffer-hooks; fit into 80 cols.
 	* textmodes/ispell.el (ispell-process-buffer-name): Remove.
 	(ispell-start-process): Avoid setq and simplify logic.
 	(ispell-init-process): Setup kill-buffer-hook locally when needed.
--- a/lisp/electric.el	Sun Sep 05 00:51:39 2010 +0200
+++ b/lisp/electric.el	Sun Sep 05 00:54:58 2010 +0200
@@ -198,6 +198,10 @@
     ;; For newline, we want to reindent both lines and basically behave like
     ;; reindent-then-newline-and-indent (whose code we hence copied).
     (when (and (eq last-command-event ?\n)
+               ;; Don't reindent the previous line if the indentation function
+               ;; is not a real one.
+               (not (memq indent-line-function
+                          '(indent-relative indent-relative-maybe)))
                ;; Sanity check.
                (eq (char-before) last-command-event))
       (let ((pos (copy-marker (1- (point)) t)))