Mercurial > emacs
changeset 10594:aadef46f00f7
(lisp-indent-region): Set endmark before indenting first line.
(indent-sexp): Fixes for ENDPOS != nil case--use nil
as starting-point, and don't insist on a complete sexp.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 30 Jan 1995 02:16:26 +0000 |
parents | 7ae93c2ee7a2 |
children | 06fa5b312280 |
files | lisp/emacs-lisp/lisp-mode.el |
diffstat | 1 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/lisp-mode.el Mon Jan 30 02:15:37 1995 +0000 +++ b/lisp/emacs-lisp/lisp-mode.el Mon Jan 30 02:16:26 1995 +0000 @@ -523,11 +523,17 @@ (interactive) (let ((indent-stack (list nil)) (next-depth 0) - (starting-point (point)) + ;; If ENDPOS is non-nil, use nil as STARTING-POINT + ;; so that calculate-lisp-indent will find the beginning of + ;; the defun we are in. + ;; If ENDPOS is nil, it is safe not to scan before point + ;; since every line we indent is more deeply nested than point is. + (starting-point (if endpos nil (point))) (last-point (point)) last-depth bol outer-loop-done inner-loop-done state this-indent) - ;; Get error now if we don't have a complete sexp after point. - (save-excursion (forward-sexp 1)) + (or endpos + ;; Get error now if we don't have a complete sexp after point. + (save-excursion (forward-sexp 1))) (save-excursion (setq outer-loop-done nil) (while (if endpos (< (point) endpos) @@ -568,7 +574,7 @@ (make-list (- next-depth) nil)) last-depth (- last-depth next-depth) next-depth 0))) - (or outer-loop-done + (or outer-loop-done endpos (setq outer-loop-done (<= next-depth 0))) (if outer-loop-done (forward-line 1) @@ -608,10 +614,10 @@ ;; Indent every line whose first char is between START and END inclusive. (defun lisp-indent-region (start end) (save-excursion - (goto-char start) - (and (bolp) (not (eolp)) - (lisp-indent-line)) (let ((endmark (copy-marker end))) + (goto-char start) + (and (bolp) (not (eolp)) + (lisp-indent-line)) (indent-sexp endmark) (set-marker endmark nil))))