Subject: Re: bug#1085: 23.0.60; all-completions, try-completion inconsistent: Info-read-node-name-1

From: Stefan Monnier <[email-masked]>
Date: Mon, 06 Oct 2008 22:06:09 -0400

> No, not necessarily. I only want `try-completion', `all-completions' and
> `test-completion' to be on the same page, in the sense of the invariants I
> mentioned.

Then I missed those invariants.
Could you spell them out again one by one?

        Stefan

PS: Regarding the behavior of info completion for "(emacs)", it can't be
done right until someone writes the relevant code.  Basically the
current code doesn't know how to do completion in this case, so
try-completion can't return anything use, and neither can
all-completions, or test-completion.  The current code instead just
tries to return something that's safe: try-completion returns the string
unchanged, which indicates that it's a valid completion and that there's
more completions out there; test-completion returns t to basically say
the same; and all-completions returns nil so that
minibuffer-completing-help doesn't give some bogus list of completions.

The try-completion and test-completion outputs are fairly reasonable.
The all-completions one is less satisfactory since returning nil seems
to imply that the input is not a valid completion, whereas
try-completion and test-completion say that it is.  Returning a list
containing a copy of the input wouldn't be right either since it would
imply that the current input is the sole completion.  Basically, we'd
need a special `dont-know' return value, but it doesn't seem worth
the trouble.