> > How to reproduce from emacs -Q: > > (setq enable-recursive-minibuffers t) > (setq icomplete-show-matches-on-no-input t) > M-x icomplete-mode RET > C-x C-f > [Icomplete now exhibits some filenames in the minibuffer] > M-: > [Icomplete shouldn’t exhibit anything here but it still > exhibits the filenames from the previous step and even > allows you to complete them with C-j] > > You can replace C-x C-f with other similar commands, e.g., C-x b or M-x. > I’m not sure if this bug comes from how Icomplete configures itself or > the implementation of recursive minibuffers. It appears that > icomplete-simple-completing-p returns t when the M-: is happening in a > recursive minibuffer, even though it should return nil so that Icomplete > doesn’t configure itself. > > If the M-: is not in a recursive minibuffer, everything is OK since > icomplete-simple-completing-p returns nil. > Indeed; patch attached. Ideally this should be done inside icomplete-minibuffer-setup, but if we did this (by checking minibuffer-completing-symbol), it would prevent icomplete-mode from being active in the opposite situation: M-: followed by C-x C-f.