Stefan Monnier <[EMAIL PROTECTED]> 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.
_______________________________________________
Tramp-devel mailing list
[EMAIL PROTECTED]
http://mail.nongnu.org/mailman/listinfo/tramp-devel