Subject: Re: bug#5303: 23.1.91; Cannot load .emacs-history from savehist.el

From: Lennart Borgman <[email-masked]>
Date: Sun, 17 Jan 2010 20:46:13 +0100

On Sun, Jan 17, 2010 at 6:18 PM, Michael Albinus <[email-masked]> wrote:
> Lennart Borgman <[email-masked]> writes:
>
>> That sounds very nice, but why do you need a w32 machine? The file
>> name regexp above simply matches a file at the top of a w32 drive.
>> They look like (in Emacs file syntax) like "c:/file.txt". What more do
>> you need to know?
>
> Tramp has a mechanism which detects, whether it is in "completion mode",
> or not. Completion mode means, that user name or host name shall be
> expanded, and the remote file name is not completed yet.
>
> It looks, like something is broken here. And I suspect, this is special
> on W32.

Yes, it is broken and it has been so for very long time. I just have
not understood before that it was in the special case with a file in
the root of a w32 drive.

However I wonder why those files at all are interesting for tramp. I
know little about tramp, but does not remote file names always start
with something like "/ssh:", "/ftp:", "/telnet:" etc?

If so why look for file names starting with "c:/"?

And why does this file handler at all jump in during `load'? Shouldn't
tramp-completion-file-name-handler just come in during completion? It
should be invoked when the operations are file-name-completion or
file-name-all-completion (see
tramp-completion-file-name-handler-alist), but are these operations
used during `load'?

A note: tramp-completion-file-name-regexp-unified is built from

;;;###autoload
(defconst tramp-root-regexp
  (if (memq system-type '(cygwin windows-nt))
      "\\`\\([a-zA-Z]:\\)?/"
    "\\`/")
  "Beginning of an incomplete Tramp file name.
Usually, it is just \"\\\\`/\".  On W32 systems, there might be a
volume letter, which will be removed by `tramp-drop-volume-letter'.")

> Maybe I find a kind colleague tomorrow, who let's her machine for me for
> an hour or so.
>