From 8330c1755ef06e8f6108c738d1a82deddbe0e20c Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 5 Feb 2008 02:14:10 +0000 Subject: [PATCH] (diff-add-change-log-entries-other-window): Rename from diff-create-changelog. Change users. Minor change to hopefully work with plain diffs. (diff-mode-map): Add binding for it. --- lisp/ChangeLog | 7 +++++++ lisp/diff-mode.el | 39 ++++++++++++++++++++------------------- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index bf6afb7aa35..6e7743d7ae6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2008-02-05 Stefan Monnier + + * diff-mode.el (diff-add-change-log-entries-other-window): + Rename from diff-create-changelog. Change users. + Minor change to hopefully work with plain diffs. + (diff-mode-map): Add binding for it. + 2008-02-04 Dan Nicolaescu * diff-mode.el: Add new TODO entry. diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el index ba6b2850205..bf6b5cf4895 100644 --- a/lisp/diff-mode.el +++ b/lisp/diff-mode.el @@ -39,7 +39,8 @@ ;; Todo: -;; - Improve `diff-create-changelog', it is very simplistic now. +;; - Improve `diff-add-change-log-entries-other-window', +;; 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. @@ -151,6 +152,8 @@ when editing big diffs)." `(("\e" . ,diff-mode-shared-map) ;; From compilation-minor-mode. ("\C-c\C-c" . diff-goto-source) + ;; By analogy with the global C-x 4 a binding. + ("\C-x4A" . diff-add-change-log-entries-other-window) ;; Misc operations. ("\C-c\C-a" . diff-apply-hunk) ("\C-c\C-e" . diff-ediff-patch) @@ -173,7 +176,7 @@ when editing big diffs)." ["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 + ["Create Change Log entries" diff-add-change-log-entries-other-window :help "Create ChangeLog entries for the changes in the diff buffer"] "-----" ["Reverse direction" diff-reverse-direction t] @@ -1729,8 +1732,9 @@ For use in `add-log-current-defun-function'." props 'diff-refine-preproc)))))))) -(defun diff-create-changelog () - "Iterate through the current diff and create ChangeLog entries." +(defun diff-add-change-log-entries-other-window () + "Iterate through the current diff and create ChangeLog entries. +I.e. like `add-change-log-entry-other-window' but applied to all hunks." (interactive) ;; XXX: Currently add-change-log-entry-other-window is only called ;; once per hunk. Some hunks have multiple changes, it would be @@ -1741,21 +1745,18 @@ For use in `add-log-current-defun-function'." (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 ".")) + (while (progn + (diff-hunk-next) + ;; Move to where the changes are, + ;; `add-change-log-entry-other-window' works better in + ;; that case. + (re-search-forward "\n[!+-<>]" nil t)) + (save-excursion + (add-change-log-entry-other-window) + ;; Insert a "." so that the entries created don't get + ;; merged. + (insert "."))) + ;; When there's no more hunks, diff-hunk-next signals an error. (error nil))))) ;; provide the package -- 2.39.5