tramp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ange-ftp problem


From: Michael Albinus
Subject: Re: ange-ftp problem
Date: Thu, 29 Jan 2004 20:59:42 +0100
User-agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3.50 (gnu/linux)

Stefan Monnier <address@hidden> writes:

> Finally, I don't think I have write-access to any ftp server any more.
> Can I use sftp instead?  How would I go about telling ange-ftp to use sftp?

I've tried shortly the following settings, it didn't work. But you get
an inspiration what to do ...

(setq ange-ftp-ftp-program-name "sftp"
      ange-ftp-ftp-program-args '("v")
      tramp-default-method "ftp")

> One more thing: if someone could reproduce (part of) the problem without
> dired, that would help (or if someone could edebug dired to see where the
> problem comes from).

Hm. The problem is related to dired: copying the file via ange-ftp
works, the error happens when dired refreshes the buffer.

If you manage to setup ange-ftp you can try the following scenario:

- Load both the local and remote dired buffers

  C-x C-f /localhost:/tmp/
  C-x C-f ~/

- Set the cursor on any file on the local dired buffer

- Copy the file to the remote host

  C /localhost:/tmp/

> Oh, wait: could you get a backtrace (by setting setq debug-on-error or if
> that doesn't work, by setting debug-on-signal) ?

There's no backtrace setting debug-*. I've put a backtrace call into
ange-ftp-error, here it is:

#   backtrace()
  (let ((standard-output standard-output)) (backtrace))
  (let ((standard-output ...)) (let (...) (backtrace)) (with-current-buffer 
standard-output (prog1 ... ...)))
  (with-output-to-string (backtrace))
  (tramp-message 1 "%s" (with-output-to-string (backtrace)))
  ange-ftp-error("localhost" "albinus" #("DIR failed: 550 /tmp/.emacs: No such 
file or directory." 0 12 nil 12 55 (inhibit-line-move-field-capture t field 
output rear-nonsticky t)))
  (if no-error nil (ange-ftp-error host user (concat "DIR failed: " ...)))
  (if (car (setq result ...)) (save-excursion (set-buffer ...) (erase-buffer) 
(if ... ... ... ...) (while ... ...) (goto-char 1) (run-hooks ...) (if parse 
...) (run-hooks ...) (setq ange-ftp-ls-cache-file key ange-ftp-ls-cache-lsargs 
lsargs ange-ftp-ls-cache-res ...) (if ... nil ange-ftp-ls-cache-res)) (if 
no-error nil (ange-ftp-error host user ...)))
  (unwind-protect (if (car ...) (save-excursion ... ... ... ... ... ... ... ... 
... ...) (if no-error nil ...)) (ange-ftp-del-tmp-name temp))
  (if (and ange-ftp-ls-cache-file (string-equal key ange-ftp-ls-cache-file) (or 
dumb ...)) ange-ftp-ls-cache-res (setq temp (ange-ftp-make-tmp-name host)) (if 
wildcard (progn ... ...) (setq lscmd ...)) (unwind-protect (if ... ... ...) 
(ange-ftp-del-tmp-name temp)))
  (let* ((host ...) (user ...) (name ...) (key ...) (host-type ...) (dumb ...) 
result temp lscmd parse-func) (if (string-equal name "") (setq name ...)) (if 
(and ange-ftp-ls-cache-file ... ...) ange-ftp-ls-cache-res (setq temp ...) (if 
wildcard ... ...) (unwind-protect ... ...)))
  (if parsed (let* (... ... ... ... ... ... result temp lscmd parse-func) (if 
... ...) (if ... ange-ftp-ls-cache-res ... ... ...)) (error "Should never 
happen. Please report. Bug ref. no.: 1"))
  (let* ((ange-ftp-this-file ...) (parsed ...)) (if parsed (let* ... ... ...) 
(error "Should never happen. Please report. Bug ref. no.: 1")))
  ange-ftp-ls(".emacs" "--dired -ald" nil)
  (if wildcard (let (...) (ange-ftp-ls ... switches nil nil t)) (ange-ftp-ls 
file switches full))
  (insert (if wildcard (let ... ...) (ange-ftp-ls file switches full)))
  (if (and (not wildcard) (setq tem ...)) (ange-ftp-insert-directory 
(ange-ftp-expand-symlink tem ...) switches wildcard full) (insert (if wildcard 
... ...)))
  (if parsed (if (and ... ...) (ange-ftp-insert-directory ... switches wildcard 
full) (insert ...)) (ange-ftp-real-insert-directory file switches wildcard 
full))
  (let ((short ...) (parsed ...) tem) (if parsed (if ... ... ...) 
(ange-ftp-real-insert-directory file switches wildcard full)))
  ange-ftp-insert-directory(".emacs" "--dired -ald" nil nil)
  apply(ange-ftp-insert-directory (".emacs" "--dired -ald" nil nil))
  (progn (apply fn args))
  (unwind-protect (progn (apply fn args)) (set-match-data 
save-match-data-internal))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ...) 
(set-match-data save-match-data-internal)))
  (save-match-data (apply fn args))
  (if fn (save-match-data (apply fn args)) (ange-ftp-run-real-handler operation 
args))
  (let ((fn ...)) (if fn (save-match-data ...) (ange-ftp-run-real-handler 
operation args)))
  ange-ftp-hook-function(insert-directory ".emacs" "--dired -ald" nil nil)
  apply(ange-ftp-hook-function insert-directory (".emacs" "--dired -ald" nil 
nil))
  (let* ((inhibit-file-name-handlers ...) (inhibit-file-name-operation 
operation)) (apply (quote ange-ftp-hook-function) operation args))
  (cond ((memq operation ...) (apply ... operation args)) (t (let* ... ...)))
  (let ((ange-ftp-name-format ...) (ange-ftp-ftp-name-arg "") 
(ange-ftp-ftp-name-res nil)) (cond (... ...) (t ...)))
  (progn (or (boundp ...) (require ...)) (let (... ... ...) (cond ... ...)))
  (unwind-protect (progn (or ... ...) (let ... ...)) (set-match-data 
save-match-data-internal))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ... ...) 
(set-match-data save-match-data-internal)))
  (save-match-data (or (boundp ...) (require ...)) (let (... ... ...) (cond ... 
...)))
  tramp-ftp-file-name-handler(insert-directory ".emacs" "--dired -ald" nil nil)
  apply(tramp-ftp-file-name-handler insert-directory (".emacs" "--dired -ald" 
nil nil))
  (cond (foreign (apply foreign operation args)) (t (tramp-run-real-handler 
operation args)))
  (let* ((filename ...) (foreign ...)) (cond (foreign ...) (t ...)))
  (progn (let* (... ...) (cond ... ...)))
  (unwind-protect (progn (let* ... ...)) (set-match-data 
save-match-data-internal))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ...) 
(set-match-data save-match-data-internal)))
  (save-match-data (let* (... ...) (cond ... ...)))
  tramp-file-name-handler(insert-directory ".emacs" "--dired -ald" nil nil)
  insert-directory(".emacs" "--dired -ald" nil nil)
  (while --dolist-temp--46606 (setq f (car --dolist-temp--46606)) 
(insert-directory f switches nil nil) (setq --dolist-temp--46606 (cdr 
--dolist-temp--46606)))
  (let ((--dolist-temp--46606 file-list) f) (while --dolist-temp--46606 (setq f 
...) (insert-directory f switches nil nil) (setq --dolist-temp--46606 ...)) nil)
  (catch (quote --cl-block-nil--) (let (... f) (while --dolist-temp--46606 ... 
... ...) nil))
  (cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil)))
  (block nil (let (... f) (while --dolist-temp--46606 ... ... ...) nil))
  (dolist (f file-list) (insert-directory f switches nil nil))
  (if file-list (dolist (f file-list) (insert-directory f switches nil nil)) 
(insert-directory dir switches wildcard (not wildcard)))
  (let ((opoint ...) (process-environment ...) end) (if (or dired-use-ls-dired 
...) (setq switches ...)) (if file-list (dolist ... ...) (insert-directory dir 
switches wildcard ...)) (if (not ...) (save-excursion ... ... ... ... ... ...)) 
(dired-insert-set-properties opoint (point)) (unless (save-excursion ... ...) 
(let ... ...)) (save-excursion (goto-char opoint) (if ... ...) (when wildcard 
...)))
  dired-insert-directory("/localhost:/tmp/" "-ald" (".emacs"))
  (let ((default-directory directory)) (dired-insert-directory directory 
(concat dired-actual-switches "d") (list filename)))
  (let (buffer-read-only opoint) (beginning-of-line) (setq opoint (point)) (let 
(...) (dired-insert-directory directory ... ...)) (goto-char opoint) (when 
marker-char (let ... ...)) (goto-char opoint) (let (...) (if ... ... ...)) 
(forward-line -1) (if dired-after-readin-hook (save-excursion ...)) 
(dired-move-to-filename))
  (catch (quote not-found) (if (string= directory cur-dir) (progn ... ... ...) 
(if ... ... ...)) (let (buffer-read-only opoint) (beginning-of-line) (setq 
opoint ...) (let ... ...) (goto-char opoint) (when marker-char ...) (goto-char 
opoint) (let ... ...) (forward-line -1) (if dired-after-readin-hook ...) 
(dired-move-to-filename)) nil)
  (setq filename (if relative (file-relative-name filename directory) 
(file-name-nondirectory filename)) reason (catch (quote not-found) (if ... ... 
...) (let ... ... ... ... ... ... ... ... ... ... ...) nil))
  (let* ((opoint ...) (cur-dir ...) (orig-file-name filename) (directory ...) 
reason) (setq filename (if relative ... ...) reason (catch ... ... ... nil)) 
(if reason (goto-char opoint)) (not reason))
  dired-add-entry("/localhost:/tmp/.emacs" 67)
  apply(dired-add-entry ("/localhost:/tmp/.emacs" 67))
  (if (apply fun args) (setq success-list (cons ... success-list)))
  (save-current-buffer (set-buffer buf) (if (apply fun args) (setq success-list 
...)))
  (with-current-buffer buf (if (apply fun args) (setq success-list ...)))
  (while --dolist-temp--46605 (setq buf (car --dolist-temp--46605)) 
(with-current-buffer buf (if ... ...)) (setq --dolist-temp--46605 (cdr 
--dolist-temp--46605)))
  (let ((--dolist-temp--46605 ...) buf) (while --dolist-temp--46605 (setq buf 
...) (with-current-buffer buf ...) (setq --dolist-temp--46605 ...)) nil)
  (catch (quote --cl-block-nil--) (let (... buf) (while --dolist-temp--46605 
... ... ...) nil))
  (cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil)))
  (block nil (let (... buf) (while --dolist-temp--46605 ... ... ...) nil))
  (dolist (buf (dired-buffers-for-dir ... file)) (with-current-buffer buf (if 
... ...)))
  (let (success-list) (dolist (buf ...) (with-current-buffer buf ...)) 
success-list)
  dired-fun-in-all-buffers("/localhost:/tmp/" ".emacs" dired-add-entry 
"/localhost:/tmp/.emacs" 67)
  dired-add-file("/localhost:/tmp/.emacs" 67)
  (progn (funcall file-creator from to dired-overwrite-confirmed) (if overwrite 
(dired-remove-file to)) (setq success-count (1+ success-count)) (message "%s: 
%d of %d" operation success-count total) (dired-add-file to actual-marker-char))
  (condition-case err (progn (funcall file-creator from to 
dired-overwrite-confirmed) (if overwrite ...) (setq success-count ...) (message 
"%s: %d of %d" operation success-count total) (dired-add-file to 
actual-marker-char)) (file-error (progn ... ...)))
  (let* ((overwrite ...) (dired-overwrite-confirmed ...) (actual-marker-char 
...)) (condition-case err (progn ... ... ... ... ...) (file-error ...)))
  (if (not to) (setq skipped (cons ... skipped)) (let* (... ... ...) 
(condition-case err ... ...)))
  (lambda (from) (setq to (funcall name-constructor from)) (if (equal to from) 
(progn ... ...)) (if (not to) (setq skipped ...) (let* ... 
...)))("/home/albinus/.emacs")
  mapcar((lambda (from) (setq to (funcall name-constructor from)) (if (equal to 
from) (progn ... ...)) (if (not to) (setq skipped ...) (let* ... ...))) 
("/home/albinus/.emacs"))
  (let (to overwrite-query overwrite-backup-query) (mapcar (function ...) 
fn-list))
  (let (failures skipped (success-count 0) (total ...)) (let (to 
overwrite-query overwrite-backup-query) (mapcar ... fn-list)) (cond (failures 
...) (skipped ...) (t ...)))
  dired-create-files(dired-copy-file "Copy [-p]" ("/home/albinus/.emacs") 
(lambda (from) (expand-file-name (file-name-nondirectory from) target)) 67)
  (if (and (consp into-dir) (functionp ...)) (apply (car into-dir) operation 
rfn-list fn-list target (cdr into-dir)) (if (not ...) (error "Marked %s: target 
must be a directory: %s" operation target)) (or into-dir (setq target ...)) 
(dired-create-files file-creator operation fn-list (if into-dir ... ...) 
marker-char))
  (let* ((fn-list ...) (rfn-list ...) (dired-one-file ...) (target-dir ...) 
(default ...) (target ...) (into-dir ...)) (if (and ... ...) (apply ... 
operation rfn-list fn-list target ...) (if ... ...) (or into-dir ...) 
(dired-create-files file-creator operation fn-list ... marker-char)))
  dired-do-create-files(copy dired-copy-file "Copy [-p]" nil 67 nil nil)
  (let ((dired-recursive-copies dired-recursive-copies)) (dired-do-create-files 
(quote copy) (function dired-copy-file) (if dired-copy-preserve-time "Copy 
[-p]" "Copy") arg dired-keep-marker-copy nil dired-copy-how-to-fn))
  dired-do-copy(nil)
  call-interactively(dired-do-copy)

>         Stefan

Best regards, Michael.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]