emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

C++ name and add-log-current-defun


From: Herbert Euler
Subject: C++ name and add-log-current-defun
Date: Thu, 21 Sep 2006 20:39:37 +0800

add-log-current-defun cannot handle C++ names well.  For
example, the current function:

   int some_class::some_method(int arg)
   {
       // ...
   }

If one invoke add-change-log-entry-other-window when point
is in this function, one would get

   * some_file.cpp (class::some_method):

rather than

   * some_file.cpp (some_class::some_method):

This is because add-log-current-defun in add-log.el calculates
the function name wrong.  Below is the code:

   ;; Now find the right beginning of the name.
   ;; Include certain keywords if they
   ;; precede the name.
   (setq middle (point))
   (forward-word -1)
   ;; Is this C++ method?
   ;; ...

(forward-word -1) wouldn't put point before `some_class',
but puts point before `c' in `some_class'.

How about changing it to like this?

   (while (not (looking-back "\\(^\\|[ \t]\\)"))
     (backward-word 1))

Regards,
Guanpeng Xu

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]