Mercurial > emacs
changeset 91525:15d5c70e7c61
Add new TODO entry.
(diff-create-changelog): New function.
(diff-mode-menu): Bind it.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Mon, 04 Feb 2008 21:41:09 +0000 |
parents | de01d1b47b9d |
children | 44f0cbc44295 |
files | lisp/ChangeLog lisp/diff-mode.el |
diffstat | 2 files changed, 39 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Mon Feb 04 17:27:36 2008 +0000 +++ b/lisp/ChangeLog Mon Feb 04 21:41:09 2008 +0000 @@ -1,3 +1,9 @@ +2008-02-04 Dan Nicolaescu <dann@ics.uci.edu> + + * diff-mode.el: Add new TODO entry. + (diff-create-changelog): New function. + (diff-mode-menu): Bind it. + 2008-02-04 Kenichi Handa <handa@ni.aist.go.jp> * international/mule-diag.el (print-fontset-element): Handle the
--- a/lisp/diff-mode.el Mon Feb 04 17:27:36 2008 +0000 +++ b/lisp/diff-mode.el Mon Feb 04 21:41:09 2008 +0000 @@ -39,6 +39,8 @@ ;; Todo: +;; - Improve `diff-create-changelog', it is very simplistic now. +;; ;; - Add a `delete-after-apply' so C-c C-a automatically deletes hunks. ;; Also allow C-c C-a to delete already-applied hunks. ;; @@ -171,6 +173,8 @@ ["Apply hunk" diff-apply-hunk t] ["Test applying hunk" diff-test-hunk t] ["Apply diff with Ediff" diff-ediff-patch t] + ["Create Change Log" diff-create-changelog + :help "Create ChangeLog entries for the changes in the diff buffer"] "-----" ["Reverse direction" diff-reverse-direction t] ["Context -> Unified" diff-context->unified t] @@ -1725,6 +1729,35 @@ props 'diff-refine-preproc)))))))) +(defun diff-create-changelog () + "Iterate through the current diff and create ChangeLog entries." + (interactive) + ;; XXX: Currently add-change-log-entry-other-window is only called + ;; once per hunk. Some hunks have multiple changes, it would be + ;; good to call it for each change. + (save-excursion + (goto-char (point-min)) + (let ((orig-buffer (current-buffer))) + (condition-case nil + ;; Call add-change-log-entry-other-window for each hunk in + ;; the diff buffer. + (while t + (set-buffer orig-buffer) + (diff-hunk-next) + (beginning-of-line) + (while (not (looking-at "^ ")) + (forward-line 1)) + ;; Move to where the changes are, + ;; `add-change-log-entry-other-window' works better in + ;; that case. + (while (not (looking-at "^[!+-]")) + (forward-line 1)) + (add-change-log-entry-other-window) + ;; Insert a "." so that the entries created don't get + ;; merged. + (insert ".")) + (error nil))))) + ;; provide the package (provide 'diff-mode)