Subject: bug#18959: 25.0.50; vc-change-log displays "show 2x entries" even when none available

From: Tom Tromey <[email-masked]>
Date: Wed, 05 Nov 2014 12:23:40 -0700

I did "C-x v l" on a file with 5 revisions.
They all appear in *vc-change-log*.

At the bottom I see two buttons:

    Show 2X entries    Show unlimited entries

First, there aren't any more entries, so showing these buttons is
confusing.  That's somewhat understandable but it would be nice if it
didn't do that.

Clicking "Show 2X entries" shows the same data -- and the buttons
reappear.  In this case the buttons definitely should not show up.

Clicking "Show unlimited entries" does the right thing -- the buttons go
away.

This behavior is more confusing when the entries don't fit in the
window.  Then it isn't obvious if clicking the button actually got more
entries or not.

In GNU Emacs 25.0.50.3 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.9)
 of 2014-10-09 on pokyo
Repository revision: 118080 [email-masked]
Windowing system distributor `Fedora Project', version 11.0.11404000
System Description:	Fedora release 20 (Heisenbug)

Configured using:
 `configure --prefix=/home/tromey/Emacs/install'

Configured features:
XPM JPEG TIFF GIF PNG SOUND GPM DBUS GSETTINGS NOTIFY ACL LIBSELINUX
GNUTLS LIBXML2 FREETYPE LIBOTF XFT ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: JS

Minor modes in effect:
  shell-dirtrack-mode: t
  erc-spelling-mode: t
  erc-truncate-mode: t
  diff-auto-refine-mode: t
  flyspell-mode: t
  which-function-mode: t
  projectile-global-mode: t
  projectile-mode: t
  desktop-save-mode: t
  erc-status-mode: t
  erc-services-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  savehist-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill

Recent input:
C-a M-x r g r e p <return> J S O N <return> <return> 
<M-backspace> <return> C-x o C-x 1 <f9> <f9> <f9> <f9> 
<f9> <f9> <f9> <f9> <f9> <f9> <f9> C-x b s c r <tab> 
<return> C-x 1 C-u C-SPC <switch-frame> C-z n C-x b 
s h a r <tab> <return> C-u C-SPC C-u C-SPC C-p C-p 
C-e M-b M-b M-b M-b M-d e v e n t u a l l y SPC _ r 
e q u e s t M-q C-n C-x C-s C-g C-r _ r e q u e s t 
C-r C-r C-r C-r C-r C-r C-r C-r C-a C-u C-u C-n C-l 
C-z n C-u C-u C-p C-s a r e q u e s t C-s C-s C-s C-s 
C-r C-r C-a C-u C-u C-p C-s f r e q e <backspace> <backspace> 
<backspace> e e z e C-s C-a C-u C-n C-u C-n C-s _ s 
e n d C-w C-s C-s C-a C-u C-n C-u C-n C-l C-x b t r 
a n <tab> <return> C-x v g C-z n <f10> C-l C-l C-l 
<f10> <f10> <f10> <f10> <f10> C-z n C-e C-a d C-x 1 
C-s f r e e z e C-a C-c b C-c C-g C-x b <return> C-h 
c a a r d e e p C-s C-f C-f C-f C-g B M-v C-x k <return> 
y e s <return> C-z n <f10> <f10> y i k e s C-a C-k 
<f10> <f10> C-z n C-z n <switch-frame> <switch-frame> 
C-z n C-z n <f10> <f10> <f10> C-z n C-z n <f10> <f10> 
C-x v l C-x 1 M-> C-p C-n C-a <return> M-> <f10> <f10> 
M-> C-u C-b <return> M-> C-z n M-x r e p o r t - e 
m <tab> <return>

Recent messages:
Annotating... done
Error during redisplay: (jit-lock-function 1) signaled (wrong-type-argument arrayp nil)
r is undefined
Cannot extract revision number from the current line
e is undefined [2 times]
Annotating...
funcall-interactively: End of buffer [3 times]
Quit
B is undefined
scroll-down-command: Beginning of buffer

