Subject: 24.3.50; completion when evalling within ibuffer

From: Nicolas Richard <[email-masked]>
Date: Tue, 24 Dec 2013 14:16:22 +0100

Hello,

I know there has been much discussion on the completion mechanism
recently, but (or "hence" ?) I didn't find a bug report specifically on
this :

>From emacs -Q:

M-x ibuffer RET
m
E
em-ve TAB

At this point, earlier versions expanded em-ve to emacs-version (a
variable), but the latest ones don't.

--

I'm trying to understand why : I noticed that E in ibuffer does this:
    (read-from-minibuffer
     "Eval in buffers (form): "
     nil read-expression-map t 'read-expression-history)
whereas M-: does this:
    (read--expression "Eval: ")
and the function read--expression changes 'completion-at-point-functions in a
minibuffer hook.

Note that read-expression-map used to have the following docstring:
"Minibuffer keymap used for reading Lisp expressions.". That was changed
[on Sat May 4 15:27:41 2013 -0400 -- commit f7d4dcf]. The same change
moved the actual definition from C to simple.el but the comment stating
"It is defined at C level." remained in simple.el.

In GNU Emacs 24.3.50.1 (i686-pc-linux-gnu, GTK+ Version 3.4.4)
 of 2013-12-19 on geodiff-mac3
Windowing system distributor `The X.Org Foundation', version 11.0.11304000
System Description:	Gentoo Base System release 2.2

Configured using:
 `configure 'CFLAGS=-O0 -g3''

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

Major mode: Group

Minor modes in effect:
  minibuffer-depth-indicate-mode: t
  gnus-agent-group-mode: t
  TeX-PDF-mode: t
  rcirc-track-minor-mode: t
  diff-auto-refine-mode: t
  global-discover-mode: t
  discover-mode: t
  override-global-mode: t
  projectile-global-mode: t
  projectile-mode: t
  dynamic-completion-mode: t
  shell-dirtrack-mode: t
  show-paren-mode: t
  recentf-mode: t
  gnus-undo-mode: t
  display-time-mode: t
  winner-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
  blink-cursor-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
  transient-mark-mode: t

Recent input:
n o n SPC t r i v i a l SPC s u b g r o u p s SPC H 
<C-left> <C-left> <C-left> <C-left> <C-left> <C-left> 
G SPC C-e SPC w h i c h SPC s a t i s f y SPC G / H 
= G <left> <left> <delete> \ i <backspace> <backspace> 
SPC i s o m o r p h i c SPC t o SPC C-e . SPC <backspace> 
SPC S o SPC <backspace> <backspace> <backspace> <home> 
<C-right> <C-right> <C-right> <C-left> M-d M-d <delete> 
<C-right> <C-right> <end> <backspace> SPC ( <backspace> 
<backspace> <backspace> SPC ( C-y ) C-/ C-/ C-S-y M-y 
) C-M-b C-f s e e SPC <C-left> <C-left> <C-right> <return> 
a w , SPC y o u SPC h a d SPC i t <C-backspace> <C-backspace> 
<C-backspace> I S-SPC w <backspace> ' m SPC <backspace> 
<backspace> <backspace> <backspace> ' m SPC t o o SPC 
l a t e <return> C-x o C-x o C-x o C-x o C-c C-SPC 
C-c C-SPC C-c C-SPC C-x K C-c C-SPC g q q C-/ C-c C-SPC 
a n <tab> C-a C-k C-a C-k e a s y SPC e x e r c i c 
e s SPC a <C-backspace> c a n SPC b e SPC t o u g h 
. <C-backspace> <C-backspace> <C-backspace> <C-backspace> 
<C-backspace> C-c C-SPC C-c C-SPC C-c C-SPC SPC n n 
<down> <down> <down> <down> <return> ^ ^ ^ ^ ^ <down> 
<return> <down> <return> q g <return> <C-end> <up> 
<return> SPC SPC SPC SPC SPC SPC SPC C-x o <tab> <return> 
q g <return> <return> q <up> <up> <up> <up> <up> <return> 
<return> SPC q <return> <return> c C-g M-> c y M-x 
r e p o r t <tab> e m <tab> <return>

Recent messages:
Opening nntp server on news.gmane.org...done
No more unseen articles [2 times]
Quit
Mark set
Mark all unread articles as read? (y or n)  y
Calculating achievements... done
Cleaning up the recentf list...done (0 removed)
Auto-saving...
Calculating achievements... done
Cleaning up the recentf list...done (0 removed)

Load-path shadows:
~/.emacs.d/lisp/asy-mode hides /usr/local/texlive/2012/texmf/asymptote/asy-mode
~/sources/org-mode/lisp/org-footnote hides /home/youngfrog/sources/running-emacs/lisp/org/org-footnote
~/sources/org-mode/lisp/ob-asymptote hides /home/youngfrog/sources/running-emacs/lisp/org/ob-asymptote
~/sources/org-mode/lisp/ob-sqlite hides /home/youngfrog/sources/running-emacs/lisp/org/ob-sqlite
~/sources/org-mode/lisp/ob-ditaa hides /home/youngfrog/sources/running-emacs/lisp/org/ob-ditaa
~/sources/org-mode/lisp/org-protocol hides /home/youngfrog/sources/running-emacs/lisp/org/org-protocol
~/sources/org-mode/lisp/ox-beamer hides /home/youngfrog/sources/running-emacs/lisp/org/ox-beamer
~/sources/org-mode/lisp/org-irc hides /home/youngfrog/sources/running-emacs/lisp/org/org-irc
~/sources/org-mode/lisp/ob-scheme hides /home/youngfrog/sources/running-emacs/lisp/org/ob-scheme
~/sources/org-mode/lisp/org-capture hides /home/youngfrog/sources/running-emacs/lisp/org/org-capture
~/sources/org-mode/lisp/ob-plantuml hides /home/youngfrog/sources/running-emacs/lisp/org/ob-plantuml
~/sources/org-mode/lisp/ox-html hides /home/youngfrog/sources/running-emacs/lisp/org/ox-html
~/sources/org-mode/lisp/org-table hides /home/youngfrog/sources/running-emacs/lisp/org/org-table
~/sources/org-mode/lisp/ob-eval hides /home/youngfrog/sources/running-emacs/lisp/org/ob-eval
~/sources/org-mode/lisp/ob-exp hides /home/youngfrog/sources/running-emacs/lisp/org/ob-exp
~/sources/org-mode/lisp/org-eshell hides /home/youngfrog/sources/running-emacs/lisp/org/org-eshell
~/sources/org-mode/lisp/ob-sql hides /home/youngfrog/sources/running-emacs/lisp/org/ob-sql
~/sources/org-mode/lisp/org-colview hides /home/youngfrog/sources/running-emacs/lisp/org/org-colview
~/sources/org-mode/lisp/ox-publish hides /home/youngfrog/sources/running-emacs/lisp/org/ox-publish
~/sources/org-mode/lisp/ob-sh hides /home/youngfrog/sources/running-emacs/lisp/org/ob-sh
~/sources/org-mode/lisp/ob-comint hides /home/youngfrog/sources/running-emacs/lisp/org/ob-comint
~/sources/org-mode/lisp/org-element hides /home/youngfrog/sources/running-emacs/lisp/org/org-element
~/sources/org-mode/lisp/org-indent hides /home/youngfrog/sources/running-emacs/lisp/org/org-indent
~/sources/org-mode/lisp/ob-sass hides /home/youngfrog/sources/running-emacs/lisp/org/ob-sass
~/sources/org-mode/lisp/org-compat hides /home/youngfrog/sources/running-emacs/lisp/org/org-compat
~/sources/org-mode/lisp/org-list hides /home/youngfrog/sources/running-emacs/lisp/org/org-list
~/sources/org-mode/lisp/ox hides /home/youngfrog/sources/running-emacs/lisp/org/ox
~/sources/org-mode/lisp/ob-mscgen hides /home/youngfrog/sources/running-emacs/lisp/org/ob-mscgen
~/sources/org-mode/lisp/ob-keys hides /home/youngfrog/sources/running-emacs/lisp/org/ob-keys
~/sources/org-mode/lisp/org-info hides /home/youngfrog/sources/running-emacs/lisp/org/org-info
~/sources/org-mode/lisp/org-ctags hides /home/youngfrog/sources/running-emacs/lisp/org/org-ctags
~/sources/org-mode/lisp/org-habit hides /home/youngfrog/sources/running-emacs/lisp/org/org-habit
~/sources/org-mode/lisp/org-datetree hides /home/youngfrog/sources/running-emacs/lisp/org/org-datetree
~/sources/org-mode/lisp/ox-texinfo hides /home/youngfrog/sources/running-emacs/lisp/org/ox-texinfo
~/sources/org-mode/lisp/org-clock hides /home/youngfrog/sources/running-emacs/lisp/org/org-clock
~/sources/org-mode/lisp/org-bbdb hides /home/youngfrog/sources/running-emacs/lisp/org/org-bbdb
~/sources/org-mode/lisp/ob-maxima hides /home/youngfrog/sources/running-emacs/lisp/org/ob-maxima
~/sources/org-mode/lisp/ob-fortran hides /home/youngfrog/sources/running-emacs/lisp/org/ob-fortran
~/sources/org-mode/lisp/ob-picolisp hides /home/youngfrog/sources/running-emacs/lisp/org/ob-picolisp
~/sources/org-mode/lisp/ob-java hides /home/youngfrog/sources/running-emacs/lisp/org/ob-java
~/sources/org-mode/lisp/ox-icalendar hides /home/youngfrog/sources/running-emacs/lisp/org/ox-icalendar
~/sources/org-mode/lisp/org-gnus hides /home/youngfrog/sources/running-emacs/lisp/org/org-gnus
~/sources/org-mode/lisp/ob-table hides /home/youngfrog/sources/running-emacs/lisp/org/ob-table
~/sources/org-mode/lisp/ob-ocaml hides /home/youngfrog/sources/running-emacs/lisp/org/ob-ocaml
~/sources/org-mode/lisp/ob-tangle hides /home/youngfrog/sources/running-emacs/lisp/org/ob-tangle
~/sources/org-mode/lisp/ox-md hides /home/youngfrog/sources/running-emacs/lisp/org/ox-md
~/sources/org-mode/lisp/org-install hides /home/youngfrog/sources/running-emacs/lisp/org/org-install
~/sources/org-mode/lisp/ob-org hides /home/youngfrog/sources/running-emacs/lisp/org/ob-org
~/sources/org-mode/lisp/org-docview hides /home/youngfrog/sources/running-emacs/lisp/org/org-docview
~/sources/org-mode/lisp/org-timer hides /home/youngfrog/sources/running-emacs/lisp/org/org-timer
~/sources/org-mode/lisp/ob-makefile hides /home/youngfrog/sources/running-emacs/lisp/org/ob-makefile
~/sources/org-mode/lisp/ob-calc hides /home/youngfrog/sources/running-emacs/lisp/org/ob-calc
~/sources/org-mode/lisp/org-rmail hides /home/youngfrog/sources/running-emacs/lisp/org/org-rmail
~/sources/org-mode/lisp/org-plot hides /home/youngfrog/sources/running-emacs/lisp/org/org-plot
~/sources/org-mode/lisp/ob-haskell hides /home/youngfrog/sources/running-emacs/lisp/org/ob-haskell
~/sources/org-mode/lisp/ob-shen hides /home/youngfrog/sources/running-emacs/lisp/org/ob-shen
~/sources/org-mode/lisp/ox-latex hides /home/youngfrog/sources/running-emacs/lisp/org/ox-latex
~/sources/org-mode/lisp/org-mhe hides /home/youngfrog/sources/running-emacs/lisp/org/org-mhe
~/sources/org-mode/lisp/org-pcomplete hides /home/youngfrog/sources/running-emacs/lisp/org/org-pcomplete
~/sources/org-mode/lisp/org-mouse hides /home/youngfrog/sources/running-emacs/lisp/org/org-mouse
~/sources/org-mode/lisp/ox-man hides /home/youngfrog/sources/running-emacs/lisp/org/ox-man
~/sources/org-mode/lisp/org-archive hides /home/youngfrog/sources/running-emacs/lisp/org/org-archive
~/sources/org-mode/lisp/ox-ascii hides /home/youngfrog/sources/running-emacs/lisp/org/ox-ascii
~/sources/org-mode/lisp/ob-python hides /home/youngfrog/sources/running-emacs/lisp/org/ob-python
~/sources/org-mode/lisp/ox-org hides /home/youngfrog/sources/running-emacs/lisp/org/ox-org
~/sources/org-mode/lisp/ob-gnuplot hides /home/youngfrog/sources/running-emacs/lisp/org/ob-gnuplot
~/sources/org-mode/lisp/org-agenda hides /home/youngfrog/sources/running-emacs/lisp/org/org-agenda
~/sources/org-mode/lisp/ob-core hides /home/youngfrog/sources/running-emacs/lisp/org/ob-core
~/sources/org-mode/lisp/ob-perl hides /home/youngfrog/sources/running-emacs/lisp/org/ob-perl
~/sources/org-mode/lisp/ob-octave hides /home/youngfrog/sources/running-emacs/lisp/org/ob-octave
~/sources/org-mode/lisp/org-crypt hides /home/youngfrog/sources/running-emacs/lisp/org/org-crypt
~/sources/org-mode/lisp/org-macs hides /home/youngfrog/sources/running-emacs/lisp/org/org-macs
~/sources/org-mode/lisp/org-w3m hides /home/youngfrog/sources/running-emacs/lisp/org/org-w3m
~/sources/org-mode/lisp/org-feed hides /home/youngfrog/sources/running-emacs/lisp/org/org-feed
~/sources/org-mode/lisp/org-mobile hides /home/youngfrog/sources/running-emacs/lisp/org/org-mobile
~/sources/org-mode/lisp/org-version hides /home/youngfrog/sources/running-emacs/lisp/org/org-version
~/sources/org-mode/lisp/ob-ledger hides /home/youngfrog/sources/running-emacs/lisp/org/ob-ledger
~/sources/org-mode/lisp/org-inlinetask hides /home/youngfrog/sources/running-emacs/lisp/org/org-inlinetask
~/sources/org-mode/lisp/ob-latex hides /home/youngfrog/sources/running-emacs/lisp/org/ob-latex
~/sources/org-mode/lisp/ob-dot hides /home/youngfrog/sources/running-emacs/lisp/org/ob-dot
~/sources/org-mode/lisp/ob-screen hides /home/youngfrog/sources/running-emacs/lisp/org/ob-screen
~/sources/org-mode/lisp/org-src hides /home/youngfrog/sources/running-emacs/lisp/org/org-src
~/sources/org-mode/lisp/ob-ruby hides /home/youngfrog/sources/running-emacs/lisp/org/ob-ruby
~/sources/org-mode/lisp/org-macro hides /home/youngfrog/sources/running-emacs/lisp/org/org-macro
~/sources/org-mode/lisp/ob hides /home/youngfrog/sources/running-emacs/lisp/org/ob
~/sources/org-mode/lisp/ob-io hides /home/youngfrog/sources/running-emacs/lisp/org/ob-io
~/sources/org-mode/lisp/ob-matlab hides /home/youngfrog/sources/running-emacs/lisp/org/ob-matlab
~/sources/org-mode/lisp/ob-ref hides /home/youngfrog/sources/running-emacs/lisp/org/ob-ref
~/sources/org-mode/lisp/org-bibtex hides /home/youngfrog/sources/running-emacs/lisp/org/org-bibtex
~/sources/org-mode/lisp/org-entities hides /home/youngfrog/sources/running-emacs/lisp/org/org-entities
~/sources/org-mode/lisp/org hides /home/youngfrog/sources/running-emacs/lisp/org/org
~/sources/org-mode/lisp/ob-R hides /home/youngfrog/sources/running-emacs/lisp/org/ob-R
~/sources/org-mode/lisp/ob-C hides /home/youngfrog/sources/running-emacs/lisp/org/ob-C
~/sources/org-mode/lisp/ob-lob hides /home/youngfrog/sources/running-emacs/lisp/org/ob-lob
~/sources/org-mode/lisp/ob-awk hides /home/youngfrog/sources/running-emacs/lisp/org/ob-awk
~/sources/org-mode/lisp/ob-clojure hides /home/youngfrog/sources/running-emacs/lisp/org/ob-clojure
~/sources/org-mode/lisp/org-faces hides /home/youngfrog/sources/running-emacs/lisp/org/org-faces
~/sources/org-mode/lisp/ox-odt hides /home/youngfrog/sources/running-emacs/lisp/org/ox-odt
~/sources/org-mode/lisp/ob-css hides /home/youngfrog/sources/running-emacs/lisp/org/ob-css
~/sources/org-mode/lisp/ob-lisp hides /home/youngfrog/sources/running-emacs/lisp/org/ob-lisp
~/sources/org-mode/lisp/ob-lilypond hides /home/youngfrog/sources/running-emacs/lisp/org/ob-lilypond
~/sources/org-mode/lisp/org-attach hides /home/youngfrog/sources/running-emacs/lisp/org/org-attach
~/sources/org-mode/lisp/ob-emacs-lisp hides /home/youngfrog/sources/running-emacs/lisp/org/ob-emacs-lisp
~/sources/org-mode/lisp/ob-scala hides /home/youngfrog/sources/running-emacs/lisp/org/ob-scala
~/sources/org-mode/lisp/ob-js hides /home/youngfrog/sources/running-emacs/lisp/org/ob-js
~/sources/org-mode/lisp/org-id hides /home/youngfrog/sources/running-emacs/lisp/org/org-id
~/sources/org-mode/lisp/org-loaddefs hides /home/youngfrog/sources/running-emacs/lisp/org/org-loaddefs
/home/youngfrog/.emacs.d/elpa/js2-mode-20131118.1516/.dir-locals hides /home/youngfrog/sources/running-emacs/lisp/gnus/.dir-locals
/home/youngfrog/.emacs.d/elpa/tabulated-list-20120406.1351/tabulated-list hides /home/youngfrog/sources/running-emacs/lisp/emacs-lisp/tabulated-list

Features:
(apropos mb-depth debbugs-gnu debbugs soap-client ibuf-ext ibuffer
shr-color gnus-fun helm-ring helm-elisp helm-eval helm-info helm-net
helm-plugin helm-utils helm browse-kill-ring autoload master hippie-exp
conf-mode goto-addr xterm nnir tex-buf reftex-dcr reftex-auc reftex
reftex-vars font-latex latex tex-style tex dbus crm eww mm-url
descr-text bookmark esh-var esh-io esh-cmd esh-opt esh-ext esh-proc
esh-arg eldoc esh-groups eshell esh-module esh-mode esh-util lisp-mnt
finder-inf flyspell ispell pcmpl-unix find-dired calc-menu calc-aent
calc calc-loaddefs calc-macs dired-aux timezone google-translate json
imenu man rect org-clock org-colview view cal-china lunar solar cal-dst
cal-bahai cal-islam cal-hebrew holidays hol-loaddefs diary-lib
diary-loaddefs cal-iso org-table mule-util cal-move tabify rcirc-color
rcirc whitespace org-indent org-rmail org-mhe org-irc org-info org-gnus
org-docview org-bibtex bibtex org-bbdb org-w3m tramp-cache tramp-sh
tramp tramp-compat tramp-loaddefs trampver url-http url-gw url-auth
url-queue url-cache flow-fill mailalias smtpmail cus-edit cus-start
cus-load time-stamp etags fic-ext-mode cc-langs cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
vc-bzr vc-sccs vc-svn vc-cvs vc-rcs pp shr browse-url mm-archive smiley
gnus-cite gnus-async gnus-bcklg misearch multi-isearch qp gnus-ml
disp-table nndraft nnmh gnutls nnfolder parse-time netrc network-stream
starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
nntp gnus-cache magit-cherry magit-bisect magit-key-mode magit
magit-version diff-mode git-rebase-mode rx git-commit-mode server
log-edit pcvs-util add-log vc vc-dispatcher keyfreq
advanced-achievements help-mode shadow sort mail-extr emacsbug sendmail
paredit hideshow discover makey-key-mode twittering-mode epa epg tls url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util xml achievements basic-achievements
achievements-functions autoinsert use-package diminish bind-key
ac-nrepl-autoloads achievements-autoloads ack-and-a-half-autoloads
ampc-autoloads auto-dim-other-buffers-autoloads boxquote-autoloads
clojure-mode-autoloads color-theme-solarized-autoloads
color-theme-autoloads col-highlight-autoloads csv-mode-autoloads
csv-nav-autoloads dropbox-autoloads dtrt-indent-autoloads eimp-autoloads
elnode-autoloads db-autoloads creole-autoloads fakir-autoloads
fic-ext-mode-autoloads find-file-in-project-autoloads flx-autoloads
hl-line+-autoloads idomenu-autoloads keyfreq-autoloads kv-autoloads
lcs-autoloads log4j-mode-autoloads logito-autoloads
lorem-ipsum-autoloads lusty-explorer-autoloads mark-tools-autoloads
memory-usage-autoloads minimap-autoloads multifiles-autoloads
mwe-log-commands-autoloads nlinum-autoloads nose-autoloads
oauth-autoloads org-email-autoloads paredit-autoloads pastebin-autoloads
pos-tip-autoloads powerline powerline-separators color powerline-themes
projectile pkg-info epl grep compile dash s pymacs-autoloads
python-mode-autoloads pyvirtualenv-autoloads rainbow-mode-autoloads
rebox2-autoloads request-autoloads shell-switcher-autoloads
sicp-autoloads slime-autoloads top-mode-autoloads typing-autoloads
diminish-autoloads virtualenv-autoloads vline-autoloads w3-autoloads
window-number-autoloads workspaces-autoloads wtf-autoloads
zen-and-art-theme-autoloads package yf/makeadefun warnings completion
ert ewoc debug pcase ob-R ob-sh shell windmove latexenc paren doc-view
jka-compr image-mode recentf tree-widget org-contacts org-capture
org-agenda gnus-art mm-uu mml2015 epg-config mm-view mml-smime smime dig
mailcap find-lisp dired org-inlinetask org-element org derived org-macro
org-footnote org-pcomplete pcomplete org-list org-faces org-entities
noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref
ob-lob ob-table ob-keys ob-exp ob-comint comint ansi-color ob-core
ob-eval org-compat org-macs find-func cal-menu calendar cal-loaddefs
gnus-sum nnoo gnus-group gnus-undo nnmail mail-source gnus-start
gnus-spec gnus-int gnus-range message cl-macs gv format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems
nnheader mail-utils wid-edit cl time ffap thingatpt url-parse
auth-source eieio byte-opt bytecomp byte-compile cconv eieio-core
gnus-util mm-util mail-prsvr password-cache url-vars winner ring edmacro
kmacro cl-loaddefs cl-lib magit-autoloads two-mode-mode tex-site
auto-loads org-loaddefs ido-hacks advice help-fns easy-mmode ido info
easymenu 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 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)