summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2007-02-11 11:12:20 +0000
committerRichard M. Stallman <rms@gnu.org>2007-02-11 11:12:20 +0000
commit9f25c0d219dc1a51761ae397759613894306f0e2 (patch)
tree10c3f72d316fde1e13a25c8ebb5680ab2d732e65 /lisp/emacs-lisp
parent531309ebc83fbf64708a8a179b530dbea39d9ab9 (diff)
downloademacs-9f25c0d219dc1a51761ae397759613894306f0e2.tar.gz
emacs-9f25c0d219dc1a51761ae397759613894306f0e2.tar.bz2
emacs-9f25c0d219dc1a51761ae397759613894306f0e2.zip
(indent-sexp): Clean up termination condition -- don't fail to stop at endpos.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/lisp-mode.el18
1 files changed, 12 insertions, 6 deletions
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index abc795481a4..8c1cf918b36 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -1130,19 +1130,25 @@ ENDPOS is encountered."
(make-list (- next-depth) nil))
last-depth (- last-depth next-depth)
next-depth 0)))
- (or outer-loop-done endpos
- (setq outer-loop-done (<= next-depth 0)))
- (if outer-loop-done
- (forward-line 1)
+ (forward-line 1)
+ ;; Decide whether to exit.
+ (if endpos
+ ;; If we have already reached the specified end,
+ ;; give up and do not reindent this line.
+ (if (<= endpos (point))
+ (setq outer-loop-done t))
+ ;; If no specified end, we are done if we have finished one sexp.
+ (if (<= next-depth 0)
+ (setq outer-loop-done t)))
+ (unless outer-loop-done
(while (> last-depth next-depth)
(setq indent-stack (cdr indent-stack)
last-depth (1- last-depth)))
(while (< last-depth next-depth)
(setq indent-stack (cons nil indent-stack)
last-depth (1+ last-depth)))
- ;; Now go to the next line and indent it according
+ ;; Now indent the next line according
;; to what we learned from parsing the previous one.
- (forward-line 1)
(setq bol (point))
(skip-chars-forward " \t")
;; But not if the line is blank, or just a comment