bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#1085: 23.0.60; all-completions, try-completion inconsistent: Info-re


From: Drew Adams
Subject: bug#1085: 23.0.60; all-completions, try-completion inconsistent: Info-read-node-name-1
Date: Sat, 4 Oct 2008 15:58:20 -0700

emacs -Q
C-h i
 
M-: (try-completion "(el" 'Info-read-node-name-1)
 
It returns "(elisp)", meaning that this is the common prefix of all
completions of "(el". [This is reasonable, and it satisfies the
requirement that "(el" is a prefix of "(elisp)".]
 
M-: (all-completions "(el" 'Info-read-node-name-1)
 
It returns ("elisp"), meaning that the only valid completion of "(el"
is "elisp". But "elisp" does not have the common prefix "(elisp)" as
determined by `try-completion', and "elisp" does not even have the
input "(el" as a prefix. This is inconsistent.  `all-completions'
should return ("(elisp)") in this case.
 
Lisp code needs to be able to depend on the fact that the valid
completions returned by `all-completions' have the common prefix
that is returned by `try-completion' (which must in turn have the
input as its prefix).

And each of the completions returned by `all-completions' must
also satisfy `test-completion'.  In particular,
(test-completion STRG (all-completions strg TABLE)) must always
return t, for all STRG and TABLE. In this case, for STRG = "(el" and
TABLE = `Info-read-node-name-1', it returns nil.

One should be able to use `all-completions' to construct a cons
completion table that is equivalent to the original TABLE argument,
regardless of how TABLE is defined (e.g. function, obarray).  That
is, when used with the same inputs it should have the same effect,
in particular for `try-completion', `all-completions', and
`test-completion'.

I don't know if this is a bug for Info-read-node-name-1 (or -2) or a
bug for one of the `minibuffer.el' functions that it uses.  The code
is a bit hard to follow.
 

In GNU Emacs 23.0.60.1 (i386-mingw-nt5.1.2600)
 of 2008-10-03 on LENNART-69DE564
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4) --no-opt --cflags -Ic:/g/include
-fno-crossjumping'
 







reply via email to

[Prev in Thread] Current Thread [Next in Thread]