From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Robert J. Chassell" Newsgroups: gmane.emacs.devel Subject: Re: I miss ange-ftp ($#@!Tramp) Date: Tue, 26 Nov 2002 12:50:20 +0000 (UTC) Sender: emacs-devel-admin@gnu.org Message-ID: References: <7AA5242A-00C4-11D7-9700-0003936772EE@clay-jones.com> <847kf0wzqm.fsf@lucy.cs.uni-dortmund.de> Reply-To: bob@rattlesnake.com NNTP-Posting-Host: main.gmane.org X-Trace: main.gmane.org 1038315345 24345 80.91.224.249 (26 Nov 2002 12:55:45 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Tue, 26 Nov 2002 12:55:45 +0000 (UTC) Cc: emacs-devel@gnu.org Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18GfFe-0006KJ-00 for ; Tue, 26 Nov 2002 13:55:42 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 18GfLk-0008Uh-00 for ; Tue, 26 Nov 2002 14:02:00 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10) id 18GfBn-0007Eq-00; Tue, 26 Nov 2002 07:51:43 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10) id 18GfAd-0006Zh-00 for emacs-devel@gnu.org; Tue, 26 Nov 2002 07:50:31 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10) id 18GfAb-0006ZH-00 for emacs-devel@gnu.org; Tue, 26 Nov 2002 07:50:30 -0500 Original-Received: from megalith.rattlesnake.com ([140.186.114.245] helo=localhost) by monty-python.gnu.org with esmtp (Exim 4.10) id 18GfAY-0006Yg-00 for emacs-devel@gnu.org; Tue, 26 Nov 2002 07:50:27 -0500 Original-Received: by rattlesnake.com via sendmail from stdin id (Debian Smail3.2.0.114) Tue, 26 Nov 2002 12:50:20 +0000 (UTC) Original-To: kai.grossjohann@uni-duisburg.de In-reply-to: <847kf0wzqm.fsf@lucy.cs.uni-dortmund.de> (kai.grossjohann@uni-duisburg.de) Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:9680 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:9680 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 "^[^#$% ]*[#$%>] *"))) ;; [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") tramp-get-connection-function(nil "smx" "user" "foo.net") tramp-maybe-open-connection(nil nil "user" "foo.net") tramp-get-file-exists-command(nil nil "user" "foo.net") tramp-handle-file-exists-p(#("/user@foo.net:/home/user/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil)) tramp-handle-file-attributes(#("/user@foo.net:/home/user/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil)) tramp-handle-file-modes(#("/user@foo.net:/home/user/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 #("/user@foo.net:/home/user/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil)) byte-code(" ā A\n\"*" [save-match-data-internal fn args match-data ((set-match-data save-match-data-internal)) apply] 3) tramp-file-name-handler(file-modes #("/user@foo.net:/home/user/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(#("/user@foo.net:/home/user/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 #("/user@foo.net:/home/user/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil)) ange-ftp-run-real-handler(file-modes (#("/user@foo.net:/home/user/public_html/links.html" 0 14 nil 14 24 (rear-nonsticky t field output inhibit-line-move-field-capture t) 24 47 nil))) ange-ftp-hook-function(file-modes #("/user@foo.net:/home/user/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(#("/user@foo.net:/home/user/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(# #("/user@foo.net:/home/user/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 #("/user@foo.net:/home/user/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("/user@foo.net:~user/public_html/links.html" nil nil nil) find-file("/user@foo.net:~user/public_html/links.html" nil) eval((find-file "/user@foo.net:~user/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 foo.net Connected to foo.net. 220 uno.foo.net FTP server (Version wu-2.6.2(1) Fri Feb 22 04:09:00 EST 2002) ready. user "user" 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 user. 230 User user logged in. ftp> hash Hash mark printing on (1024 bytes/hash mark). ftp> pwd 257 "/home/user" is current directory. ftp> passive on Passive mode on. ftp> get ~user /dev/null 227 Entering Passive Mode (209,213,0,60,238,166) 550 /home/user: not a plain file. ftp> cd /home/user/public_html/links.html/ 550 /home/user/public_html/links.html/: Not a directory. ftp> cd /home/user/public_html/links.html/ 550 /home/user/public_html/links.html/: Not a directory. ftp> cd /home/user/public_html/ 250 CWD command successful. ftp> ls -al /tmp/ange-ftp28849Dge 227 Entering Passive Mode (209,213,0,60,203,199) 150 Opening ASCII mode data connection for /bin/ls. 226 Transfer complete. ftp> quote mdtm /home/user/public_html/links.html 213 20021126123133 ftp> quote mdtm /home/user/public_html/links.html 213 20021126123133 ftp> quote mdtm /home/user/public_html/links.html 213 20021126123133 ftp> quote mdtm /home/user/public_html/links.html 213 20021126123133 ftp> type binary 200 Type set to I. ftp> get /home/user/public_html/links.html /tmp/ange-ftp28849Qqk 227 Entering Passive Mode (209,213,0,60,5,174) 150 Opening BINARY mode data connection for /home/user/public_html/links.html (11994 bytes). 226 Transfer complete. 11994 bytes received in 1.7 seconds (6.7 Kbytes/s) ftp> type ascii 200 Type set to A. ftp> quote mdtm /home/user/public_html/links.html 213 20021126123133 ftp> quote mdtm /home/user/public_html/links.html 213 20021126123133 ftp> quote mdtm /home/user/public_html/links.html 213 20021126123133 ftp> quote mdtm /home/user/public_html/links.html 213 20021126123133 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