]> code.delx.au - gnu-emacs/blobdiff - lisp/vc/log-view.el
Merge from origin/emacs-25
[gnu-emacs] / lisp / vc / log-view.el
index 042ea131a97b0eefad2b8a702c747740dcf8802b..63d50033eec6d37b6c0d73e5f299f5156f11d776 100644 (file)
@@ -1,6 +1,6 @@
 ;;; log-view.el --- Major mode for browsing revision log histories -*- lexical-binding: t -*-
 
-;; Copyright (C) 1999-2015 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 ;; Keywords: tools, vc
@@ -404,7 +404,9 @@ This calls `log-view-expanded-log-entry-function' to do the work."
              (unless (and pos (log-view-inside-comment-p pos))
                (error "Broken markup in `log-view-toggle-entry-display'"))
              (delete-region pos
-                            (next-single-property-change pos 'log-view-comment))
+                             (or
+                              (next-single-property-change pos 'log-view-comment)
+                              (point-max)))
              (put-text-property beg (1+ beg) 'log-view-entry-expanded nil)
              (if (< opoint pos)
                  (goto-char opoint)))
@@ -469,7 +471,10 @@ It assumes that a log entry starts with a line matching
        ((looking-back "Show 2X entries    Show unlimited entries"
                       (line-beginning-position))
        (setq looping nil)
-       (forward-line -1))))))
+       (forward-line -1))
+       ;; There are no buttons if we've turned on unlimited entries.
+       ((eobp)
+        (setq looping nil))))))
 
 (defun log-view-end-of-defun (&optional arg)
   "Move forward to the next Log View entry.
@@ -537,7 +542,7 @@ If called interactively, visit the version at point."
       (setq en (point))
       (or (log-view-current-entry nil t)
           (throw 'beginning-of-buffer nil))
-      (cond ((memq backend '(SCCS RCS CVS MCVS SVN))
+      (cond ((memq backend '(SCCS RCS CVS SVN))
             (forward-line 2))
            ((eq backend 'Hg)
             (forward-line 4)
@@ -602,13 +607,12 @@ considered file(s)."
   (interactive
    (list (if (use-region-p) (region-beginning) (point))
          (if (use-region-p) (region-end) (point))))
-  (log-view-diff-common beg end t))
+  (when (eq (vc-call-backend log-view-vc-backend 'revision-granularity) 'file)
+    (error "The %s backend does not support changeset diffs" log-view-vc-backend))
+  (let ((default-directory (vc-root-dir)))
+    (log-view-diff-common beg end t)))
 
 (defun log-view-diff-common (beg end &optional whole-changeset)
-  (when (and whole-changeset
-             (eq (vc-call-backend log-view-vc-backend 'revision-granularity)
-                 'file))
-    (error "The %s backend does not support changeset diffs" log-view-vc-backend))
   (let ((to (log-view-current-tag beg))
         (fr (log-view-current-tag end)))
     (when (string-equal fr to)