Subject: bug#27158: 25.2; Eliminating old usage of completing-read from built-in files

From: Dmitry Gutov <[email-masked]>
Date: Thu, 1 Jun 2017 02:54:26 +0300

On 6/1/17 2:16 AM, Drew Adams wrote:

> The value of that variable is supposed to accept the same
> args as `completing-read'.  Understood is that `completing-read'
> just passes its args along to the value of `completing-read-function'.

That will change.

> Anything else makes it impossible for `completing-read-function'
> to be as general as it should be.

(defun completing-read (prompt collection &optional predicate
                                require-match initial-input hist def
                                inherit-input-method)
   (funcall completing-read-function
            prompt collection predicate require-match
            initial-input hist (or def "") inherit-input-method))

should suffice.

> It should be able to do
> exactly what `completing-read' does now, if it wants.

The function does not want anything.

> And if that is insufficient for some reason, can't you use
> `advice-add' to redefine `completing-read' (e.g. in some
> scope or for some duration) to do exactly what you need?
> 
> I sense that you have a real problem, but I'm not sure what it is.

Maybe try reading? I've sent a pretty long explanation to you in the 
previous message.

> What prevents you from making `completing-read' behave that
> way (or any other way) within your context?  Why is it
> insufficient for you to do that in your value of
> `completing-read-function' or by advising `completing-read'
> for the duration?

My context is "the whole of Emacs". That's what Ido Ubiquitous is 
supposed to be affecting and improving.