emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/add-log.el,v


From: Dan Nicolaescu
Subject: [Emacs-diffs] Changes to emacs/lisp/add-log.el,v
Date: Thu, 25 Oct 2007 23:25:11 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Dan Nicolaescu <dann>   07/10/25 23:25:10

Index: add-log.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/add-log.el,v
retrieving revision 1.198
retrieving revision 1.199
diff -u -b -r1.198 -r1.199
--- add-log.el  22 Oct 2007 23:44:43 -0000      1.198
+++ add-log.el  25 Oct 2007 23:25:08 -0000      1.199
@@ -763,6 +763,10 @@
        '(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 @@
          (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 @@
              (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




reply via email to

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