+2003-04-08 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+
+ * net/tramp.el: Version 2.0.33 released.
+ Change coding cookie to `iso-2022-7bit' for XEmacs
+ compatibility. (From Steve Youngs <youngs@xemacs.org>.)
+
+2003-04-08 Michael Albinus <Michael.Albinus@alcatel.de>
+
+ * net/tramp-ftp.el (tramp-ftp-file-name-handler):
+ Do not disable file name handlers for `file-exists-p' and
+ `file-directory-p'.
+
2003-04-08 Kenichi Handa <handa@etlken2>
* international/mule-conf.el: Register ?\225 in
(save-match-data
(or (boundp 'ange-ftp-name-format)
(require 'ange-ftp))
- (let* ((ange-ftp-name-format
- (list (nth 0 tramp-file-name-structure)
- (nth 3 tramp-file-name-structure)
- (nth 2 tramp-file-name-structure)
- (nth 4 tramp-file-name-structure)))
- (inhibit-file-name-handlers
- (list 'tramp-file-name-handler
- 'tramp-completion-file-name-handler
- (and (eq inhibit-file-name-operation operation)
- inhibit-file-name-handlers)))
- (inhibit-file-name-operation operation))
- (apply 'ange-ftp-hook-function operation args))))
+ (let ((ange-ftp-name-format
+ (list (nth 0 tramp-file-name-structure)
+ (nth 3 tramp-file-name-structure)
+ (nth 2 tramp-file-name-structure)
+ (nth 4 tramp-file-name-structure))))
+ (cond
+ ;; If argument is a symlink, 'file-directory-p` and 'file-exists-p`
+ ;; call the traversed file recursively. So we cannot disable the
+ ;;file-name-handler this case.
+ ((memq operation '(file-directory-p file-exists-p))
+ (apply 'ange-ftp-hook-function operation args))
+ ;; Normally, the handlers must be discarded
+ (t (let* ((inhibit-file-name-handlers
+ (list 'tramp-file-name-handler
+ 'tramp-completion-file-name-handler
+ (and (eq inhibit-file-name-operation operation)
+ inhibit-file-name-handlers)))
+ (inhibit-file-name-operation operation))
+ (apply 'ange-ftp-hook-function operation args)))))))
(defun tramp-ftp-file-name-p (filename)
"Check if it's a filename that should be forwarded to Ange-FTP."
;; * In case of "/ftp:host:file" this works only for functions which
;; are defined in `tramp-file-name-handler-alist'. Call has to be
-;; pretended in `tramp-file-name-handler' otherwise. Looks like
-;; `ange-ftp-completion-hook-function' and `ange-ftp-hook-function'
-;; are active temporarily in `file-name-handler-alist'.
-;; Furthermore, there are no backup files on FTP hosts this case.
+;; pretended in `tramp-file-name-handler' otherwise.
+;; Furthermore, there are no backup files on FTP hosts.
;; Worth further investigations.
;;; tramp-ftp.el ends here
-;;; -*- mode: Emacs-Lisp; coding: iso-8859-1; -*-
+;;; -*- mode: Emacs-Lisp; coding: iso-2022-7bit; -*-
;;; tramp.el --- Transparent Remote Access, Multiple Protocol
;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
;; Other file name ops.
-;; ;; Matthias Köppe <mkoeppe@mail.math.uni-magdeburg.de>
+;; ;; Matthias K\e,Av\e(Bppe <mkoeppe@mail.math.uni-magdeburg.de>
;; (defun tramp-handle-directory-file-name (directory)
;; "Like `directory-file-name' for tramp files."
;; (if (and (eq (aref directory (- (length directory) 1)) ?/)
;; transfer method to use. (Greg Stark)
;; * Remove unneeded parameters from methods.
;; * Invoke rsync once for copying a whole directory hierarchy.
-;; (Francesco Potortì)
+;; (Francesco Potort\e,Al\e(B)
;; * Should we set PATH ourselves or should we rely on the remote end
;; to do it?
;; * Do the autoconf thing.