Subject: bug#2410: 23.0.90; tramp: spurious ftp-error

From: Chong Yidong <[email-masked]>
Date: Sun, 22 Feb 2009 13:19:06 -0500

Juri Linkov <[email-masked]> writes:

>> I can reproduce it. It can be narrowed down to 2009-02-11 change:
>>
>> 	* dired-aux.el (dired-add-entry): Avoid munging long-form Dired
>> 	switches (Bug#2261).
>
> It conflicts with code that removes the final "d" from switches
> in `ange-ftp-insert-directory'.

Does this fix it?

*** trunk/lisp/net/ange-ftp.el.~1.102.~	2009-01-06 15:29:22.000000000 -0500
--- trunk/lisp/net/ange-ftp.el	2009-02-22 13:16:25.000000000 -0500
***************
*** 4478,4484 ****
         ;; then do an ls of current dir, which obviously won't work if we
         ;; want to ls a file.  So instead, we get a full listing of the
         ;; parent directory and extract the line corresponding to `file'.
!        (when (string-match "d\\'" switches)
           ;; Remove "d" which dired added to `switches'.
           (setq switches (substring switches 0 (match-beginning 0))))
         (let* ((dirlist (ange-ftp-ls (or (file-name-directory file) ".")
--- 4478,4484 ----
         ;; then do an ls of current dir, which obviously won't work if we
         ;; want to ls a file.  So instead, we get a full listing of the
         ;; parent directory and extract the line corresponding to `file'.
!        (when (string-match "-?d\\'" switches)
           ;; Remove "d" which dired added to `switches'.
           (setq switches (substring switches 0 (match-beginning 0))))
         (let* ((dirlist (ange-ftp-ls (or (file-name-directory file) ".")