1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Only show "2x entries" i vc log buffers if needed

* lisp/vc/vc.el (vc-print-log-setup-buttons): Only show the "more"
buttons if we got more or equal to the number of entries we asked
for (bug#18959).
This commit is contained in:
Lars Ingebrigtsen 2021-01-19 17:26:01 +01:00
parent 5369b69bd8
commit 3c58443855

View file

@ -2392,6 +2392,7 @@ If it contains `file', show short logs for files.
Not all VC backends support short logs!")
(defvar log-view-vc-fileset)
(defvar log-view-message-re)
(defun vc-print-log-setup-buttons (working-revision is-start-revision limit pl-return)
"Insert at the end of the current buffer buttons to show more log entries.
@ -2401,21 +2402,32 @@ Does nothing if IS-START-REVISION is non-nil, or if LIMIT is nil,
or if PL-RETURN is `limit-unsupported'."
(when (and limit (not (eq 'limit-unsupported pl-return))
(not is-start-revision))
(goto-char (point-max))
(insert "\n")
(insert-text-button "Show 2X entries"
'action (lambda (&rest _ignore)
(vc-print-log-internal
log-view-vc-backend log-view-vc-fileset
working-revision nil (* 2 limit)))
'help-echo "Show the log again, and double the number of log entries shown")
(insert " ")
(insert-text-button "Show unlimited entries"
'action (lambda (&rest _ignore)
(vc-print-log-internal
log-view-vc-backend log-view-vc-fileset
working-revision nil nil))
'help-echo "Show the log again, including all entries")))
(let ((entries 0))
(goto-char (point-min))
(while (re-search-forward log-view-message-re nil t)
(cl-incf entries))
;; If we got fewer entries than we asked for, then displaying
;; the "more" buttons isn't useful.
(when (>= entries limit)
(goto-char (point-max))
(insert "\n")
(insert-text-button
"Show 2X entries"
'action (lambda (&rest _ignore)
(vc-print-log-internal
log-view-vc-backend log-view-vc-fileset
working-revision nil (* 2 limit)))
'help-echo
"Show the log again, and double the number of log entries shown")
(insert " ")
(insert-text-button
"Show unlimited entries"
'action (lambda (&rest _ignore)
(vc-print-log-internal
log-view-vc-backend log-view-vc-fileset
working-revision nil nil))
'help-echo "Show the log again, including all entries")
(insert "\n")))))
(defun vc-print-log-internal (backend files working-revision
&optional is-start-revision limit type)