From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: 9793@debbugs.gnu.org, Thierry Volpiatto <thierry.volpiatto@gmail.com>
Subject: bug#9793: 24.0.90; Unwanted tramp connection on eshell completion.
Date: Tue, 25 Oct 2011 08:16:31 -0400 [thread overview]
Message-ID: <jwvr521z30o.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87fwihgxqa.fsf@gmx.de> (Michael Albinus's message of "Tue, 25 Oct 2011 12:41:01 +0200")
> Tramp has some code to guess whether it is in completion mode.
Yuck!
> Check of `non-essential' is one proof,
Actually, no. non-essential could be used for other things than completion.
> checking the last keyboard input (being TAB, or not) is another one.
Yuck!
> If Tramp finds out that it is in completion mode, it suppresses some
> remote actions, like expand-file-name. Since your code
> (let ((default-directory "/")) (file-directory-p "tequila:"))
> does not show an evidence of the completion mode, all remote actions are
> performed.
OK, so now I know why the two behaved differently.
> The actions for `file-directory-p' are never been suppressed, that's why
> Tramp performs them also when being in completion mode.
Good.
>> In shell-mode completion also understands Tramp file names (yup, that's
>> a bug, we should probably default comint-file-name-prefix to "/:/"), so
>> that's not the problem.
> Better not. There are still needed checks in shell.el, which are applied
> to remote files. `comint-file-name-prefix keeps the remote part of those
> files.
I do not propose to remove the variable. Only to make it default to
"/:/" (instead of just "").
>>> But this makes the trouble with the completion predicate
>>> `file-directory-p'.
>> Yup, I think we should somehow make it so Tramp can say
>> (file-directory-p "/tequila:") => t
>> without trying to connect to tequila (after all, even if we can't
>> connect to tequila, this is still a "directory", just one we currently
>> can't access).
> That was the intention of my patch :-)
> Return t in case of remote files.
But that's not what I suggest. I suggest to "blindly" return t for
/<host>: only (as well as things like /ssh:<host>: I guess), but not for
/<host>:<path> where we'd still connect and test whether it's indeed
a directory.
> Inside Tramp it could be behave such a way when it detects it is in
> completion mode. That means, when `non-essential' is set to t. Shall I
> do it this way?
I suggest to do that regardless of whether we're in completion mode
or not.
Stefan
next prev parent reply other threads:[~2011-10-25 12:16 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-19 4:53 bug#9793: 24.0.90; Unwanted tramp connection on eshell completion Thierry Volpiatto
2011-10-20 2:31 ` Stefan Monnier
2011-10-20 18:46 ` Thierry Volpiatto
2011-10-20 20:43 ` Stefan Monnier
2011-10-20 21:17 ` Thierry Volpiatto
2011-10-22 9:39 ` Michael Albinus
2011-10-22 10:39 ` Thierry Volpiatto
2011-10-23 17:47 ` Stefan Monnier
2011-10-24 12:25 ` Michael Albinus
2011-10-24 14:20 ` Stefan Monnier
2011-10-25 10:41 ` Michael Albinus
2011-10-25 12:16 ` Stefan Monnier [this message]
2011-10-25 12:56 ` Michael Albinus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvr521z30o.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=9793@debbugs.gnu.org \
--cc=michael.albinus@gmx.de \
--cc=thierry.volpiatto@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).