Load-path shadows:
/home/tromey/.emacs.d/elpa/css-mode-1.0/css-mode hides /home/tromey/Emacs/install/share/emacs/25.0.50/lisp/textmodes/css-mode
/home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/25.0.50/lisp/play/bubbles
/home/tromey/Emacs/install/share/emacs/25.0.50/lisp/loaddefs hides /home/tromey/Emacs/install/share/emacs/25.0.50/lisp/obsolete/loaddefs

Features:
(tetris gamegrid m4-mode asm-mode tabify man compare-w nroff-mode rst
apropos gdb-mi bindat hi-lock perl-mode thai-util thai-word tramp-cache
tramp tramp-compat tramp-loaddefs cl-macs trampver rebase-mode rx shadow
emacsbug nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid
rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn
nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc
xmltok vc-annotate ido log-edit eww log-view pcvs-util novice etags
find-dired ffap two-column autoconf autoconf-mode sh-script smie
executable shell find-file eieio-opt speedbar sb-image ezimage dframe
help-mode gdb-shell webjump dabbrev copyright idutils derived gnus-fun
flow-fill gnus-html xml mm-url mailalias bbdb-sc supercite regi
mail-hist nnir shr-color color xterm url-http url-gw url-auth url-queue
url-cache url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util url-parse url-vars shr browse-url
misearch multi-isearch erc-spelling erc-truncate bbdb-gui bbdb-hooks
mule-util sort smiley gnus-cite mm-archive gnus-async gnus-bcklg qp
gnus-ml disp-table gnus-topic nndraft nnmh nnfolder utf-7 bbdb-gnus
bbdb-snarf mail-extr bbdb-com warnings cl gv gnutls network-stream
starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
nntp gnus-cache gnus-registry registry eieio-base gnus-art mm-uu mml2015
mm-view mml-smime smime dig mailcap gnus-sum gnus-group gnus-undo
smtpmail sendmail gnus-start gnus-cloud nnimap nnmail mail-source tls
utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win gnus
gnus-ems nnheader message rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
mail-utils gmm-utils mailheader goto-addr add-log dired-aux gud
org-element org-rmail org-mhe org-irc org-info org-gnus org-docview
doc-view jka-compr image-mode dired org-bibtex bibtex org-bbdb org-w3m
org org-macro org-footnote org-pcomplete org-list org-faces org-entities
noutline outline org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat
org-macs org-loaddefs conf-mode python sgml-mode vc-arch vc-mtn vc-hg
vc-bzr vc-sccs vc-svn vc-cvs vc-rcs js json smerge-mode diff-mode
easy-mmode bug-reference vc-git cc-mode cc-fonts cc-guess cc-menus
cc-cmds flyspell ispell eldoc diminish appt diary-lib diary-loaddefs
cal-menu calendar cal-loaddefs which-func imenu projectile edmacro
kmacro pkg-info find-func lisp-mnt epl grep compile dash s minimap
autorevert filenotify desktop frameset cus-start cus-load status
erc-services erc-list erc-menu erc-join erc-ring erc-networks
erc-pcomplete pcomplete erc-track erc-match erc-button wid-edit
cl-loaddefs cl-lib erc-fill erc-stamp erc-netsplit erc-goodies erc
erc-backend erc-compat format-spec auth-source eieio byte-opt bytecomp
byte-compile cconv eieio-core gnus-util mm-util mail-prsvr
password-cache thingatpt pp advice help-fns vc-dir ewoc vc vc-dispatcher
cc-styles cc-align cc-engine cc-vars cc-defs bbdb timezone ange-ftp
comint ansi-color ring server savehist dwarf-mode-autoloads
jabber-autoloads lisppaste-autoloads pydoc-info-autoloads info-look info
easymenu weblogger-autoloads package epg-config bbdb-autoloads time-date
tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind gfilenotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)

Memory information:
((conses 16 5111245 836212)
 (symbols 48 177885 813)
 (miscs 40 69549 36469)
 (strings 32 584986 164408)
 (string-bytes 1 65621221)
 (vectors 16 130771)
 (vector-slots 8 3605726 213100)
 (floats 8 887 1930)
 (intervals 56 790737 8645)
 (buffers 976 1690)
 (heap 1024 538033 100324))

Tom