summaryrefslogtreecommitdiff
path: root/lisp/add-log.el
diff options
context:
space:
mode:
authorDan Nicolaescu <dann@ics.uci.edu>2007-10-25 23:25:08 +0000
committerDan Nicolaescu <dann@ics.uci.edu>2007-10-25 23:25:08 +0000
commit0bde6a03c6a9da54e14df5958dde1ac0876679e8 (patch)
treec2a76a828fa0f4751e9d98ca0387f682b8e4a7cf /lisp/add-log.el
parent5aec60dfd742218b6fca9199cd3d4f0540e02e35 (diff)
downloademacs-0bde6a03c6a9da54e14df5958dde1ac0876679e8.tar.gz
* emulation/edt-mapper.el (edt-emacs-variant): Replace the only
use with the definition. Remove. * add-log.el (change-log-start-entry-re): New defconst. (change-log-sortable-date-at): Use it. (change-log-beginning-of-defun, change-log-end-of-defun): New functions. (change-log-mode): Use them for beginning-of-defun-function and end-of-defun-function. * erc-ibuffer.el (erc-modified-channels-alist): Pacify byte-compiler.
Diffstat (limited to 'lisp/add-log.el')
-rw-r--r--lisp/add-log.el34
1 files changed, 33 insertions, 1 deletions
diff --git a/lisp/add-log.el b/lisp/add-log.el
index 5ec49861906..3ca1b613955 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -763,6 +763,10 @@ Runs `change-log-mode-hook'.
'(change-log-font-lock-keywords t nil nil backward-paragraph))
(set (make-local-variable 'isearch-buffers-next-buffer-function)
'change-log-next-buffer)
+ (set (make-local-variable 'beginning-of-defun-function)
+ 'change-log-beginning-of-defun)
+ (set (make-local-variable 'end-of-defun-function)
+ 'change-log-end-of-defun)
(isearch-buffers-minor-mode))
(defun change-log-next-buffer (&optional buffer wrap)
@@ -1095,11 +1099,13 @@ Has a preference of looking backwards."
(change-log-get-method-definition-1 ""))
(concat change-log-get-method-definition-md "]"))))))
+(defconst change-log-start-entry-re "^\\sw.........[0-9:+ ]*")
+
(defun change-log-sortable-date-at ()
"Return date of log entry in a consistent form for sorting.
Point is assumed to be at the start of the entry."
(require 'timezone)
- (if (looking-at "^\\sw.........[0-9:+ ]*")
+ (if (looking-at change-log-start-entry-re)
(let ((date (match-string-no-properties 0)))
(if date
(if (string-match "\\(....\\)-\\(..\\)-\\(..\\)\\s-+" date)
@@ -1186,6 +1192,32 @@ old-style time formats for entries are supported."
(goto-char (point-max)))
(insert-buffer-substring other-buf start)))))))
+(defun change-log-beginning-of-defun ()
+ (re-search-backward change-log-start-entry-re nil 'move))
+
+(defun change-log-end-of-defun ()
+ ;; Look back and if there is no entry there it means we are before
+ ;; the first ChangeLog entry, so go forward until finding one.
+ (unless (save-excursion (re-search-backward change-log-start-entry-re nil t))
+ (re-search-forward change-log-start-entry-re nil t))
+
+ ;; In case we are at the end of log entry going forward a line will
+ ;; make us find the next entry when searching. If we are inside of
+ ;; an entry going forward a line will still keep the point inside
+ ;; the same entry.
+ (forward-line 1)
+
+ ;; In case we are at the beginning of an entry, move past it.
+ (when (looking-at change-log-start-entry-re)
+ (goto-char (match-end 0))
+ (forward-line 1))
+
+ ;; Search for the start of the next log entry. Go to the end of the
+ ;; buffer if we could not find a next entry.
+ (when (re-search-forward change-log-start-entry-re nil 'move)
+ (goto-char (match-beginning 0))
+ (forward-line -1)))
+
(provide 'add-log)
;; arch-tag: 81eee6fc-088f-4372-a37f-80ad9620e762