changeset 75446:affed975ee67

add-log-current-defun): Skip the semicolon ``;'' for enum/union/struct/class definition. Revert change to call `forward-sexp' multiple times.
author Richard M. Stallman <rms@gnu.org>
date Sat, 27 Jan 2007 19:53:25 +0000
parents d11aab871a28
children fbf156efcab2
files lisp/add-log.el
diffstat 1 files changed, 7 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/add-log.el	Sat Jan 27 19:27:53 2007 +0000
+++ b/lisp/add-log.el	Sat Jan 27 19:53:25 2007 +0000
@@ -828,6 +828,10 @@
 		     ;; here is the position after the final }.
 		     (backward-sexp 1)
 		     (forward-sexp 1)
+                     ;; Skip the semicolon ``;'' for
+		     ;; enum/union/struct/class definition.
+		     (if (= (char-after (point)) ?\;)
+			 (forward-char 1))
 		     (setq previous-defun-end (point)))
 
 		   (save-excursion
@@ -921,19 +925,9 @@
 				 ;; Include certain keywords if they
 				 ;; precede the name.
 				 (setq middle (point))
-				 ;; Single (forward-sexp -1) invocation is
-				 ;; not enough for C++ member function defined 
-				 ;; as part of nested class and/or namespace 
-				 ;; like:
-				 ;;
-				 ;;   void 
-				 ;;   foo::bar::baz::bazz ()
-				 ;;   { ...
-				 ;; 
-				 ;; Here we have to move the point to 
-				 ;; the beginning of foo, not bazz.
-				 (while (not (looking-back "\\(^\\|[ \t]\\)"))
-				   (forward-sexp -1))
+				 ;; We tried calling `forward-sexp' in a loop
+				 ;; but it causes inconsistency for C names.
+				 (forward-sexp -1)
 				 ;; Is this C++ method?
 				 (when (and (< 2 middle)
 					    (string= (buffer-substring (- middle 2)