* lisp/nxml/nxml-mode.el (nxml-indent-line): Standardize indent behavior.
Fixes: debbugs:6412
This commit is contained in:
parent
8c3a217f33
commit
b263a4c43f
2 changed files with 19 additions and 11 deletions
|
@ -1,3 +1,7 @@
|
|||
2010-06-14 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* nxml/nxml-mode.el (nxml-indent-line): Standardize indent behavior.
|
||||
|
||||
2010-06-12 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* term/common-win.el (x-colors): Add all the color names defined
|
||||
|
|
|
@ -1370,17 +1370,21 @@ of the inserted start-tag or nil if none was inserted."
|
|||
|
||||
(defun nxml-indent-line ()
|
||||
"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)))
|
||||
(indent-to indent)
|
||||
(when (> (- (point-max) from-end) (point))
|
||||
(goto-char (- (point-max) from-end))))))
|
||||
(let* ((savep (point))
|
||||
(indent (condition-case nil
|
||||
(save-excursion
|
||||
(forward-line 0)
|
||||
(skip-chars-forward " \t")
|
||||
(if (>= (point) savep) (setq savep nil))
|
||||
(or (nxml-compute-indent) 0))
|
||||
(error 0))))
|
||||
(if (not (numberp indent))
|
||||
;; If something funny is used (e.g. `noindent'), return it.
|
||||
indent
|
||||
(if (< indent 0) (setq indent 0)) ;Just in case.
|
||||
(if savep
|
||||
(save-excursion (indent-line-to indent))
|
||||
(indent-line-to indent)))))
|
||||
|
||||
(defun nxml-compute-indent ()
|
||||
"Return the indent for the line containing point."
|
||||
|
|
Loading…
Add table
Reference in a new issue