summaryrefslogtreecommitdiff
path: root/lisp/add-log.el
diff options
context:
space:
mode:
authorMasatake YAMATO <jet@gyve.org>2006-12-26 03:53:04 +0000
committerMasatake YAMATO <jet@gyve.org>2006-12-26 03:53:04 +0000
commit3b2452fd1ab156e0aa6259ed79c5abe8266233a8 (patch)
tree1fcfd7c3cc929f358d676de7518064a90c8fe695 /lisp/add-log.el
parent39d410b58bc6d685727e344af0042263ae2c4b26 (diff)
downloademacs-3b2452fd1ab156e0aa6259ed79c5abe8266233a8.tar.gz
(add-log-current-defun): Call `forward-sexp'
multiple times to pick a member function name defined as part of nested classes/namespaces.
Diffstat (limited to 'lisp/add-log.el')
-rw-r--r--lisp/add-log.el14
1 files changed, 13 insertions, 1 deletions
diff --git a/lisp/add-log.el b/lisp/add-log.el
index 70345a122e1..2ecb274b4de 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -916,7 +916,19 @@ Has a preference of looking backwards."
;; Include certain keywords if they
;; precede the name.
(setq middle (point))
- (forward-sexp -1)
+ ;; 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))
;; Is this C++ method?
(when (and (< 2 middle)
(string= (buffer-substring (- middle 2)