changeset 19377:989d0412ada3

(c-end-of-statement-1): Eliminate false hits on important characters inside literals (strings, comments).
author Richard M. Stallman <rms@gnu.org>
date Sat, 16 Aug 1997 03:38:57 +0000
parents 6d5536cedd70
children a1987ab30543
files lisp/progmodes/cc-engine.el
diffstat 1 files changed, 15 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/cc-engine.el	Sat Aug 16 03:37:28 1997 +0000
+++ b/lisp/progmodes/cc-engine.el	Sat Aug 16 03:38:57 1997 +0000
@@ -7,7 +7,7 @@
 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.15
+;; Version:    5.16
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.
@@ -171,16 +171,22 @@
     (skip-chars-backward "-+!*&:.~" (c-point 'boi))))
 
 (defun c-end-of-statement-1 ()
-  (condition-case ()
-      (progn
+  (condition-case nil
+      (let (beg end found)
 	(while (and (not (eobp))
-		    (let ((beg (point)))
+		    (progn
+		      (setq beg (point))
 		      (forward-sexp 1)
-		      (let ((end (point)))
-			(save-excursion
-			  (goto-char beg)
-			  (not (re-search-forward "[;{}]" end t)))))))
-	(re-search-backward "[;}]")
+		      (setq end (point))
+		      (goto-char beg)
+		      (setq found nil)
+		      (while (and (not found)
+				  (re-search-forward "[;{}]" end t))
+			(if (not (c-in-literal beg))
+			    (setq found t)))
+		      (not found)))
+	  (goto-char end))
+	(re-search-backward "[;{}]")
 	(forward-char 1))
     (error 
      (let ((beg (point)))