]> code.delx.au - gnu-emacs/blobdiff - lisp/net/tramp-cache.el
* net/ange-ftp.el (ange-ftp-get-passwd): Bind
[gnu-emacs] / lisp / net / tramp-cache.el
index 03a5fe5b88ec3a111599820b34da8c50fb75ab10..fe5eb0049d089c82a1a8272303842237d2d329a5 100644 (file)
@@ -243,7 +243,7 @@ PROPERTY is set persistent when KEY is a vector."
     (aset key 3 nil))
   (let ((hash (or (gethash key tramp-cache-data)
                  (puthash key (make-hash-table :test 'equal)
-                           tramp-cache-data))))
+                          tramp-cache-data))))
     (puthash property value hash)
     (setq tramp-cache-data-changed t)
     (tramp-message key 7 "%s %s" property value)
@@ -328,11 +328,17 @@ KEY identifies the connection, it is either a process or a vector."
               (not (zerop (hash-table-count tramp-cache-data)))
               tramp-cache-data-changed
               (stringp tramp-persistency-file-name))
-      (let ((cache (copy-hash-table tramp-cache-data)))
-       ;; Remove temporary data.
+      (let ((cache (copy-hash-table tramp-cache-data))
+           print-length print-level)
+       ;; Remove temporary data.  If there is the key "login-as", we
+       ;; don't save either, because all other properties might
+       ;; depend on the login name, and we want to give the
+       ;; possibility to use another login name later on.
        (maphash
         (lambda (key value)
-          (if (and (vectorp key) (not (tramp-file-name-localname key)))
+          (if (and (vectorp key)
+                   (not (tramp-file-name-localname key))
+                   (not (gethash "login-as" value)))
               (progn
                 (remhash "process-name" value)
                 (remhash "process-buffer" value)