changeset 3256:14eb227cad41

(c-up-conditional): Handle commented-out #-cmds properly.
author Richard M. Stallman <rms@gnu.org>
date Sat, 29 May 1993 18:14:34 +0000
parents b04e2b131ef0
children be4f258fb329
files lisp/progmodes/c-mode.el
diffstat 1 files changed, 18 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/c-mode.el	Sat May 29 17:58:03 1993 +0000
+++ b/lisp/progmodes/c-mode.el	Sat May 29 18:14:34 1993 +0000
@@ -1271,24 +1271,25 @@
 			;; the regexp matcher.
 			(funcall search-function
 				 "#[ \t]*\\(if\\|elif\\|endif\\)"
-				 nil t)
-			(progn
-			  (beginning-of-line)
-			  (looking-at "^[ \t]*#[ \t]*\\(if\\|elif\\|endif\\)")))
-	      ;; Update depth according to what we found.
+				 nil t))
 	      (beginning-of-line)
-	      (cond ((looking-at "[ \t]*#[ \t]*endif")
-		     (setq depth (+ depth increment)))
-		    ((looking-at "[ \t]*#[ \t]*elif")
-		     (if (and forward (= depth 0))
-			 (setq found (point))))
-		    (t (setq depth (- depth increment))))
-	      ;; If this line exits a level of conditional, exit inner loop.
-	      (if (< depth 0)
-		  (setq found (point)))
-	      ;; When searching forward, start from end of line
-	      ;; so that we don't find the same line again.
-	      (if forward (end-of-line))))
+	      ;; Now verify it is really a preproc line.
+	      (if (looking-at "^[ \t]*#[ \t]*\\(if\\|elif\\|endif\\)")
+		  (progn
+		    ;; Update depth according to what we found.
+		    (beginning-of-line)
+		    (cond ((looking-at "[ \t]*#[ \t]*endif")
+			   (setq depth (+ depth increment)))
+			  ((looking-at "[ \t]*#[ \t]*elif")
+			   (if (and forward (= depth 0))
+			       (setq found (point))))
+			  (t (setq depth (- depth increment))))
+		    ;; If this line exits a level of conditional, exit inner loop.
+		    (if (< depth 0)
+			(setq found (point)))
+		    ;; When searching forward, start from end of line
+		    ;; so that we don't find the same line again.
+		    (if forward (end-of-line))))))
 	  (or found
 	      (error "No containing preprocessor conditional"))
 	  (goto-char (setq new found)))