diff lisp/net/ange-ftp.el @ 45459:d9e7dc0ccc84

(ange-ftp-allow-child-lookup): Re-enable since the last patch works around the wu-ftpd misfeature that prompted the disabling of this optimization.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 21 May 2002 23:21:11 +0000
parents 85b978f04df7
children 9eb17953a0f7
line wrap: on
line diff
--- a/lisp/net/ange-ftp.el	Tue May 21 22:22:10 2002 +0000
+++ b/lisp/net/ange-ftp.el	Tue May 21 23:21:11 2002 +0000
@@ -2941,34 +2941,27 @@
 ;; 2. The syntax of FILE and DIR make it impossible that FILE could be a valid
 ;;     subdirectory. This is of course an OS dependent judgement.
 
-;;; Nowadays, the judgement for #2 is always "no".
-;;; With today's ftp servers on Unix and GNU systems,
-;;; it appears to be impossible to tell from the result
-;;; of the directory listing whether the argument is a directory.
-;;; This appears to be true even in Emacs 20.7
-
 (defmacro ange-ftp-allow-child-lookup (dir file)
-  nil)
-;;;   `(not
-;;;     (let* ((efile ,file) ; expand once.
-;;;            (edir ,dir)
-;;;            (parsed (ange-ftp-ftp-name edir))
-;;;            (host-type (ange-ftp-host-type
-;;;                        (car parsed))))
-;;;       (or
-;;;        ;; Deal with dired
-;;;        (and (boundp 'dired-local-variables-file) ; in the dired-x package
-;;;		(stringp dired-local-variables-file)
-;;;		(string-equal dired-local-variables-file efile))
-;;;        ;; No dots in dir names in vms.
-;;;        (and (eq host-type 'vms)
-;;;		(string-match "\\." efile))
-;;;        ;; No subdirs in mts of cms.
-;;;	   (and (memq host-type '(mts cms))
-;;;		(not (string-equal "/" (nth 2 parsed))))
-;;;	   ;; No dots in pseudo-dir names in bs2000.
-;;;	   (and (eq host-type 'bs2000)
-;;;	        (string-match "\\." efile)))))))
+  `(not
+    (let* ((efile ,file)		; expand once.
+           (edir ,dir)
+           (parsed (ange-ftp-ftp-name edir))
+           (host-type (ange-ftp-host-type
+                       (car parsed))))
+      (or
+       ;; Deal with dired
+       (and (boundp 'dired-local-variables-file) ; in the dired-x package
+	    (stringp dired-local-variables-file)
+	    (string-equal dired-local-variables-file efile))
+       ;; No dots in dir names in vms.
+       (and (eq host-type 'vms)
+	    (string-match "\\." efile))
+       ;; No subdirs in mts of cms.
+       (and (memq host-type '(mts cms))
+	    (not (string-equal "/" (nth 2 parsed))))
+       ;; No dots in pseudo-dir names in bs2000.
+       (and (eq host-type 'bs2000)
+	    (string-match "\\." efile))))))
 
 (defun ange-ftp-file-entry-p (name)
   "Given NAME, return whether there is a file entry for it."