summaryrefslogtreecommitdiff
path: root/lisp/net/tramp-smb.el
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2007-11-07 20:41:15 +0000
committerMichael Albinus <michael.albinus@gmx.de>2007-11-07 20:41:15 +0000
commitb08104a01d188359cad1244e25f76b84956a3e75 (patch)
tree91849c8676f177ced7d026f318043d952c180174 /lisp/net/tramp-smb.el
parent855aae38de972893598dfb09d29555be496ced31 (diff)
downloademacs-b08104a01d188359cad1244e25f76b84956a3e75.tar.gz
* net/tramp.el (tramp-handle-substitute-in-file-name): Don't
expand the remote connection identification. (tramp-find-shell, tramp-open-connection-setup-interactive-shell): Set also $PS2 and $PS3 when setting $PS1. Check for shell echoing before calling stty. * net/tramp-cache.el (tramp-cache-print) (tramp-dump-connection-properties): Fix docstring. (tramp-list-connections): Renamed from `tramp-cache-list-connections'. * net/tramp-cmds.el (tramp-cleanup-connection): Apply it. * net/tramp-ftp.el (tramp-ftp-file-name-handler): Don't expand the remote connection identification when setting connection property. * net/tramp-smb.el (tramp-smb-handle-substitute-in-file-name): "//" substitutes only in the local filename part.
Diffstat (limited to 'lisp/net/tramp-smb.el')
-rw-r--r--lisp/net/tramp-smb.el13
1 files changed, 9 insertions, 4 deletions
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index c6c064daaf6..706042060f6 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -563,7 +563,14 @@ PRESERVE-UID-GID is completely ignored."
(defun tramp-smb-handle-substitute-in-file-name (filename)
"Like `handle-substitute-in-file-name' for Tramp files.
-Catches errors for shares like \"C$/\", which are common in Microsoft Windows."
+\"//\" substitutes only in the local filename part. Catches
+errors for shares like \"C$/\", which are common in Microsoft Windows."
+ (with-parsed-tramp-file-name filename nil
+ ;; Ignore in LOCALNAME everything before "//".
+ (when (and (stringp localname) (string-match ".+?/\\(/\\|~\\)" localname))
+ (setq filename
+ (concat (file-remote-p filename)
+ (replace-match "\\1" nil nil localname)))))
(condition-case nil
(tramp-run-real-handler 'substitute-in-file-name (list filename))
(error filename)))
@@ -583,7 +590,7 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows."
filename))
(tramp-error v 'file-error "File not overwritten")))
;; We must also flush the cache of the directory, because
- ;; file-attributes reads the values from there.
+ ;; `file-attributes' reads the values from there.
(tramp-flush-file-property v (file-name-directory localname))
(tramp-flush-file-property v localname)
(let ((file (tramp-smb-get-localname localname t))
@@ -1005,8 +1012,6 @@ Returns nil if an error message has appeared."
;; * Return more comprehensive file permission string. Think whether it is
;; possible to implement `set-file-modes'.
;; * Handle links (FILENAME.LNK).
-;; * Maybe local tmp files should have the same extension like the original
-;; files. Strange behaviour with jka-compr otherwise?
;; * Try to remove the inclusion of dummy "" directory. Seems to be at
;; several places, especially in `tramp-smb-handle-insert-directory'.
;; * (RMS) Use unwind-protect to clean up the state so as to make the state