]> git.eshelyaron.com Git - emacs.git/commitdiff
(diff-add-change-log-entries-other-window):
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 5 Feb 2008 02:14:10 +0000 (02:14 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 5 Feb 2008 02:14:10 +0000 (02:14 +0000)
Rename from diff-create-changelog.  Change users.
Minor change to hopefully work with plain diffs.
(diff-mode-map): Add binding for it.

lisp/ChangeLog
lisp/diff-mode.el

index bf6afb7aa35d51a7ccb88ccc3cfccf07b737a4ec..6e7743d7ae674fc058092f20149ac1bf9928bc47 100644 (file)
@@ -1,3 +1,10 @@
+2008-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * 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  <dann@ics.uci.edu>
 
        * diff-mode.el: Add new TODO entry.
index ba6b28502053f68b20ec7a6858577c43149f10d4..bf6b5cf4895625f6531cdb136c0d474315e66abf 100644 (file)
@@ -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