Subject: 24.0.93; M-TAB for :type (file :must-match t) in Customize

From: "Drew Adams" <[email-masked]>
Date: Sat, 4 Feb 2012 08:35:55 -0800

(elisp) `Simple Types' says "The value must be a file name
for an existing file, and you can do completion with `M-<TAB>'."

That's vague, but I would expect that the text in the edit field is
somehow completed.  The actual behavior is not described and somewhat
surprising.
 
When I try `M-TAB' in the edit field for a must-match file name, the set
of completion candidates displayed seems to be the file names that match
the text that follows, not precedes, point in the edit field.  And
matching seems to be substring matching rather than prefix matching.
 
Is that really what this is supposed to do?  Why is the text _after_
point "completed" (matched), rather than the text before point?
 
E.g. if the text in the field is "te" and point is on the `t' then I see
substring matches for "te".  If point is after the `e' then I see
matches for _all_ files in the `default-directory' (which hardly
"completes" the text in the edit field - it is apparently completing
the empty string).
 
If this is not the intended behavior, please fix according to what is
intended (whatever that is).
 
Whatever the behavior, please document it.  The doc in the manual is too
vague: "you can do completion with `M-<TAB>'".  It tells you nothing
about what "completion" behavior to expect.  In particular, it should
say what it is that is completed (which text), and it should say what
kind of matching is used - IOW, how the text that is completed is
matched against the names of the existing files.
 
In GNU Emacs 24.0.93.1 (i386-mingw-nt5.1.2600)
 of 2012-01-29 on MARVIN
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.6) --no-opt --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include --ldflags
 -LD:/devel/emacs/libs/gnutls-3.0.9/lib'