Subject: bug#11755: 24.1.50; regression: invalid function - file name completion

From: "Drew Adams" <[email-masked]>
Date: Wed, 20 Jun 2012 13:44:27 -0700

I traced this in the debugger in Emacs 24.1, where there is no problem,
and in this build.  
 
The starting point to see the difference is this:
 
(try-completion "c:/foo" 'read-file-name-internal "c:/foobar/")
 
In both versions that leads to:
 
(read-file-name-internal "c:/foo" "c:/foobar/" nil)
 
which leads eventually to this difference:
 
Emacs 24.1:
(file-name-completion "foo" "c:/" nil) ; returns "c:/foobar/"
 
Emacs 24.1.50, 2012-06-18:
(file-name-completion "foo" "c:/" "c:/foobar/") ; signals an error
 
Evaluating that sexp leads to this invalid evaluation (this is the
debugger line), which tries to apply the directory string as if it
were a function:
 
* "c:/foobar/"("foobar/")
 
This breaks, for example, Icicles highlighting of the mismatched portion
of minibuffer input.  For that, I proceed via bifurcation to match larger
prefixes of the input string until I find where the mismatch first
starts (leftmost mismatch position).
 
The test now fails (I do it in a condition-case that returns nil for an
error) for even a slight prefix such as c:/foo, so _all_ of the input is
always highlighted (for file-name completion).

In GNU Emacs 24.1.50.1 (i386-mingw-nt5.1.2600)
 of 2012-06-18 on MARVIN
Bzr revision: 108646 [email-masked]
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.6) --no-opt --enable-checking --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
 -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
 -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'