- (let ((handler
- (unless (or (equal default-directory "/")
- (and (eshell-under-windows-p)
- (string-match "\\`[A-Za-z]:[/\\\\]\\'"
- default-directory)))
- (find-file-name-handler default-directory
- 'shell-command))))
- (if (and handler
- (not (and (featurep 'xemacs)
- (eq handler 'dired-handler-fn))))
- (eshell-remote-command handler command args))
- (let ((interp (eshell-find-interpreter command)))
- (assert interp)
- (if (functionp (car interp))
- (apply (car interp) (append (cdr interp) args))
- (eshell-gather-process-output
- (car interp) (append (cdr interp) args))))))
+ (if (string-equal (file-remote-p default-directory 'method) "ftp")
+ (eshell-remote-command command args))
+ (let ((interp (eshell-find-interpreter command)))
+ (assert interp)
+ (if (functionp (car interp))
+ (apply (car interp) (append (cdr interp) args))
+ (eshell-gather-process-output
+ (car interp) (append (cdr interp) args)))))