]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix Bug#29874
authorMichael Albinus <michael.albinus@gmx.de>
Thu, 28 Dec 2017 10:26:28 +0000 (11:26 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Thu, 28 Dec 2017 10:26:28 +0000 (11:26 +0100)
* lisp/net/ange-ftp.el (ange-ftp-file-accessible-directory-p)
(ange-ftp-real-file-accessible-directory-p): New defuns.
(ange-ftp-nslookup-host, ange-ftp-start-process):
Use `ange-ftp-real-file-accessible-directory-p'.
(file-accessible-directory-p): Put `ange-ftp' property.  (Bug#29874)

lisp/net/ange-ftp.el

index cf65e10e5105d9080ad38654a6ef9f2977d9dd4f..57e4de9cb8df7ccea06333d68f6982c6ced8d35e 100644 (file)
@@ -1873,7 +1873,7 @@ been queued with no result.  CONT will still be called, however."
   (interactive "sHost:  ")
   (if ange-ftp-nslookup-program
       (let ((default-directory
-             (if (file-accessible-directory-p default-directory)
+             (if (ange-ftp-real-file-accessible-directory-p default-directory)
                  default-directory
                exec-directory))
            ;; It would be nice to make process-connection-type nil,
@@ -1916,7 +1916,7 @@ on the gateway machine to do the FTP instead."
         ;; default-directory.
         (file-name-handler-alist)
         (default-directory
-          (if (file-accessible-directory-p default-directory)
+          (if (ange-ftp-real-file-accessible-directory-p default-directory)
               default-directory
             exec-directory))
         proc)
@@ -3404,6 +3404,10 @@ system TYPE.")
          file-ent))
     (ange-ftp-real-file-directory-p name)))
 
+(defun ange-ftp-file-accessible-directory-p (name)
+  (and (file-directory-p name)
+       (file-readable-p name)))
+
 (defun ange-ftp-directory-files (directory &optional full match
                                           &rest v19-args)
   (setq directory (expand-file-name directory))
@@ -4385,6 +4389,8 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
 (put 'directory-files-and-attributes 'ange-ftp
      'ange-ftp-directory-files-and-attributes)
 (put 'file-directory-p 'ange-ftp 'ange-ftp-file-directory-p)
+(put 'file-accessible-directory-p 'ange-ftp
+     'ange-ftp-file-accessible-directory-p)
 (put 'file-writable-p 'ange-ftp 'ange-ftp-file-writable-p)
 (put 'file-readable-p 'ange-ftp 'ange-ftp-file-readable-p)
 (put 'file-executable-p 'ange-ftp 'ange-ftp-file-executable-p)
@@ -4469,6 +4475,8 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
   (ange-ftp-run-real-handler 'directory-files-and-attributes args))
 (defun ange-ftp-real-file-directory-p (&rest args)
   (ange-ftp-run-real-handler 'file-directory-p args))
+(defun ange-ftp-real-file-accessible-directory-p (&rest args)
+  (ange-ftp-run-real-handler 'file-accessible-directory-p args))
 (defun ange-ftp-real-file-writable-p (&rest args)
   (ange-ftp-run-real-handler 'file-writable-p args))
 (defun ange-ftp-real-file-readable-p (&rest args)