Function: nxml-balanced-close-start-tag

nxml-balanced-close-start-tag is a byte-compiled function defined in nxml-mode.el.gz.

Signature

(nxml-balanced-close-start-tag BLOCK-OR-INLINE)

Source Code

;; Defined in /usr/src/emacs/lisp/nxml/nxml-mode.el.gz
(defun nxml-balanced-close-start-tag (block-or-inline)
  (let ((token-end (nxml-token-before))
	(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 token-start)
      (back-to-indentation)
      (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)))))