;;; tramp.el --- Transparent Remote Access, Multiple Protocol
-;; Copyright (C) 1998-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2012 Free Software Foundation, Inc.
;; Author: Kai Großjohann <kai.grossjohann@gmx.net>
;; Michael Albinus <michael.albinus@gmx.de>
choose a shell here which groks tilde expansion. `/bin/sh' normally
does not understand tilde expansion.
-For encoding and deocding, commands like the following are executed:
+For encoding and decoding, commands like the following are executed:
/bin/sh -c COMMAND < INPUT > OUTPUT
(search-forward-regexp "Missing ControlMaster argument" nil t))))
(defcustom tramp-default-method
- ;; An external copy method seems to be preferred, because it is much
- ;; more performant for large files, and it hasn't too serious delays
+ ;; An external copy method seems to be preferred, because it performs
+ ;; much better for large files, and it hasn't too serious delays
;; for small files. But it must be ensured that there aren't
;; permanent password queries. Either a password agent like
;; "ssh-agent" or "Pageant" shall run, or the optional
(setq fn nil)))
(setq btn (1+ btn))))
;; The following code inserts filename and line number.
- ;; Should be deactivated by default, because it is time
+ ;; Should be inactive by default, because it is time
;; consuming.
; (let ((ffn (find-function-noselect (intern fn))))
; (insert
`file-name-shadow-mode'; the minibuffer should have already
been set up by `rfn-eshadow-setup-minibuffer'."
;; In remote files name, there is a shadowing just for the local part.
- (let ((end (or (tramp-compat-funcall
- 'overlay-end (symbol-value 'rfn-eshadow-overlay))
- (tramp-compat-funcall 'minibuffer-prompt-end))))
- (when
- (file-remote-p
- (tramp-compat-funcall 'buffer-substring-no-properties end (point-max)))
- (save-excursion
- (save-restriction
- (narrow-to-region
- (1+ (or (string-match
- tramp-rfn-eshadow-update-overlay-regexp (buffer-string) end)
- end))
- (point-max))
- (let ((rfn-eshadow-overlay tramp-rfn-eshadow-overlay)
- (rfn-eshadow-update-overlay-hook nil))
- (tramp-compat-funcall
- 'move-overlay rfn-eshadow-overlay (point-max) (point-max))
- (tramp-compat-funcall 'rfn-eshadow-update-overlay)))))))
+ (ignore-errors
+ (let ((end (or (tramp-compat-funcall
+ 'overlay-end (symbol-value 'rfn-eshadow-overlay))
+ (tramp-compat-funcall 'minibuffer-prompt-end))))
+ (when
+ (file-remote-p
+ (tramp-compat-funcall
+ 'buffer-substring-no-properties end (point-max)))
+ (save-excursion
+ (save-restriction
+ (narrow-to-region
+ (1+ (or (string-match
+ tramp-rfn-eshadow-update-overlay-regexp
+ (buffer-string) end)
+ end))
+ (point-max))
+ (let ((rfn-eshadow-overlay tramp-rfn-eshadow-overlay)
+ (rfn-eshadow-update-overlay-hook nil)
+ file-name-handler-alist)
+ (tramp-compat-funcall
+ 'move-overlay rfn-eshadow-overlay (point-max) (point-max))
+ (tramp-compat-funcall 'rfn-eshadow-update-overlay))))))))
(when (boundp 'rfn-eshadow-update-overlay-hook)
(add-hook 'rfn-eshadow-update-overlay-hook
(when (and (listp sf) (eq (car sf) 'autoload))
(let ((default-directory
(tramp-compat-temporary-file-directory)))
- (load (cadr sf) 'noerror)))
+ (load (cadr sf) 'noerror 'nomessage)))
(apply foreign operation args))
;; Trace that somebody has interrupted the operation.
- (quit
+ ((debug quit)
(let (tramp-message-show-message)
(tramp-message
v 1 "Interrupt received in operation %s"
;; operations shall return at least a default value
;; in order to give the user a chance to correct the
;; file name in the minibuffer.
+ ;; We cannot use 'debug as error handler. In order
+ ;; to get a full backtrace, one could apply
+ ;; (setq debug-on-error t debug-on-signal t)
(error
(cond
((and completion (zerop (length localname))
not in completion mode."
(and (tramp-tramp-file-p filename)
(with-parsed-tramp-file-name filename nil
- (or (get-buffer (tramp-buffer-name v))
- (not (tramp-completion-mode-p))))))
+ (or (not (tramp-completion-mode-p))
+ (let ((p (tramp-get-connection-process v)))
+ (and p (processp p) (memq (process-status p) '(run open))))))))
;; Method, host name and user name completion.
;; `tramp-completion-dissect-file-name' returns a list of
(cond
((char-equal other-write ?w) (tramp-compat-octal-to-decimal "00002"))
((char-equal other-write ?-) 0)
- (t (error "Nineth char `%c' must be one of `w-'" other-write)))
+ (t (error "Ninth char `%c' must be one of `w-'" other-write)))
(cond
((char-equal other-execute-or-sticky ?x)
(tramp-compat-octal-to-decimal "00001"))
;; expects English? Or just to set LC_MESSAGES to "C" if Tramp
;; expects only English messages? (Juri Linkov)
;; * Make shadowfile.el grok Tramp filenames. (Bug#4526, Bug#4846)
-;; * I was wondering it it would be possible to use tramp even if I'm
+;; * I was wondering if it would be possible to use tramp even if I'm
;; actually using sshfs. But when I launch a command I would like
;; to get it executed on the remote machine where the files really
;; are. (Andrea Crotti)
;; * Run emerge on two remote files. Bug is described here:
;; <http://www.mail-archive.com/tramp-devel@nongnu.org/msg01041.html>.
;; (Bug#6850)
-
-;; Functions for file-name-handler-alist:
-;; diff-latest-backup-file -- in diff.el
+;; * It would be very useful if it were possible to load or save a
+;; buffer using Tramp in a non-blocking way so that use of Emacs on
+;; other buffers could continue. (Bug#9617)
;;; tramp.el ends here