Subject: 24.2.50; `Info-complete-menu-item' should use `add-to-list', not `push', to prevent duplicates

From: "Drew Adams" <[email-masked]>
Date: Mon, 22 Oct 2012 09:25:56 -0700

Subject line says it all.
 
This sexp:
(push (match-string-no-properties 1) completions)
 
should be changed to this:
(add-to-list 'completions (match-string-no-properties 1))

Otherwise the same entry can be added to `completions' multiple times.
 
This might not be manifested in *Completions*, because Emacs removes
duplicate candidates.  But in other completion setups (e.g. Icicles)
duplicate candidates (e.g. same display string, but perhaps different
alist elements) are sometimes allowed.
 
Yes, such other completion setups can specifically remove dups here.
But it would be more polite for `Info-complete-menu-item' to not create
dups in the first place.  There is never any reason for dups in this
context.

In GNU Emacs 24.2.50.1 (i386-mingw-nt5.1.2600)
 of 2012-10-15 on DANI-PC
Bzr revision: 110553 [email-masked]
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.7) --no-opt --enable-checking --cflags
 -I../../libs/libxpm-3.5.8/include -I../../libs/libxpm-3.5.8/src
 -I../../libs/libpng-1.4.10 -I../../libs/zlib-1.2.6
 -I../../libs/giflib-4.1.4-1/include -I../../libs/jpeg-6b-4/include
 -I../../libs/tiff-3.8.2-1/include
 -I../../libs/libxml2-2.7.8-w32-bin/include/libxml2
 -I../../libs/gnutls-3.0.16/include
 -I../../libs/libiconv-1.14-2-mingw32-dev/include'