From 4fd99ee43a45916ff071c7e7a7d84a28193ffd5b Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 11 Nov 1993 03:02:18 +0000 Subject: [PATCH] (c-indent-region): When looking for a sexp that ends past this line, make sure it really starts on this line. --- lisp/progmodes/c-mode.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/c-mode.el b/lisp/progmodes/c-mode.el index fa3e656fb24..1bc95a77243 100644 --- a/lisp/progmodes/c-mode.el +++ b/lisp/progmodes/c-mode.el @@ -1189,7 +1189,7 @@ If within a string or comment, move by sentences instead of statements." (while (and (bolp) (not (eolp))) ;; Indent one line as with TAB. (let ((shift-amt (c-indent-line)) - nextline sexpend) + nextline sexpbeg sexpend) (save-excursion ;; Find beginning of following line. (save-excursion @@ -1203,10 +1203,16 @@ If within a string or comment, move by sentences instead of statements." (setq sexpend (point-marker))) (error (setq sexpend nil) (goto-char nextline))) - (skip-chars-forward " \t\n"))) + (skip-chars-forward " \t\n")) + ;; Make sure the sexp we found really starts on the + ;; current line and extends past it. + (goto-char sexpend) + (backward-sexp 1) + (setq sexpbeg (point))) ;; If that sexp ends within the region, ;; indent it all at once, fast. - (if (and sexpend (> sexpend nextline) (<= sexpend endmark)) + (if (and sexpend (> sexpend nextline) (<= sexpend endmark) + (< sexpbeg nextline)) (progn (indent-c-exp) (goto-char sexpend))) -- 2.39.5