[Top][All Lists]

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

address@hidden: C++ name and add-log-current-defun]

From: Richard Stallman
Subject: address@hidden: C++ name and add-log-current-defun]
Date: Thu, 21 Sep 2006 16:15:25 -0400

Would someone please DTRT and ack?

------- Start of forwarded message -------
From: "Herbert Euler" <address@hidden>
To: address@hidden
Date: Thu, 21 Sep 2006 20:39:37 +0800
Mime-Version: 1.0
Content-Type: text/plain; format=flowed
Subject: C++ name and add-log-current-defun
X-Spam-Status: No, score=0.0 required=5.0 tests=MSGID_FROM_MTA_HEADER 
        autolearn=failed version=3.0.4

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))

Guanpeng Xu

Express yourself instantly with MSN Messenger! Download today it's FREE! 

Emacs-devel mailing list
------- End of forwarded message -------

reply via email to

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