diff options
author | Masatake YAMATO <jet@gyve.org> | 2006-12-26 03:53:04 +0000 |
---|---|---|
committer | Masatake YAMATO <jet@gyve.org> | 2006-12-26 03:53:04 +0000 |
commit | 3b2452fd1ab156e0aa6259ed79c5abe8266233a8 (patch) | |
tree | 1fcfd7c3cc929f358d676de7518064a90c8fe695 /lisp/add-log.el | |
parent | 39d410b58bc6d685727e344af0042263ae2c4b26 (diff) | |
download | emacs-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.el | 14 |
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) |