From: "Robert J. Chassell" <bob@rattlesnake.com>
Cc: emacs-devel@gnu.org
Subject: Re: I miss ange-ftp ($#@!Tramp)
Date: Tue, 26 Nov 2002 13:03:46 +0000 (UTC) [thread overview]
Message-ID: <m18GfNS-000IeAC@localhost> (raw)
In-Reply-To: <847kf0wzqm.fsf@lucy.cs.uni-dortmund.de> (kai.grossjohann@uni-duisburg.de)
Oops! My apologies, I forgot to load the the *.el files instead of the
*.elc files to avoid bytecode.
Here is a new bug report, from a new instance of Emacs, with the *.el
files loaded, and with a copy of the new debugger log and of the new
*ftp emrc@bcn.net* buffer. The results were the same as before:
I was able to visit and also save a remote file using ange-ftp, but I
had to get out of the debugger first and then find the buried file.
Using today's CVS snapshot, Tue, 2002 Nov 26 11:49 UTC
GNU Emacs 21.3.50.48 (i686-pc-linux-gnu, X toolkit)
started with
/usr/local/bin/emacs -q --no-site-file --eval '(blink-cursor-mode 0)'
First, I evaluated all the following:
(progn
(require 'tramp)
(setq tramp-verbose 10)
(setq tramp-debug-buffer t)
(setq tramp-default-method "smx")
;; when running `emacs -q -l ... ' need to set this
(custom-set-variables '(shell-prompt-pattern "^[^#$%
]*[#$%>] *")))
;;; load the *.el files instead of the *.elc files to avoid bytecode
(progn
(load-file "/usr/local/share/emacs/21.3.50/lisp/comint.el")
(load-file "/usr/local/share/emacs/21.3.50/lisp/emacs-lisp/cl.el")
(load-file "/usr/local/src/emacs/lisp/net/ange-ftp.el")
(load-file "/usr/local/src/emacs/lisp/net/tramp-uu.el")
(load-file "/usr/local/src/emacs/lisp/net/tramp-vc.el")
(load-file "/usr/local/src/emacs/lisp/net/tramp.el"))
;; [need passive mode for ftp with firewall]
(setq ange-ftp-try-passive-mode t)
;; [set ange-ftp-default-user for ange-ftp]
(custom-set-variables '(ange-ftp-default-user "ftp@gnu.org"))
;;; from emacs/lisp/net/ange-ftp.el
;;; This regexp takes care of real ange-ftp file names (with a slash
;;; and colon).
;;; Don't allow the host name to end in a period--some systems use /.:
;;;###autoload
(or (assoc "^/[^/:]*[^/:.]:" file-name-handler-alist)
(setq file-name-handler-alist
(cons '("^/[^/:]*[^/:.]:" . ange-ftp-hook-function)
file-name-handler-alist)))
;;; This regexp recognizes absolute filenames with only one component,
;;; for the sake of hostname completion.
;;;###autoload
(or (assoc "^/[^/:]*\\'" file-name-handler-alist)
(setq file-name-handler-alist
(cons '("^/[^/:]*\\'" . ange-ftp-completion-hook-function)
file-name-handler-alist)))
;;; This regexp recognizes absolute filenames with only one component
;;; on Windows, for the sake of hostname completion.
;;; NB. Do not mark this as autoload, because it is very common to
;;; do completions in the root directory of drives on Windows.
(and (memq system-type '(ms-dos windows-nt))
(or (assoc "^[a-zA-Z]:/[^/:]*\\'" file-name-handler-alist)
(setq file-name-handler-alist
(cons '("^[a-zA-Z]:/[^/:]*\\'" .
ange-ftp-completion-hook-function)
file-name-handler-alist))))
Then I visited a file with a command like this (I changed the name of
the user and the destination):
(find-file "/user@foo.net:~user/public_html/links.html" nil)
This threw me into the debugger:
Debugger entered--Lisp error: (error "Method `smx' didn't specify a connection function")
signal(error ("Method `smx' didn't specify a connection function"))
error("Method `%s' didn't specify a connection function" "smx")
(or (assoc (quote tramp-connection-function) (assoc ... tramp-methods)) (error "Method `%s' didn't specify a connection function" (or multi-method method)))
(second (or (assoc ... ...) (error "Method `%s' didn't specify a connection function" ...)))
tramp-get-connection-function(nil "smx" "emrc" "bcn.net")
(funcall (tramp-get-connection-function multi-method (tramp-find-method multi-method method user host) user host) multi-method method user host)
(if (and p (processp p) (memq ... ...)) nil (when (and p ...) (delete-process p)) (funcall (tramp-get-connection-function multi-method ... user host) multi-method method user host))
(unless (and p (processp p) (memq ... ...)) (when (and p ...) (delete-process p)) (funcall (tramp-get-connection-function multi-method ... user host) multi-method method user host))
(let ((p ...) last-cmd-time) (save-excursion (set-buffer ...) (when ... ... ... ...)) (unless (and p ... ...) (when ... ...) (funcall ... multi-method method user host)))
tramp-maybe-open-connection(nil nil "emrc" "bcn.net")
(save-excursion (tramp-maybe-open-connection multi-method method user host) (set-buffer (tramp-get-buffer multi-method method user host)) tramp-file-exists-command)
tramp-get-file-exists-command(nil nil "emrc" "bcn.net")
(format (tramp-get-file-exists-command multi-method method user host) (tramp-shell-quote-argument path))
(tramp-send-command-and-check multi-method method user host (format (tramp-get-file-exists-command multi-method method user host) (tramp-shell-quote-argument path)))
(zerop (tramp-send-command-and-check multi-method method user host (format ... ...)))
(save-excursion (zerop (tramp-send-command-and-check multi-method method user host ...)))
(let* ((v ...) (multi-method ...) (method ...) (user ...) (host ...) (path ...)) (when (tramp-ange-ftp-file-name-p multi-method method user host) (tramp-invoke-ange-ftp ... filename)) (save-excursion (zerop ...)))
(with-parsed-tramp-file-name filename nil (when (tramp-ange-ftp-file-name-p multi-method method user host) (tramp-invoke-ange-ftp ... filename)) (save-excursion (zerop ...)))
tramp-handle-file-exists-p(#("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))
(if (tramp-handle-file-exists-p filename) (progn (save-excursion ...)))
(when (tramp-handle-file-exists-p filename) (save-excursion (if ... ... ...)))
(let* ((v ...) (multi-method ...) (method ...) (user ...) (host ...) (path ...)) (when (tramp-ange-ftp-file-name-p multi-method method user host) (tramp-invoke-ange-ftp ... filename)) (when (tramp-handle-file-exists-p filename) (save-excursion ...)))
(with-parsed-tramp-file-name filename nil (when (tramp-ange-ftp-file-name-p multi-method method user host) (tramp-invoke-ange-ftp ... filename)) (when (tramp-handle-file-exists-p filename) (save-excursion ...)))
(let (result) (with-parsed-tramp-file-name filename nil (when ... ...) (when ... ...)) result)
tramp-handle-file-attributes(#("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))
(nth 8 (tramp-handle-file-attributes filename))
(tramp-mode-string-to-int (nth 8 (tramp-handle-file-attributes filename)))
(progn (tramp-mode-string-to-int (nth 8 ...)))
(if (file-exists-p filename) (progn (tramp-mode-string-to-int ...)))
(when (file-exists-p filename) (tramp-mode-string-to-int (nth 8 ...)))
(let* ((v ...) (multi-method ...) (method ...) (user ...) (host ...) (path ...)) (when (tramp-ange-ftp-file-name-p multi-method method user host) (tramp-invoke-ange-ftp ... filename)) (when (file-exists-p filename) (tramp-mode-string-to-int ...)))
(with-parsed-tramp-file-name filename nil (when (tramp-ange-ftp-file-name-p multi-method method user host) (tramp-invoke-ange-ftp ... filename)) (when (file-exists-p filename) (tramp-mode-string-to-int ...)))
tramp-handle-file-modes(#("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))
apply(tramp-handle-file-modes #("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))
(progn (apply (cdr fn) args))
(unwind-protect (progn (apply ... 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 (cdr fn) args))
(catch (quote tramp-forward-to-ange-ftp) (save-match-data (apply ... args)))
(if fn (catch (quote tramp-forward-to-ange-ftp) (save-match-data ...)) (tramp-run-real-handler operation args))
(let ((fn ...)) (if fn (catch ... ...) (tramp-run-real-handler operation args)))
tramp-file-name-handler(file-modes #("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))
file-modes(#("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))
apply(file-modes #("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))
(let ((inhibit-file-name-handlers ...) (inhibit-file-name-operation operation)) (apply operation args))
ange-ftp-run-real-handler(file-modes (#("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil)))
(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(file-modes #("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))
file-modes(#("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))
after-find-file(nil t)
find-file-noselect-1(#<buffer links.html> #("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil) nil nil #("/emrc@bcn.net:/home/emrc/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil) (1 -1))
find-file-noselect("/emrc@bcn.net:~emrc/public_html/links.html" nil nil nil)
find-file("/emrc@bcn.net:~emrc/public_html/links.html" nil)
eval((find-file "/emrc@bcn.net:~emrc/public_html/links.html" nil))
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp)
Also, the *ftp user@foo.net* buffer showed this:
ftp> open bcn.net
Connected to bcn.net.
220 uno.bcn.net FTP server (Version wu-2.6.2(1) Fri Feb 22 04:09:00 EST 2002) ready.
user "emrc" Turtle Power!
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
ftp> 331 Password required for emrc.
230 User emrc logged in.
ftp> hash
Hash mark printing on (1024 bytes/hash mark).
ftp> pwd
257 "/home/emrc" is current directory.
ftp> passive on
Passive mode on.
ftp> get ~emrc /dev/null
227 Entering Passive Mode (209,213,0,60,141,214)
550 /home/emrc: not a plain file.
ftp> cd /home/emrc/public_html/links.html/
550 /home/emrc/public_html/links.html/: Not a directory.
ftp> cd /home/emrc/public_html/links.html/
550 /home/emrc/public_html/links.html/: Not a directory.
ftp> cd /home/emrc/public_html/
250 CWD command successful.
ftp> ls -al /tmp/ange-ftp28936uye
227 Entering Passive Mode (209,213,0,60,234,100)
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
ftp> quote mdtm /home/emrc/public_html/links.html
213 20021126123916
ftp> quote mdtm /home/emrc/public_html/links.html
213 20021126123916
ftp> quote mdtm /home/emrc/public_html/links.html
213 20021126123916
ftp> quote mdtm /home/emrc/public_html/links.html
213 20021126123916
ftp> type binary
200 Type set to I.
ftp> get /home/emrc/public_html/links.html /tmp/ange-ftp2893678k
227 Entering Passive Mode (209,213,0,60,36,49)
150 Opening BINARY mode data connection for /home/emrc/public_html/links.html (11994 bytes).
226 Transfer complete.
11994 bytes received in 1.8 seconds (6.5 Kbytes/s)
ftp> type ascii
200 Type set to A.
ftp> quote mdtm /home/emrc/public_html/links.html
213 20021126123916
ftp> quote mdtm /home/emrc/public_html/links.html
213 20021126123916
ftp> quote mdtm /home/emrc/public_html/links.html
213 20021126123916
ftp> quote mdtm /home/emrc/public_html/links.html
213 20021126123916
ftp>
*** ==> However, the visited file was in a buffer -- albeit buried --
and I was able to modify the visited remote file and save it.
--
Robert J. Chassell Rattlesnake Enterprises
http://www.rattlesnake.com GnuPG Key ID: 004B4AC8
http://www.teak.cc bob@rattlesnake.com
next prev parent reply other threads:[~2002-11-26 13:03 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-25 22:23 I miss ange-ftp ($#@!Tramp) Clay Jones
2002-11-26 7:34 ` Kai Großjohann
2002-11-26 12:50 ` Robert J. Chassell
2002-11-26 13:03 ` Robert J. Chassell [this message]
2002-11-26 16:16 ` Kai Großjohann
2002-11-26 16:44 ` Robert J. Chassell
2002-11-27 9:15 ` Kai Großjohann
2002-11-26 22:22 ` Michael Albinus
2002-11-27 7:35 ` Richard Stallman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m18GfNS-000IeAC@localhost \
--to=bob@rattlesnake.com \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).