GNU bug report logs -
#50387
Possible bug in Tramp or in completions
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#50387: Possible bug in Tramp or in completions
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 50387 <at> debbugs.gnu.org.
--
50387: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=50387
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
>>> That means, "scp:" hasn't been passed to
>>> tramp-completion-handle-file-name-all-completions, and the result of
>>> that function looks proper to me.
>>
>> Yet it isn't.
>
> Why not? In this example, `completion-styles' contains `substring'. And
> then you ask for completion of "/scp:". Looking at the candidates
> returned by `tramp-completion-handle-file-name-all-completions', only
> "pscp:" and "scp:" have the substring "scp:".
>
Because after typing "/s" or "/sc" or "/scp" it makes sense to see that
"/scp:" is among the completion candidates, but after typing "/scp:" it
doesn't make sense anymore, the method has already been entered by the
user, what they now want to see is a list of hosts, and there is no way to
see it.
>> - before your attempt to fix the problem, C-x C-f / TAB only displayed
>> "scp:" and "scpx:" among the completion candidates (or e.g. "ssh:",
>> "sshfs:" and "sshx:" with tramp-default-method set to "ssh");
>
> Yes, this is changed.
>
>> - now C-x C-f / TAB displays all Tramp methods;
>
> When Tramp is loaded. I regard this to be correct.
>
>> - with my patch, which actually fixes the bug, C-x C-f / TAB does not
>> display any Tramp method, as it should.
>
> Again, C-x C-f / TAB displays a Tramp method only when Tramp is loaded.
>
I filed a bug report, explained in every detail what the bug is, provided
a patch, and the end result is a situation that is worse than earlier. I
expect other bug reports from confused users, and hope that you'll change
your mind.
Closing.
[Message part 3 (message/rfc822, inline)]
With a ~/.ssh/config file containing two entries:
Host foo
...
Host bar
...
emacs -Q
M-: (setq tramp-default-method "ssh")
M-: (add-to-list 'completion-styles 'substring)
C-x C-x /ssh: TAB
displays "Sole completion". If, instead of having completion-styles set
to:
(substring basic partial-completion emacs22)
it is set to:
(basic substring partial-completion emacs22)
then two completion candidates are shown (as expected): "ssh:foo:" and
"ssh:bar:".
This happens because the "substring" completion mechanism is tried first
by completion--some in completion--nth-completion, and returns (t .
substring), because
(completion-substring-try-completion "/ssh:" #'completion-file-name-table
#'file-exists-p 5)
returns t, because
(completion-substring--all-completions "/ssh:"
#'completion-file-name-table #'file-exists-p 5) returns (("ssh:")
returns (prefix "ssh:") "/" "" 1), because
(completion-boundaries "/ssh:" #'completion-file-name-table
#'file-exists-p "")
returns (1 . 0).
When the "basic" completion mechanism is tried first,
(completion-basic-try-completion "/ssh:" #'completion-file-name-table
#'file-exists-p 5)
returns ("/ssh:" . 5).
It is not clear to me whether this is a bug (I always thought that the
order of completion mechanisms in completion-styles did not matter, and in
this case it does indeed make no difference with (setq
tramp-default-method "scp")), and if so if it is a bug in Tramp, or in the
completion functions.
This bug report was last modified 3 years and 258 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.