]> git.eshelyaron.com Git - emacs.git/commitdiff
* nxml/nxml-mode.el (nxml-balanced-close-start-tag): Use the value
authorChong Yidong <cyd@stupidchicken.com>
Sat, 24 Oct 2009 21:32:19 +0000 (21:32 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Sat, 24 Oct 2009 21:32:19 +0000 (21:32 +0000)
of xmltok-start before the end tag was inserted (Bug#2840).

lisp/ChangeLog
lisp/nxml/nxml-mode.el

index 96db1cd60756b30ac77728d67772d43996cf5a68..05fc82ece965f4eb363739f4087163629985e545 100644 (file)
@@ -1,5 +1,8 @@
 2009-10-24  Chong Yidong  <cyd@stupidchicken.com>
 
+       * nxml/nxml-mode.el (nxml-balanced-close-start-tag): Use the value
+       of xmltok-start before the end tag was inserted (Bug#2840).
+
        * progmodes/sh-script.el (sh-font-lock-paren): Handle case
        patterns that are preceded by an open-paren (Bug#1320).
 
index 054ec3c9c2cfa828a30fbfcecb07354285f23567..b0168069ec90abe0b47f8f6ebebd07f414cd4c3b 100644 (file)
@@ -1254,29 +1254,31 @@ No extra whitespace is inserted."
 
 (defun nxml-balanced-close-start-tag (block-or-inline)
   (let ((token-end (nxml-token-before))
-       (pos (1+ (point))))
+       (pos (1+ (point)))
+       (token-start xmltok-start))
     (unless (or (eq xmltok-type 'partial-start-tag)
                (and (memq xmltok-type '(start-tag
                                         empty-element
                                         partial-empty-element))
                     (>= token-end pos)))
       (error "Not in a start-tag"))
+    ;; Note that this insertion changes xmltok-start.
     (insert "></"
            (buffer-substring-no-properties (+ xmltok-start 1)
                                            (min xmltok-name-end (point)))
            ">")
     (if (eq block-or-inline 'inline)
        (goto-char pos)
-      (goto-char xmltok-start)
+      (goto-char token-start)
       (back-to-indentation)
-      (if (= (point) xmltok-start)
+      (if (= (point) token-start)
          (let ((indent (current-column)))
-         (goto-char pos)
-         (insert "\n")
-         (indent-line-to indent)
-         (goto-char pos)
-         (insert "\n")
-         (indent-line-to (+ nxml-child-indent indent)))
+           (goto-char pos)
+           (insert "\n")
+           (indent-line-to indent)
+           (goto-char pos)
+           (insert "\n")
+           (indent-line-to (+ nxml-child-indent indent)))
        (goto-char pos)))))
 
 (defun nxml-finish-element ()