+2014-04-10 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/tramp.el (tramp-file-name-handler)
+ (tramp-completion-file-name-handler): Avoid recursive loading.
+
+ * net/tramp-sh.el (tramp-make-copy-program-file-name):
+ Quote result also locally.
+
2014-04-09 Dmitry Gutov <dgutov@yandex.ru>
* progmodes/ruby-mode.el (ruby-font-lock-keywords): Highlight more
(host (tramp-file-name-real-host vec))
(localname (tramp-shell-quote-argument
(tramp-file-name-localname vec))))
- (if (not (zerop (length user)))
- (format "%s@%s:%s" user host localname)
- (format "%s:%s" host localname))))
+ (shell-quote-argument
+ (if (not (zerop (length user)))
+ (format "%s@%s:%s" user host localname)
+ (format "%s:%s" host localname)))))
(defun tramp-method-out-of-band-p (vec size)
"Return t if this is an out-of-band method, nil otherwise."
Falls back to normal file name handler if no Tramp file name handler exists."
(if tramp-mode
(save-match-data
- (let* ((filename
+ (let* ((default-directory
+ ;; Some packages set the default directory to a
+ ;; remote path, before tramp.el has been loaded.
+ ;; This results in recursive loading. Therefore, we
+ ;; set `default-directory' to a local path. `args'
+ ;; could also be remote when loading tramp.el, but
+ ;; that would be such perverse we don't care about.
+ (if load-in-progress
+ temporary-file-directory default-directory))
+ (filename
(tramp-replace-environment-variables
(apply 'tramp-file-name-for-operation operation args)))
(completion (tramp-completion-mode-p))
"Invoke Tramp file name completion handler.
Falls back to normal file name handler if no Tramp file name handler exists."
;; We bind `directory-sep-char' here for XEmacs on Windows, which
- ;; would otherwise use backslash.
+ ;; would otherwise use backslash. For `default-directory', see
+ ;; comment in `tramp-file-name-handler'.
(let ((directory-sep-char ?/)
+ (default-directory
+ (if load-in-progress temporary-file-directory default-directory))
(fn (assoc operation tramp-completion-file-name-handler-alist)))
(if (and
;; When `tramp-mode' is not enabled, we don't do anything.