* bug#11755: 24.1.50; regression: invalid function - file name completion
@ 2012-06-20 20:44 Drew Adams
2012-06-21 16:29 ` Stefan Monnier
0 siblings, 1 reply; 3+ messages in thread
From: Drew Adams @ 2012-06-20 20:44 UTC (permalink / raw)
To: 11755
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 michael.albinus@gmx.de-20120617185439-jfcgwwbr97nbflkz
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'
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#11755: 24.1.50; regression: invalid function - file name completion
2012-06-20 20:44 bug#11755: 24.1.50; regression: invalid function - file name completion Drew Adams
@ 2012-06-21 16:29 ` Stefan Monnier
2012-06-21 16:45 ` Drew Adams
0 siblings, 1 reply; 3+ messages in thread
From: Stefan Monnier @ 2012-06-21 16:29 UTC (permalink / raw)
To: Drew Adams; +Cc: 11755
> (try-completion "c:/foo" 'read-file-name-internal "c:/foobar/")
> (file-name-completion "foo" "c:/" "c:/foobar/") ; signals an error
Because the third argument to those functions should be a PREDicate, not
a string. Emacs-23 and Emacs-24.1 still accepted the old hack of
passing the PWD in this predicate argument, but not 24.2.
Please fix Icicles accordingly.
Stefan
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#11755: 24.1.50; regression: invalid function - file name completion
2012-06-21 16:29 ` Stefan Monnier
@ 2012-06-21 16:45 ` Drew Adams
0 siblings, 0 replies; 3+ messages in thread
From: Drew Adams @ 2012-06-21 16:45 UTC (permalink / raw)
To: 'Stefan Monnier'; +Cc: 11755
> > (try-completion "c:/foo" 'read-file-name-internal "c:/foobar/")
> > (file-name-completion "foo" "c:/" "c:/foobar/") ; signals an error
>
> Because the third argument to those functions should be a
> PREDicate, not a string. Emacs-23 and Emacs-24.1 still
> accepted the old hack of passing the PWD in this predicate
> argument, but not 24.2. Please fix Icicles accordingly.
Ah yes. I had changed the arg everywhere else, to:
(if (< emacs-major-version 23)
default-directory
minibuffer-completion-predicate)
Missed that occurrence. Thx.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-06-21 16:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-20 20:44 bug#11755: 24.1.50; regression: invalid function - file name completion Drew Adams
2012-06-21 16:29 ` Stefan Monnier
2012-06-21 16:45 ` Drew Adams
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).