+(defun log-view-find-version (pos)
+ "Visit the version at point."
+ (interactive "d")
+ (save-excursion
+ (goto-char pos)
+ (switch-to-buffer (vc-find-version (log-view-current-file)
+ (log-view-current-tag)))))
+
+;;
+;; diff
+;;
+
+(defun log-view-diff (beg end)
+ "Get the diff for several revisions.
+If the point is the same as the mark, get the diff for this revision.
+Otherwise, get the diff between the revisions
+ were the region starts and ends."
+ (interactive "r")
+ (let ((fr (log-view-current-tag beg))
+ (to (log-view-current-tag end)))
+ (when (string-equal fr to)
+ (save-excursion
+ (goto-char end)
+ (log-view-msg-next)
+ (setq to (log-view-current-tag))))
+ (vc-version-diff (log-view-current-file) to fr)))