Subject: bug#6412: 23.2; [patch] nXML indentation bug

From: Leo <[email-masked]>
Date: Sun, 13 Jun 2010 14:56:01 +0100

The indentation behaviour in nxml is different from most of other modes
in that when current line has correct indentation the point stay still
instead of moving to the first non-blank char. The attached patch fixes
this problem with minor simplification.

diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el
index 8919d92..36b5fe7 100644
--- a/lisp/nxml/nxml-mode.el
+++ b/lisp/nxml/nxml-mode.el
@@ -1372,12 +1372,9 @@ of the inserted start-tag or nil if none was inserted."
   "Indent current line as XML."
   (let ((indent (nxml-compute-indent))
 	(from-end (- (point-max) (point))))
-    (when (and indent
-	       (/= indent (current-indentation)))
-      (beginning-of-line)
-      (let ((bol (point)))
-	(skip-chars-forward " \t")
-	(delete-region bol (point)))
+    (skip-chars-forward " \t")
+    (when (and indent (/= indent (current-indentation)))
+      (delete-region (line-beginning-position) (point))
       (indent-to indent)
       (when (> (- (point-max) from-end) (point))
 	(goto-char (- (point-max) from-end))))))

Best wishes,

Leo

GNU Emacs 23.2.7 (x86_64-apple-darwin10.3.0, Carbon Version 1.6.0 AppKit 1038.29)
 of 2010-06-11 on Victoria.local