unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
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

  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).