Subject: bug#14030: 24.3; expand-file-name expands remote file name on Windows incorrectly

From: Michael Albinus <[email-masked]>
Date: Sat, 23 Mar 2013 22:37:48 +0100

Eli Zaretskii <[email-masked]> writes:

>> From: Michael Albinus <[email-masked]>
>> Cc: Vida Gábor <[email-masked]>,
>>   [email-masked]
>> Date: Sat, 23 Mar 2013 13:13:37 +0100
>> 
>> This is competely strange. In `tramp-sh-handle-expand-file-name', there
>> is the following code at the very end:
>> 
>>       (let ((directory-sep-char ?/)
>> 	    (default-directory (tramp-compat-temporary-file-directory)))
>> 	(tramp-make-tramp-file-name
>> 	 method user host
>> 	 (tramp-drop-volume-letter
>> 	  (tramp-run-real-handler
>> 	   'expand-file-name (list localname)))
>> 	 hop)))))
>> 
>> In Emacs 24.3, `tramp-drop-volume-letter' is not executed:
>> 
>> | | | | 5 -> tramp-run-real-handler: operation=expand-file-name
>> | | | | args=("/root/")
>> | | | | 5 <- tramp-run-real-handler: "c:/root/"
>> | | | | 5 -> tramp-make-tramp-file-name: method="plink" user=nil
>> | | | | host="ford" localname="c:/root/" hop=nil
>> | | | | 5 <- tramp-make-tramp-file-name: "/plink:ford:c:/root/"
>> 
>> When I use Emacs 24.3.50, the latest snapshot, that function is
>> executed:
>> 
>> | | | | 5 -> (tramp-run-real-handler expand-file-name ("/root/"))
>> | | | | 5 <- tramp-run-real-handler: "c:/root/"
>> | | | | 5 -> (tramp-drop-volume-letter "c:/root/")
>> | | | | 5 <- tramp-drop-volume-letter: "/root/"
>> | | | | 5 -> (tramp-make-tramp-file-name "plink" nil "ford" "/root/" nil)
>> | | | | 5 <- tramp-make-tramp-file-name: "/plink:ford:/root/"
>> 
>> I have no idea, what prevents `tramp-drop-volume-letter' to be called.
>
> Since tramp-drop-volume-letter is not a function, it's a defalias, so
> maybe it somehow doesn't get registered in the trace?

But it is visible in the traces of Emacs 24.3.50.

> Or maybe it somehow takes the 'identity route?

No.

(tramp-drop-volume-letter "c:/root/")
  => "/root/"

Best regards, Michael.