GNU bug report logs - #34292
26.1; ido-everywhere interferes with find-file

Previous Next

Package: emacs;

Reported by: Dave Abrahams <dave <at> boostpro.com>

Date: Sat, 2 Feb 2019 20:27:02 UTC

Severity: minor

Tags: fixed, patch

Found in version 26.1

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

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 34292 in the body.
You can then email your comments to 34292 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#34292; Package emacs. (Sat, 02 Feb 2019 20:27:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Dave Abrahams <dave <at> boostpro.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 02 Feb 2019 20:27:02 GMT) Full text and rfc822 format available.

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

From: Dave Abrahams <dave <at> boostpro.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.1; ido-everywhere interferes with find-file
Date: Sat, 2 Feb 2019 12:26:21 -0800
emacs -Q

evaluate the following elisp:

(make-directory "/tmp/foo/bar/baz" t)
(require 'ido)
(ido-everywhere)
(find-file "/tmp/foo/bar/baz")
(call-interactively 'find-file)

Now type DEL C-f RET, which should open "/tmp/foo/bar/"
Instead, nothing happens




In GNU Emacs 26.1 (build 1, x86_64-apple-darwin18.0.0, Carbon Version 158 AppKit 1671)
 of 2018-09-30 built on Fujinami.verizon.net
Repository revision: 8d7e58ce9f389d77323e0237c22c4e13cb68b8e7
Windowing system distributor 'Apple Inc.', version 10.14.4
Recent messages:
Checking 176 files in /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp...
Checking 24 files in /Applications/Emacs.app/Contents/Resources/lisp/cedet...
Checking 57 files in /Applications/Emacs.app/Contents/Resources/lisp/calendar...
Checking 87 files in /Applications/Emacs.app/Contents/Resources/lisp/calc...
Checking 105 files in /Applications/Emacs.app/Contents/Resources/lisp/obsolete...
Checking 23 files in ~/.emacs.d/site-lisp/non-GPL3...
Checking 31 files in ~/.emacs.d/elhome/settings...
Checking 1 files in /Users/dave/src/a/amber/Aux...
Checking for load-path shadows...done
Making completion list...

Configured using:
 'configure --with-mac '--enable-locallisppath=/Library/Application
 Support/Emacs/#{version}/site-lisp:/Library/Application
 Support/Emacs/site-lisp' --with-modules
 --enable-mac-app=/Users/xin/Factory/emacs/macos-build/emacs-source/mac_out
 --prefix=/Users/xin/Factory/emacs/macos-build/emacs-source/mac_tree'
Configured features:
NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS
Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Dired by name

Minor modes in effect:
  gnus-dired-mode: t
  flx-ido-mode: t
  global-magit-file-mode: t
  diff-auto-refine-mode: t
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  me-minor-mode: t
  winner-mode: t
  which-function-mode: t
  show-paren-mode: t
  shell-command-with-editor-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  server-mode: t
  minibuffer-depth-indicate-mode: t
  ido-everywhere: t
  global-auto-revert-mode: t
  delete-selection-mode: t
  auto-insert-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  mac-mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/Applications/Emacs.app/Contents/Resources/lisp/progmodes/compile hides ~/.emacs.d/site-lisp/non-GPL3/compile

Features:
(pp shadow sort mail-extr emacsbug sendmail gnus-dired
amber-project-settings skeleton cc-styles cc-align cc-engine cc-vars
cc-defs map eieio-opt speedbar sb-image ezimage dframe help-fns
radix-tree jka-compr hl-line checkdoc flymake-proc flymake compile
warnings whitespace fill-column-indicator modal flx-ido flx elec-pair
magit-submodule magit-obsolete magit-blame magit-stash magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode
diff-mode magit-core magit-autorevert magit-process magit-margin
magit-mode git-commit magit-git magit-section magit-utils magit-popup
crm log-edit eudc eudc-vars message rmc puny format-spec rfc822 mml
mml-sec epa derived epg gnus-util rmail rmail-loaddefs mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
pcvs-util add-log dash cus-edit+ cl page-ext ffap thingatpt
system-type-darwin-theme disp-table dired-x dired dired-loaddefs winner
which-func imenu paren with-editor async-bytecomp async shell pcomplete
comint ansi-color ring server mb-depth ido autorevert filenotify time
battery delsel autoinsert edmacro kmacro cl-extra help-mode initsplit
cus-edit cus-start cus-load wid-edit find-func elhome use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key use-package-core bind-key easy-mmode finder-inf
gh-common marshal eieio-compat info advice package easymenu epg-config
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib mule-util time-date tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
term/mac-win mac-win term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote kqueue multi-tty make-network-process emacs)

Memory information:
((conses 16 368790 14274)
 (symbols 48 38218 0)
 (miscs 40 189 317)
 (strings 32 122076 4001)
 (string-bytes 1 3649794)
 (vectors 16 37777)
 (vector-slots 8 870889 18440)
 (floats 8 198 415)
 (intervals 56 520 0)
 (buffers 992 23))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#34292; Package emacs. (Mon, 01 Apr 2019 23:38:01 GMT) Full text and rfc822 format available.

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

From: Noam Postavsky <npostavs <at> gmail.com>
To: Dave Abrahams <dave <at> boostpro.com>
Cc: 34292 <at> debbugs.gnu.org
Subject: Re: bug#34292: 26.1; ido-everywhere interferes with find-file
Date: Mon, 01 Apr 2019 19:37:10 -0400
severity 34292 minor
quit

Dave Abrahams <dave <at> boostpro.com> writes:

> emacs -Q
>
> evaluate the following elisp:
>
> (make-directory "/tmp/foo/bar/baz" t)
> (require 'ido)
> (ido-everywhere)
> (find-file "/tmp/foo/bar/baz")
> (call-interactively 'find-file)
>
> Now type DEL C-f RET, which should open "/tmp/foo/bar/"
> Instead, nothing happens

So are you looking for something like this?

diff --git i/lisp/ido.el w/lisp/ido.el
index f9a9607a3a..6dcd5bcd99 100644
--- i/lisp/ido.el
+++ w/lisp/ido.el
@@ -1588,6 +1588,8 @@ (define-minor-mode ido-everywhere
   (remove-function read-file-name-function #'ido-read-file-name)
   (remove-function read-buffer-function #'ido-read-buffer)
   (when ido-everywhere
+    (unless ido-mode
+      (error "Can't turn on `ido-everywhere' without `ido-mode'"))
     (add-function :override read-file-name-function #'ido-read-file-name)
     (add-function :override read-buffer-function #'ido-read-buffer)))





Severity set to 'minor' from 'normal' Request was from Noam Postavsky <npostavs <at> gmail.com> to control <at> debbugs.gnu.org. (Mon, 01 Apr 2019 23:38:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#34292; Package emacs. (Tue, 02 Apr 2019 23:59:02 GMT) Full text and rfc822 format available.

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

From: Noam Postavsky <npostavs <at> gmail.com>
To: 34292 <at> debbugs.gnu.org
Cc: Dave Abrahams <dave <at> boostpro.com>
Subject: Re: bug#34292: 26.1; ido-everywhere interferes with find-file
Date: Tue, 02 Apr 2019 19:58:16 -0400
[Message part 1 (text/plain, inline)]
[forwarding to list, please use "Reply All" to keep 34292 <at> debbugs.gnu.org on Cc]

[Message part 2 (message/rfc822, inline)]
From: Dave Abrahams <dave <at> boostpro.com>
To: Noam Postavsky <npostavs <at> gmail.com>
Subject: Re: bug#34292: 26.1; ido-everywhere interferes with find-file
Date: Tue, 2 Apr 2019 14:00:33 -0700
Sorry, I don't know enough about ido's implementation to tell whether that's what I'm looking for.  It seems strange that this code should affect my use-case, since I must *have* ido-mode; even with emacs -Q, (require 'ido) succeeds.

> On Apr 1, 2019, at 4:37 PM, Noam Postavsky <npostavs <at> gmail.com> wrote:
> So are you looking for something like this?
> 
> diff --git i/lisp/ido.el w/lisp/ido.el
> index f9a9607a3a..6dcd5bcd99 100644
> --- i/lisp/ido.el
> +++ w/lisp/ido.el
> @@ -1588,6 +1588,8 @@ (define-minor-mode ido-everywhere
>   (remove-function read-file-name-function #'ido-read-file-name)
>   (remove-function read-buffer-function #'ido-read-buffer)
>   (when ido-everywhere
> +    (unless ido-mode
> +      (error "Can't turn on `ido-everywhere' without `ido-mode'"))
>     (add-function :override read-file-name-function #'ido-read-file-name)
>     (add-function :override read-buffer-function #'ido-read-buffer)))
> 


Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#34292; Package emacs. (Wed, 03 Apr 2019 00:03:01 GMT) Full text and rfc822 format available.

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

From: Noam Postavsky <npostavs <at> gmail.com>
To: 34292 <at> debbugs.gnu.org
Cc: Dave Abrahams <dave <at> boostpro.com>
Subject: Re: bug#34292: 26.1; ido-everywhere interferes with find-file
Date: Tue, 02 Apr 2019 20:01:55 -0400
> From: Dave Abrahams <dave <at> boostpro.com>

> Sorry, I don't know enough about ido's implementation to tell whether
> that's what I'm looking for.  It seems strange that this code should
> affect my use-case, since I must *have* ido-mode; even with emacs -Q,
> (require 'ido) succeeds.

As far as I can tell, the problem is simply that starting ido-everywhere
without also starting ido-mode breaks things.  Hence my suggestion to
signal an error when you try to do that.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#34292; Package emacs. (Wed, 03 Apr 2019 23:38:01 GMT) Full text and rfc822 format available.

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

From: Dave Abrahams <dave <at> boostpro.com>
To: Noam Postavsky <npostavs <at> gmail.com>
Cc: 34292 <at> debbugs.gnu.org
Subject: Re: bug#34292: 26.1; ido-everywhere interferes with find-file
Date: Wed, 3 Apr 2019 16:37:21 -0700
shouldn't starting ido-everywhere turn on ido-mode automatically, then?

> On Apr 2, 2019, at 5:01 PM, Noam Postavsky <npostavs <at> gmail.com> wrote:
> 
>> From: Dave Abrahams <dave <at> boostpro.com>
> 
>> Sorry, I don't know enough about ido's implementation to tell whether
>> that's what I'm looking for.  It seems strange that this code should
>> affect my use-case, since I must *have* ido-mode; even with emacs -Q,
>> (require 'ido) succeeds.
> 
> As far as I can tell, the problem is simply that starting ido-everywhere
> without also starting ido-mode breaks things.  Hence my suggestion to
> signal an error when you try to do that.
> 





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#34292; Package emacs. (Thu, 04 Apr 2019 00:50:01 GMT) Full text and rfc822 format available.

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

From: Noam Postavsky <npostavs <at> gmail.com>
To: Dave Abrahams <dave <at> boostpro.com>
Cc: 34292 <at> debbugs.gnu.org
Subject: Re: bug#34292: 26.1; ido-everywhere interferes with find-file
Date: Wed, 03 Apr 2019 20:49:48 -0400
[Message part 1 (text/plain, inline)]
Dave Abrahams <dave <at> boostpro.com> writes:

> shouldn't starting ido-everywhere turn on ido-mode automatically, then?

Seems doable, does this work for you?

[0001-Let-ido-everywhere-turn-on-ido-mode-Bug-34292.patch (text/x-diff, inline)]
From a21e8afe70b0f8fef692d235dc85995c01ca4e7a Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs <at> users.sourceforge.net>
Date: Wed, 3 Apr 2019 20:13:05 -0400
Subject: [PATCH] Let ido-everywhere turn on ido-mode (Bug#34292)

* lisp/ido.el (ido-everywhere): Turn on ido-mode, if it's not already
on.  Otherwise, having ido-everywhere enabled messes all file and
buffer reading interactive commands.
---
 lisp/ido.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lisp/ido.el b/lisp/ido.el
index 0854014581..a89f7b0eaa 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1586,8 +1586,10 @@ (define-minor-mode ido-everywhere
   (remove-function read-file-name-function #'ido-read-file-name)
   (remove-function read-buffer-function #'ido-read-buffer)
   (when ido-everywhere
-    (add-function :override read-file-name-function #'ido-read-file-name)
-    (add-function :override read-buffer-function #'ido-read-buffer)))
+    (if (not ido-mode)
+        (ido-mode 'both)
+      (add-function :override read-file-name-function #'ido-read-file-name)
+      (add-function :override read-buffer-function #'ido-read-buffer))))
 
 (defvar ido-minor-mode-map-entry nil)
 
-- 
2.11.0

[Message part 3 (text/plain, inline)]
(it seems to be working for me now, though I had a transient failure the
first time where it refused to open bar, even though ido seemed to be
functioning correctly.  Maybe a caching thing?)

Added tag(s) patch. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Thu, 13 Aug 2020 11:38:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#34292; Package emacs. (Wed, 19 Aug 2020 10:51:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Noam Postavsky <npostavs <at> gmail.com>
Cc: Dave Abrahams <dave <at> boostpro.com>, 34292 <at> debbugs.gnu.org
Subject: Re: bug#34292: 26.1; ido-everywhere interferes with find-file
Date: Wed, 19 Aug 2020 12:49:56 +0200
Noam Postavsky <npostavs <at> gmail.com> writes:

> Dave Abrahams <dave <at> boostpro.com> writes:
>
>> shouldn't starting ido-everywhere turn on ido-mode automatically, then?
>
> Seems doable, does this work for you?
>
>>From a21e8afe70b0f8fef692d235dc85995c01ca4e7a Mon Sep 17 00:00:00 2001
> From: Noam Postavsky <npostavs <at> users.sourceforge.net>
> Date: Wed, 3 Apr 2019 20:13:05 -0400
> Subject: [PATCH] Let ido-everywhere turn on ido-mode (Bug#34292)
>
> * lisp/ido.el (ido-everywhere): Turn on ido-mode, if it's not already
> on.  Otherwise, having ido-everywhere enabled messes all file and
> buffer reading interactive commands.

This was a year ago, but the patch was never applied.  It seems like a
reasonable thing for ido-everywhere to do, so I've applied Noam's patch
to Emacs 28 now.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) fixed. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Wed, 19 Aug 2020 10:51:02 GMT) Full text and rfc822 format available.

bug marked as fixed in version 28.1, send any further explanations to 34292 <at> debbugs.gnu.org and Dave Abrahams <dave <at> boostpro.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Wed, 19 Aug 2020 10:51: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. (Wed, 16 Sep 2020 11:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 194 days ago.

Previous Next


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