]> git.eshelyaron.com Git - emacs.git/commitdiff
(diff-end-of-hunk): Be careful not to overlook trailing
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 18 Mar 2008 20:49:52 +0000 (20:49 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 18 Mar 2008 20:49:52 +0000 (20:49 +0000)
"+" lines not accounted for by counting "-" and context lines.

lisp/ChangeLog
lisp/diff-mode.el

index 40be75a03b5f48f46f46053eece185f42e5cf95d..a6fa424163082e2ab871429be97df031f8468802 100644 (file)
@@ -1,11 +1,16 @@
+2008-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * diff-mode.el (diff-end-of-hunk): Be careful not to overlook trailing
+       "+" lines not accounted for by counting "-" and context lines.
+
 2008-03-16  Juri Linkov  <juri@jurta.org>
 
        * dired.el (dired-warn-writable): Rename to `dired-perm-write'.
-       (dired-perm-write): Renamed from `dired-warn-writable'.
+       (dired-perm-write): Rename from `dired-warn-writable'.
        Change parent face from `font-lock-warning-face' to
        `font-lock-comment-delimiter-face'.
        (dired-warn-writable-face): Rename to `dired-perm-write-face'.
-       (dired-perm-write-face): Renamed from `dired-warn-writable-face'.
+       (dired-perm-write-face): Rename from `dired-warn-writable-face'.
        (dired-font-lock-keywords): Replace `dired-warn-writable-face'
        with `dired-perm-write-face'.
 
index c57613dff518b29097d2d475e80789e62b52fb0f..798f5f2e4ec44d255d801703d92dfcdd88a1055c 100644 (file)
@@ -402,12 +402,23 @@ See http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01990.html")
         (setq style (cdr (assq (char-after) '((?@ . unified) (?* . context))))))
       (goto-char (match-end 0))
       (when (and (not donttrustheader) (match-end 2))
+        (let* ((nold (string-to-number (match-string 2)))
+               (nnew (string-to-number (match-string 4)))
+               (endold
         (save-excursion
           (re-search-forward (if diff-valid-unified-empty-line
                                  "^[- \n]" "^[- ]")
-                             nil t
-                             (string-to-number (match-string 2)))
-          (setq end (line-beginning-position 2)))))
+                                     nil t nold)
+                  (line-beginning-position 2)))
+               (endnew
+                ;; The hunk may end with a bunch of "+" lines, so the `end' is
+                ;; then further than computed above.
+                (save-excursion
+                  (re-search-forward (if diff-valid-unified-empty-line
+                                         "^[+ \n]" "^[+ ]")
+                                     nil t nnew)
+                  (line-beginning-position 2))))
+          (setq end (max endold endnew)))))
     ;; We may have a first evaluation of `end' thanks to the hunk header.
     (unless end
       (setq end (and (re-search-forward