Subject: Re: bug#34116: 27.0.50; minibuffer-force-complete-and-exit mostly broken
From: João Távora <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: [email-masked], [email-masked], bug#34077 <[email-masked]>, [email-masked]
Date: Wed, 23 Jan 2019 16:36:07 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

On Wed, Jan 23, 2019 at 4:09 PM Stefan Monnier <[email-masked]> wrote:
>
> > But what about this which solves both problems bug#34077
> > and bug#34116?
>
> LGTM,
>         Stefan

Great!

commit b9add0a5a7eddcf80a189c478b39a5cb7a12befe (HEAD -&gt; master,
origin/master, origin/HEAD)
Author: João Távora
Date:   Wed Jan 23 16:30:41 2019 +0000

    Force completion in icomplete with C-M-i, but don't cycle
(bug#34077)

    Cycling after forcing a completion with C-M-i in icomplete can be
    confusing, as it leaves rotated prospects in the minibuffer.  In
C-x
    C-f, for example it is very difficult to understand if the
prospects
    refer to subdirectories of the directory being completed to, which
    happens naturally when the completion is unique; or if they are a
    cycled version of prospects that match the new completion pattern,
in
    case the completion happens to still match other items.

    To resolve this confusion, never cycle with C-M-i in icomplete:
    non-ambiguous cycling can be achieved with C-. and C-,

    The former behaviour can still be restored with:

    (define-key icomplete-minibuffer-map (kbd "C-M-i")
'minibuffer-force-complete)

    * lisp/icomplete.el (icomplete-force-complete): New command.
    (icomplete-minibuffer-map): Bind C-M-i to
icomplete-force-complete.

commit 210e592e55ade154c8d58bd467711fb69368f6cb
Author: João Távora
Date:   Wed Jan 23 16:17:03 2019 +0000

    Avoid cycling in minibuffer-force-complete-and-exit (bug#34116)

    * lisp/minibuffer.el (minibuffer-force-complete-and-exit): Check
    completion-cycling before minibuffer-force-complete.