summaryrefslogtreecommitdiff
path: root/lisp/add-log.el
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-01-11 15:08:47 +0000
committerGerd Moellmann <gerd@gnu.org>2000-01-11 15:08:47 +0000
commitc1356086c3fc3f24c4d277c5532dac9dbfb7c8f4 (patch)
tree2f42fe4923ea1827b225ad7f243e6c412011f91e /lisp/add-log.el
parent7a85e4dfa3ffc1247a394330d5e95b818e4c5985 (diff)
downloademacs-c1356086c3fc3f24c4d277c5532dac9dbfb7c8f4.tar.gz
(add-log-current-defun): Call
`add-log-current-defun-function'. Try matches at level 0 and level 1. Strip whitespace from defun found.
Diffstat (limited to 'lisp/add-log.el')
-rw-r--r--lisp/add-log.el30
1 files changed, 21 insertions, 9 deletions
diff --git a/lisp/add-log.el b/lisp/add-log.el
index 333089d5cff..30802c4155d 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -581,14 +581,17 @@ Texinfo (@node titles), Perl, and Fortran.
Other modes are handled by a heuristic that looks in the 10K before
point for uppercase headings starting in the first column or
-identifiers followed by `:' or `=', see variable
-`add-log-current-defun-header-regexp'.
+identifiers followed by `:' or `=', see variables
+`add-log-current-defun-header-regexp' and
+`add-log-current-defun-function'
Has a preference of looking backwards."
(condition-case nil
(save-excursion
(let ((location (point)))
- (cond ((memq major-mode add-log-lisp-like-modes)
+ (cond ((functionp add-log-current-defun-function)
+ (funcall add-log-current-defun-function))
+ ((memq major-mode add-log-lisp-like-modes)
;; If we are now precisely at the beginning of a defun,
;; make sure beginning-of-defun finds that one
;; rather than the previous one.
@@ -771,13 +774,22 @@ Has a preference of looking backwards."
"main")))
(t
;; If all else fails, try heuristics
- (let (case-fold-search)
+ (let (case-fold-search
+ result)
(end-of-line)
- (if (re-search-backward add-log-current-defun-header-regexp
- (- (point) 10000)
- t)
- (buffer-substring (match-beginning 1)
- (match-end 1))))))))
+ (when (re-search-backward
+ add-log-current-defun-header-regexp
+ (- (point) 10000)
+ t)
+ (setq result (or (buffer-substring (match-beginning 1)
+ (match-end 1))
+ (buffer-substring (match-beginning 0)
+ (match-end 0))))
+ ;; Strip whitespace away
+ (when (string-match "\\([^ \t\n\r\f].*[^ \t\n\r\f]\\)"
+ result)
+ (setq result (match-string 1 result)))
+ result))))))
(error nil)))
(defvar change-log-get-method-definition-md)