From: Michael Albinus Date: Sun, 27 Apr 2008 09:56:45 +0000 (+0000) Subject: * net/tramp.el (tramp-replace-environment-variables): New defun. X-Git-Tag: emacs-pretest-22.2.90~163 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bc8dfbbd59cdf03d8df89cf041b4c4943c3664d5;p=emacs.git * net/tramp.el (tramp-replace-environment-variables): New defun. (tramp-file-name-handler): Use it. --- diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index aaac6bfda88..98eb93aa208 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -4375,6 +4375,16 @@ ARGS are the arguments OPERATION has been called with." (setq res (cdr elt)))) res))) +(defun tramp-replace-environment-variables (filename) + "Replace environment variables in FILENAME. +Return the string with the replaced variables." + (when (string-match "$\\w+" filename) + (setq filename + (replace-match + (substitute-in-file-name (match-string 0 filename)) + t nil filename))) + filename) + ;; Main function. ;;;###autoload (defun tramp-file-name-handler (operation &rest args) @@ -4383,7 +4393,9 @@ Falls back to normal file name handler if no tramp file name handler exists." ;; (setq edebug-trace t) ;; (edebug-trace "%s" (with-output-to-string (backtrace))) (save-match-data - (let* ((filename (apply 'tramp-file-name-for-operation operation args)) + (let* ((filename + (tramp-replace-environment-variables + (apply 'tramp-file-name-for-operation operation args))) (completion (tramp-completion-mode-p filename)) (foreign (tramp-find-foreign-file-name-handler filename))) (with-parsed-tramp-file-name filename nil