GNU bug report logs - #11755
24.1.50; regression: invalid function - file name completion

Previous Next

Package: emacs;

Reported by: "Drew Adams" <drew.adams <at> oracle.com>

Date: Wed, 20 Jun 2012 20:49:01 UTC

Severity: normal

Found in version 24.1.50

Done: "Drew Adams" <drew.adams <at> oracle.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 11755 in the body.
You can then email your comments to 11755 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#11755; Package emacs. (Wed, 20 Jun 2012 20:49:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Drew Adams" <drew.adams <at> oracle.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 20 Jun 2012 20:49:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "Drew Adams" <drew.adams <at> oracle.com>
To: <bug-gnu-emacs <at> gnu.org>
Subject: 24.1.50; regression: invalid function - file name completion
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 michael.albinus <at> 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'
 





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#11755; Package emacs. (Thu, 21 Jun 2012 16:34:02 GMT) Full text and rfc822 format available.

Message #8 received at 11755 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: "Drew Adams" <drew.adams <at> oracle.com>
Cc: 11755 <at> debbugs.gnu.org
Subject: Re: bug#11755: 24.1.50;
	regression: invalid function - file name completion
Date: Thu, 21 Jun 2012 12:29:34 -0400
> (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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#11755; Package emacs. (Thu, 21 Jun 2012 16:50:01 GMT) Full text and rfc822 format available.

Message #11 received at 11755 <at> debbugs.gnu.org (full text, mbox):

From: "Drew Adams" <drew.adams <at> oracle.com>
To: "'Stefan Monnier'" <monnier <at> iro.umontreal.ca>
Cc: 11755 <at> debbugs.gnu.org
Subject: RE: bug#11755: 24.1.50;
	regression: invalid function - file name completion
Date: Thu, 21 Jun 2012 09:45:54 -0700
> > (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.





bug closed, send any further explanations to 11755 <at> debbugs.gnu.org and "Drew Adams" <drew.adams <at> oracle.com> Request was from "Drew Adams" <drew.adams <at> oracle.com> to control <at> debbugs.gnu.org. (Thu, 21 Jun 2012 16:55:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 20 Jul 2012 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 13 years and 28 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.