emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/net/tramp.el,v


From: Michael Albinus
Subject: [Emacs-diffs] Changes to emacs/lisp/net/tramp.el,v
Date: Sun, 27 Apr 2008 09:29:42 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Michael Albinus <albinus>       08/04/27 09:29:42

Index: tramp.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/net/tramp.el,v
retrieving revision 1.191
retrieving revision 1.192
diff -u -b -r1.191 -r1.192
--- tramp.el    24 Apr 2008 19:32:27 -0000      1.191
+++ tramp.el    27 Apr 2008 09:29:41 -0000      1.192
@@ -3557,11 +3557,23 @@
          (tramp-run-real-handler 'expand-file-name
                                  (list localname))))))))
 
+(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)
+
 (defun tramp-handle-substitute-in-file-name (filename)
   "Like `substitute-in-file-name' for Tramp files.
 \"//\" and \"/~\" substitute only in the local filename part.
 If the URL Tramp syntax is chosen, \"//\" as method delimeter and \"/~\" at
 beginning of local filename are not substituted."
+  ;; First, we must replace environment variables.
+  (setq filename (tramp-replace-environment-variables filename))
   (with-parsed-tramp-file-name filename nil
     (if (equal tramp-syntax 'url)
        ;; We need to check localname only.  The other parts cannot contain
@@ -4451,7 +4463,9 @@
   "Invoke Tramp file name handler.
 Falls back to normal file name handler if no Tramp file name handler exists."
   (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))
           (foreign (tramp-find-foreign-file-name-handler filename)))
       (with-parsed-tramp-file-name filename nil




reply via email to

[Prev in Thread] Current Thread [Next in Thread]