emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/diff-mode.el,v


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/diff-mode.el,v
Date: Tue, 05 Feb 2008 02:14:13 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        08/02/05 02:14:12

Index: diff-mode.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/diff-mode.el,v
retrieving revision 1.125
retrieving revision 1.126
diff -u -b -r1.125 -r1.126
--- diff-mode.el        4 Feb 2008 21:41:08 -0000       1.125
+++ diff-mode.el        5 Feb 2008 02:14:09 -0000       1.126
@@ -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 @@
   `(("\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 @@
     ["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 @@
                                   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 @@
       (condition-case nil
          ;; Call add-change-log-entry-other-window for each hunk in
          ;; the diff buffer.
-         (while t
-           (set-buffer orig-buffer)
+         (while (progn
            (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))
+                   (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 "."))
+              (insert ".")))
+        ;; When there's no more hunks, diff-hunk-next signals an error.
        (error nil)))))
 
 ;; provide the package




reply via email to

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