changeset 4976:a81642d50a8e

(c-indent-region): When looking for a sexp that ends past this line, make sure it really starts on this line.
author Richard M. Stallman <rms@gnu.org>
date Thu, 11 Nov 1993 03:02:18 +0000
parents db0c6ed6f145
children 81c44a01ddda
files lisp/progmodes/c-mode.el
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/c-mode.el	Thu Nov 11 02:48:26 1993 +0000
+++ b/lisp/progmodes/c-mode.el	Thu Nov 11 03:02:18 1993 +0000
@@ -1189,7 +1189,7 @@
       (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 @@
 		    (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)))