Subject: 27.0.50; Bogus icomplete behavior

From: OGAWA Hirofumi <[email-masked]>
Date: Tue, 18 Sep 2018 03:42:27 +0900

The following is the process to reproduce the issue,

	$ cd /path/to/emacs-src
	$ LANG=C emacs -Q

	M-x icomplete-mode
	C-x C-f
	/path/to/emacs-src/{m4/ | nt/ | lib/ | ...

Now icomplete is selecting "m4" as initial completion word.

	C-M-i
	/path/to/emacs-src/./{m4/ | nt/ | lib/ | ...

But minibuffer-force-complete (C-M-i) complete "./", not "m4"

Or
	C-.
	/path/to/emacs-src/{m4/ | nt/ | lib/ | ...

But icomplete doesn't change completion word (bold entry).

Both of above bugs are, because inconsistency of the completion
list between `icomplete-completions' and
others. `icomplete-completions' filters by following

      (when (and minibuffer-completing-file-name
                 icomplete-with-completion-tables)
        (setq comps (completion-pcm--filename-try-filter comps)))

But the completion list for others are not. This 3 lines are strange,
one is making inconsistency for the completion list, one is abuse of
icomplete-with-completion-tables (shouldn't be nil). The patch is to fix
this issue.

[If we want to support filtering, icomplete would have to use consistent
completion list, and maybe command to toggle between filtered or all.]

Thanks.

---

 lisp/icomplete.el |    3 ---
 1 file changed, 3 deletions(-)

diff -puN lisp/icomplete.el~icomplete-fix lisp/icomplete.el
--- emacs/lisp/icomplete.el~icomplete-fix	2018-09-18 03:34:16.204618359 +0900
+++ emacs-hirofumi/lisp/icomplete.el	2018-09-18 03:34:24.338607860 +0900
@@ -382,9 +382,6 @@ matches exist."
 	(progn ;;(debug (format "Candidates=%S field=%S" candidates name))
 	       (format " %sNo matches%s" open-bracket close-bracket))
       (if last (setcdr last nil))
-      (when (and minibuffer-completing-file-name
-                 icomplete-with-completion-tables)
-        (setq comps (completion-pcm--filename-try-filter comps)))
       (let* ((most-try
               (if (and base-size (> base-size 0))
                   (completion-try-completion
_

In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2018-08-04 built on devron
Repository revision: da0054c30729e58259c1e7251cb03c8ef13ff943
Windowing system distributor 'The X.Org Foundation', version 11.0.12001000
System Description: Debian GNU/Linux buster/sid

Recent messages:
Reading active file via nndraft...done
Checking new news...done
Checking new news...
Reading active file via nnnil...done
nnimap read 0k from server.parknet.ne.jp
Reading active file via nndraft...done
Checking new news...done
Making completion list...
Quit
Making completion list...
Quit
Configured using:
 'configure --libexecdir=/usr/local/lib --with-x --with-x-toolkit=gtk3
 --without-xim --with-xpm --with-jpeg --with-tiff --with-gif --with-png
 --with-rsvg --with-dbus --with-wide-int --with-modules'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY ACL
LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES THREADS JSON LCMS2

Important settings:
  value of $LANG: ja_JP.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  gnus-topic-mode: t
  gnus-undo-mode: t
  flycheck-pos-tip-mode: t
  global-flycheck-mode: t
  auto-insert-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-company-mode: t
  company-mode: t
  savehist-mode: t
  eyebrowse-mode: t
  icomplete-mode: t
  show-paren-mode: t
  tooltip-mode: t
  global-eldoc-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
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t

Load-path shadows:
/usr/local/share/emacs/site-lisp/google-translate/features/support/env hides /usr/local/share/emacs/27.0.50/lisp/env

Features:
(shadow nnir emacsbug sendmail stem lookup-entry ndkks lookup-kanji
lookup-kanji-mecab ndict ndeb ndeb-binary lookup-content lookup-vse
lookup-text lookup-text-table lookup-package lookup lookup-types
lookup-utils lookup-cache lookup-vars evi url-http url-gw url-auth
url-cache jka-compr gnus-dup shr-color color mm-archive bbdb-gui
bbdb-hooks gnus-notifications gnus-fun notifications dbus hl-line
elfeed-show elfeed-search bookmark shr text-property-search svg dom
elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib avl-tree
generator url-queue browse-url xml-query xml pp sort gnus-cite
gnus-async gnus-bcklg qp gnus-ml disp-table gnus-topic utf-7 rfc2104
gnutls network-stream nsm nnfolder bbdb-gnus bbdb-snarf mail-extr nnnil
spam spam-stat bbdb-com warnings bbdb timezone gnus-uu yenc gnus-demon
gnus-delay gnus-draft gnus-agent gnus-srvr gnus-score score-mode
nnvirtual nntp gnus-cache gnus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime dig gnus-sum nndraft nnmh gnus-group gnus-undo
gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo
parse-time gnus-spec gnus-int gnus-range message rmc puny rfc822 mml
mml-sec epa mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils wid-edit
dircolors-faces ansi-color dired-x dired dired-loaddefs
company-yasnippet flyspell ispell server generic-x multi-translate
google-translate-smooth-ui google-translate google-translate-default-ui
google-translate-core-ui ido google-translate-core google-translate-tk
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap magit-autoloads git-modes-autoloads
flycheck-pos-tip pos-tip flycheck find-func autoinsert yasnippet
elec-pair company-oddmuse company-keywords company-etags etags xref
project ring company-gtags company-dabbrev-code company-dabbrev
company-files company-capf company-cmake company-xcode company-clang
company-semantic company-eclim company-template company-bbdb company
edmacro kmacro bbdb-autoloads savehist browse-kill-ring cl
eyebrowse-session desktop frameset eyebrowse format-spec dash icomplete
paren mozc-im-indicater mozc-popup popup mozc-im advice mm-util
mail-prsvr time-date mule-util mozc rx finder-inf package let-alist
derived pcase cl-extra help-mode easymenu url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json map url-vars seq byte-opt gv bytecomp byte-compile
cconv epg epg-config subr-x cl-loaddefs cl-lib japan-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded 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 threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 587506 223086)
 (symbols 48 45826 7)
 (miscs 40 253 977)
 (strings 32 343244 26865)
 (string-bytes 1 12567317)
 (vectors 16 116121)
 (vector-slots 8 1833671 267640)
 (floats 8 19783 3269)
 (intervals 56 1616 1000)
 (buffers 992 54))

-- 
OGAWA Hirofumi <[email-masked]>