summaryrefslogtreecommitdiff
path: root/lisp/add-log.el
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2005-11-01 06:23:08 +0000
committerKaroly Lorentey <lorentey@elte.hu>2005-11-01 06:23:08 +0000
commitcd0cf71c4f41023a8d9c20b3a26e44b980992b5a (patch)
treeb763cfec551254e2228335be4e218ed7a9a19109 /lisp/add-log.el
parentc40bb1ba81a5df164f0b9b61e3480c55808717b7 (diff)
parent895725e10c0fb68ed21abb48183cc8843bcaadf3 (diff)
downloademacs-cd0cf71c4f41023a8d9c20b3a26e44b980992b5a.tar.gz
emacs-cd0cf71c4f41023a8d9c20b3a26e44b980992b5a.tar.bz2
emacs-cd0cf71c4f41023a8d9c20b3a26e44b980992b5a.zip
Merged from miles@gnu.org--gnu-2005 (patch 142-148, 615-628)
Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-615 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-616 Add lisp/mh-e/.arch-inventory * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-617 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-618 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-619 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-620 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-621 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-622 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-623 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-624 Update from CVS: lisp/smerge-mode.el: Add 'tools' to file keywords. * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-625 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-626 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-627 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-628 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-142 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-143 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-144 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-145 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-146 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-147 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-148 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-435
Diffstat (limited to 'lisp/add-log.el')
-rw-r--r--lisp/add-log.el34
1 files changed, 16 insertions, 18 deletions
diff --git a/lisp/add-log.el b/lisp/add-log.el
index 8ea934084f6..024262a6bee 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -826,31 +826,28 @@ Has a preference of looking backwards."
;; If the desired position is within the defun we found,
;; find the function name.
(when (< location (point))
+ ;; Move back over function body.
(backward-sexp 1)
- (let (beg tem)
-
+ (let (beg)
+ ;; Skip back over typedefs and arglist.
+ ;; Stop at the function definition itself
+ ;; or at the line that follows end of function doc string.
(forward-line -1)
- ;; Skip back over typedefs of arglist.
(while (and (not (bobp))
- (looking-at "[ \t\n]"))
+ (looking-at "[ \t\n]")
+ (not (looking-back "[*]/)\n" (- (point) 4))))
(forward-line -1))
- ;; See if this is using the DEFUN macro used in Emacs,
- ;; or the DEFUN macro used by the C library:
- (if (condition-case nil
- (and (save-excursion
- (end-of-line)
- (while (= (preceding-char) ?\\)
- (end-of-line 2))
- (backward-sexp 1)
- (beginning-of-line)
- (setq tem (point))
- (looking-at "DEFUN\\b"))
- (>= location tem))
- (error nil))
+ ;; If we found a doc string, this must be the DEFUN macro
+ ;; used in Emacs. Move back to the DEFUN line.
+ (when (looking-back "[*]/)\n" (- (point) 4))
+ (backward-sexp 1)
+ (beginning-of-line))
+ ;; Is this a DEFUN construct? And is LOCATION in it?
+ (if (and (looking-at "DEFUN\\b")
+ (>= location (point)))
;; DEFUN ("file-name-directory", Ffile_name_directory, Sfile_name_directory, ...) ==> Ffile_name_directory
;; DEFUN(POSIX::STREAM-LOCK, stream lockp &key BLOCK SHARED START LENGTH) ==> POSIX::STREAM-LOCK
(progn
- (goto-char tem)
(down-list 1)
(when (= (char-after (point)) ?\")
(forward-sexp 1)
@@ -863,6 +860,7 @@ Has a preference of looking backwards."
(skip-syntax-backward " ")
(point))))
(if (looking-at "^[+-]")
+ ;; C++.
(change-log-get-method-definition)
;; Ordinary C function syntax.
(setq beg (point))