diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 3fef196219d..9aad087c510 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -2388,9 +2388,9 @@ to a remote home directory, like @option{adb}, @option{rclone} and @item @t{"tmpdir"} The temporary directory on the remote host. If not specified, the -default value is @t{"/data/local/tmp"} for the @option{adb} method, -@t{"/C$/Temp"} for the @option{smb} method, and @t{"/tmp"} otherwise. -@xref{Temporary directory}. +default value is @t{"/data/local/tmp"} for the @option{adb} and +@option{androidsu} methods, @t{"/C$/Temp"} for the @option{smb} +method, and @t{"/tmp"} otherwise. @xref{Temporary directory}. @item @t{"posix"} @@ -4690,7 +4690,9 @@ It cannot be killed via @code{interrupt-process}. It does not report the remote terminal name via @code{process-tty-name}. @item -It does not set process property @code{remote-pid}. +It does not set process property @code{remote-pid}. Consequently, +signals cannot be sent to that remote process; they are sent to the +local process instead, which establishes the connection. @item It fails, when the command is too long. This can happen on @@ -4712,6 +4714,15 @@ by the connection property @t{"direct-async-process"}. This is still supported but deprecated, and it will be removed in a future @value{tramp} version. +@strong{Note}: For the @option{ssh} and @option{scp} methods, +@value{tramp} does not faithfully pass binary sequences on to the +process. You can change this by changing the respective connection +argument (@pxref{Predefined connection information}) via + +@lisp +(add-to-list 'tramp-connection-properties (list "/ssh:" "direct-async" t)) +@end lisp + @node Cleanup remote connections @section Cleanup remote connections diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el index d432deee5d1..37c82e4922b 100644 --- a/lisp/net/tramp-cache.el +++ b/lisp/net/tramp-cache.el @@ -68,10 +68,10 @@ ;; Some properties are handled special: ;; -;; - Properties which start with a space, like " process-name", are -;; not saved in the file `tramp-persistency-file-name', although -;; being connection properties related to a `tramp-file-name' -;; structure. +;; - Ephemeral properties which start with a space, like +;; " process-name", are not saved in the file +;; `tramp-persistency-file-name', although being connection +;; properties related to a `tramp-file-name' structure. ;; ;; - Reusable properties, which should not be saved, are kept in the ;; process key retrieved by `tramp-get-process' (the main connection @@ -79,6 +79,7 @@ ;; recomputation when a new asynchronous process is created by ;; `make-process'. Examples are "unsafe-temporary-file", ;; "remote-path", "device" (tramp-adb.el) or "share" (tramp-gvfs.el). +;; FIXME: Shall they be converted to ephemeral connection properties? ;;; Code: diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index 04c7df2eaac..0e69cca2f32 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el @@ -79,7 +79,7 @@ (if-let* ((xdg (xdg-cache-home)) ((file-directory-p xdg)) ((file-writable-p xdg))) - (prog1 (setq xdg (file-name-concat xdg "emacs")) + (prog1 (setq xdg (expand-file-name "emacs" xdg)) (make-directory xdg t)) (eval (car (get 'temporary-file-directory 'standard-value)) t))) "The default value of `temporary-file-directory' for Tramp.") @@ -243,6 +243,8 @@ value is the default binding of the variable." ;; are developers using `outline-minor-mode' in Lisp files, we still ;; keep this quoting. ;; +;; * Use `with-environment-variables'. +;; ;; * Starting with Emacs 29.1, use `buffer-match-p'. ;; ;; * Starting with Emacs 29.1, use `string-split'. diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index 40449b2c455..64bde348775 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el @@ -737,7 +737,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored." (tramp-error v 'file-error "Cannot expand tilde in file `%s'" name)) (unless (tramp-run-real-handler #'file-name-absolute-p (list localname)) (setq localname (concat "/" localname))) - ;; Do not keep "/..". + ;; Do not keep "/..". (when (string-match-p (rx bos "/" (** 1 2 ".") eos) localname) (setq localname "/")) ;; Do normal `expand-file-name' (this does "/./" and "/../"), diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index d87cecb9ec6..be761a71fa7 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -7208,5 +7208,11 @@ If VEC is `tramp-null-hop', return local null device." ;; ;; * Implement user and host name completion for multi-hops. Some ;; methods in tramp-container.el have it already. +;; +;; * Make it configurable, which environment variables are set in +;; direct async processes. +;; +;; * Pass working dir for direct async processes, for example for +;; container methods. ;;; tramp.el ends here