emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#48782: closed (28.0.50; fido-mode: shell variables distort find-file


From: GNU bug Tracking System
Subject: bug#48782: closed (28.0.50; fido-mode: shell variables distort find-file behaviour)
Date: Sat, 05 Jun 2021 20:52:02 +0000

Your message dated Sat, 05 Jun 2021 21:51:39 +0100
with message-id <87k0n8vxus.fsf@gmail.com>
and subject line Re: bug#48782: 28.0.50; fido-mode: shell variables distort 
find-file behaviour
has caused the debbugs.gnu.org bug report #48782,
regarding 28.0.50; fido-mode: shell variables distort find-file behaviour
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
48782: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=48782
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: 28.0.50; fido-mode: shell variables distort find-file behaviour Date: Tue, 1 Jun 2021 18:29:17 +0100 (BST)
with emacs -Q

1) 
M-x -> fido-mode
C-x C-f -> type "$HOME" -> enter opens dired buffer in $HOME directory
instead of continuing find-file $HOME to select a file to open

2)
similar thing happens if:
M-x -> fido-mode
C-x C-f -> type "$HOME/.emacs.d" -> enter opens dired buffer in $HOME/emacs.d 
directory
instead of continuing find-file $HOME/emacs.d to select a file to open

in pure icomplete-mode find-file seems to work as expected after typing 
"$HOME/" 
-> descent into directories via C-M-i?

ido-mode will not match environment variables but when typing

M-x -> ido-mode
C-x C-f -> type "$HOME/" -> ido expands $HOME to the actuall path and
find-file continues as expected

ido.el has

(defun ido-complete ()
  "Try and complete the current pattern amongst the file names."
  (interactive)
  (let (res)
    (cond
     (ido-incomplete-regexp
      ;; Do nothing
      )
     ((and (memq ido-cur-item '(file dir))
           (string-match "[$]" ido-text))
      (let ((evar (substitute-in-file-name (concat ido-current-directory 
ido-text))))
        (if (not (file-exists-p (file-name-directory evar)))
            (message "Expansion generates non-existing directory name")
          (if (file-directory-p evar)
              (ido-set-current-directory evar)
            (let ((d (or (file-name-directory evar) "/"))
                  (f (file-name-nondirectory evar)))
              (when (file-directory-p d)
                  (ido-set-current-directory d)
                  (setq ido-text-init f))))
          (setq ido-exit 'refresh)
          (exit-minibuffer))))

This was tested in emacs 28 but also 27

In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.4.0, NS appkit-2022.44 
Version 11.3.1 (Build 20E241))
 of 2021-05-20 built on Zwei.local
Windowing system distributor 'Apple', version 10.3.2022
System Description:  macOS 11.4

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs-plus@28/28.0.50/share/info/emacs
 --prefix=/usr/local/Cellar/emacs-plus@28/28.0.50 --with-xml2
 --with-gnutls --with-native-compilation --without-dbus
 --with-imagemagick --with-modules --with-rsvg --with-ns
 --disable-ns-self-contained 'CFLAGS=-I/usr/local/opt/gcc/include
 -I/usr/local/opt/libgccjit/include -I/usr/local/opt/gmp/include
 -I/usr/local/opt/jpeg/include' 'LDFLAGS=-L/usr/local/lib/gcc/11
 -I/usr/local/opt/gcc/include -I/usr/local/opt/libgccjit/include
 -I/usr/local/opt/gmp/include -I/usr/local/opt/jpeg/include''

Configured features:
ACL GIF GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES
NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF
TOOLKIT_SCROLL_BARS XIM ZLIB

Important settings:
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail
rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/ns-win ns-win ucs-normalize mule-util
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 tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer 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 cl-preloaded nadvice button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads kqueue cocoa ns lcms2
multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 67326 7749)
 (symbols 48 6525 0)
 (strings 32 18694 1859)
 (string-bytes 1 645296)
 (vectors 16 13385)
 (vector-slots 8 280235 8834)
 (floats 8 22 29)
 (intervals 56 226 0)
 (buffers 992 10))



--- End Message ---
--- Begin Message --- Subject: Re: bug#48782: 28.0.50; fido-mode: shell variables distort find-file behaviour Date: Sat, 05 Jun 2021 21:51:39 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
João Távora <joaotavora@gmail.com> writes:

> tag 48782 important
> thanks
>
> simon254--- via "Bug reports for GNU Emacs, the Swiss army knife of text
> editors" <bug-gnu-emacs@gnu.org> writes:
>
>> with emacs -Q
>>
>> 1) 
>> M-x -> fido-mode
>> C-x C-f -> type "$HOME" -> enter opens dired buffer in $HOME directory
>> instead of continuing find-file $HOME to select a file to open
>
> Thanks, I reproduced this and will try to fix it.  Doesn't seem very
> hard, but we'll see.

I pushed a commit to master that should fix it. It's
45d711a356b4c5e75d0b6e4391313ca34f57b4bb, a very simple patch:

diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 03a191cb0b..08b4ef2030 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -331,7 +331,8 @@ icomplete-fido-ret
                    (file-name-directory (icomplete--field-string))))
          (current (car completion-all-sorted-completions))
          (probe (and dir current
-                     (expand-file-name (directory-file-name current) dir))))
+                     (expand-file-name (directory-file-name current)
+                                       (substitute-env-vars dir)))))
     (cond ((and probe (file-directory-p probe) (not (string= current "./")))
            (icomplete-force-complete))
           (t


Closing this bug, but I'll reopen if it ends up not doing what you
wanted.

João


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]