Subject: log-view-diff regression
From: Juri Linkov <[email-masked]>
To: [email-masked]
Date: Wed, 08 May 2019 00:56:29 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

bug#28466 caused a regression in 26.0.50.  Maybe it's too late to fix it
in the release branch, so the patch below is for master.

The problem is that after the change a year and a half ago 
log-view-diff always falls back to the previous revision
even when point is in the middle of the log buffer,
and not after the last entry.

This patch uses the previous revision only at the end of the log buffer:

diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el
index e47fad8908..1f7d578610 100644
--- a/lisp/vc/log-view.el
+++ b/lisp/vc/log-view.el
@@ -618,10 +618,9 @@ log-view-diff-common
     ;; When TO and FR are the same, or when point is on a line after
     ;; the last entry, look at the previous revision.
     (when (or (string-equal fr to)
-              (>= (point)
-                  (save-excursion
-                    (goto-char (car fr-entry))
-                    (forward-line))))
+              (save-excursion
+                (goto-char end)
+                (eobp)))
       (setq fr (vc-call-backend log-view-vc-backend 'previous-revision nil fr)))
     (vc-diff-internal
      t (list log-view-vc-backend