emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] externals/tramp a5b5b33: Tramp ELPA version 2.4.3.5 released


From: Michael Albinus
Subject: [elpa] externals/tramp a5b5b33: Tramp ELPA version 2.4.3.5 released
Date: Fri, 29 May 2020 07:53:00 -0400 (EDT)

branch: externals/tramp
commit a5b5b33b11506615aa869ab3bfc44d682aa95508
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>

    Tramp ELPA version 2.4.3.5 released
---
 test/tramp-tests.el |  23 +++++++++++
 texi/tramp.texi     |  53 +++++++++++++++++--------
 texi/trampver.texi  |   2 +-
 tramp-adb.el        |  32 +++++++++------
 tramp-archive.el    |   7 +++-
 tramp-gvfs.el       |   5 ++-
 tramp-loaddefs.el   |   2 +-
 tramp-rclone.el     |  13 +++++-
 tramp-sh.el         |  29 +++++++++-----
 tramp-smb.el        |   1 +
 tramp.el            |  19 ++++++++-
 tramp.info          | 112 ++++++++++++++++++++++++++++++----------------------
 trampver.el         |   4 +-
 13 files changed, 207 insertions(+), 95 deletions(-)

diff --git a/test/tramp-tests.el b/test/tramp-tests.el
index 3ee357f..9c6b3b2 100644
--- a/test/tramp-tests.el
+++ b/test/tramp-tests.el
@@ -76,6 +76,7 @@
 ;; Needed for Emacs 26.
 (defvar async-shell-command-width)
 ;; Needed for Emacs 27.
+(defvar process-file-return-signal-string)
 (defvar shell-command-dont-erase-buffer)
 
 ;; Beautify batch mode.
@@ -4152,6 +4153,28 @@ This tests also `make-symbolic-link', `file-truename' 
and `add-name-to-file'."
            (should (zerop (process-file "true")))
            (should-not (zerop (process-file "false")))
            (should-not (zerop (process-file "binary-does-not-exist")))
+           ;; Return exit code.
+           (should (= 42 (process-file
+                          (if (tramp--test-adb-p) "/system/bin/sh" "/bin/sh")
+                          nil nil nil "-c" "exit 42")))
+           ;; Return exit code in case the process is interrupted,
+           ;; and there's no indication for a signal describing string.
+           (let (process-file-return-signal-string)
+             (should
+              (= (+ 128 2)
+                 (process-file
+                  (if (tramp--test-adb-p) "/system/bin/sh" "/bin/sh")
+                  nil nil nil "-c" "kill -2 $$"))))
+           ;; Return string in case the process is interrupted and
+           ;; there's an indication for a signal describing string.
+           (let ((process-file-return-signal-string t))
+             (should
+              (string-equal
+               "Interrupt"
+               (process-file
+                (if (tramp--test-adb-p) "/system/bin/sh" "/bin/sh")
+                nil nil nil "-c" "kill -2 $$"))))
+
            (with-temp-buffer
              (write-region "foo" nil tmp-name)
              (should (file-exists-p tmp-name))
diff --git a/texi/tramp.texi b/texi/tramp.texi
index cbf2afe..0741fb8 100644
--- a/texi/tramp.texi
+++ b/texi/tramp.texi
@@ -318,14 +318,14 @@ behind the scenes when you open a file with @value{tramp}.
 @uref{https://ftp.gnu.org/gnu/tramp/}.  The version number of
 @value{tramp} can be obtained by the variable @code{tramp-version}.
 For released @value{tramp} versions, this is a three-number string
-like ``2.4.2''.
+like ``2.4.3''.
 
 A @value{tramp} release, which is packaged with Emacs, could differ
 slightly from the corresponding standalone release.  This is because
 it isn't always possible to synchronize release dates between Emacs
 and @value{tramp}.  Such version numbers have the Emacs version number
-as suffix, like ``2.3.5.26.3''.  This means @value{tramp} 2.3.5 as
-integrated in Emacs 26.3.  A complete list of @value{tramp} versions
+as suffix, like ``2.4.3.27.1''.  This means @value{tramp} 2.4.3 as
+integrated in Emacs 27.1.  A complete list of @value{tramp} versions
 packaged with Emacs can be retrieved by
 
 @vindex customize-package-emacs-version-alist
@@ -337,12 +337,12 @@ packaged with Emacs can be retrieved by
 ELPA} package.  Besides the standalone releases, further minor version
 of @value{tramp} will appear on GNU ELPA, until the next @value{tramp}
 release appears.  These minor versions have a four-number string, like
-``2.4.2.1''.
+``2.4.3.1''.
 
 @value{tramp} development versions are available on Git servers.
 Development versions contain new and incomplete features.  The
 development version of @value{tramp} is always the version number of
-the next release, plus the suffix ``-pre'', like ``2.4.3-pre''.
+the next release, plus the suffix ``-pre'', like ``2.4.4-pre''.
 
 One way to obtain @value{tramp} from Git server is to visit the
 Savannah project page at the following URL and then clicking on the
@@ -2292,7 +2292,7 @@ string of that environment variable looks always like
 @example
 @group
 echo $INSIDE_EMACS
-@result{} 26.2,tramp:2.3.4
+@result{} 27.1,tramp:2.4.3
 @end group
 @end example
 
@@ -3027,6 +3027,17 @@ host when the variable @code{default-directory} is 
remote:
 @end group
 @end lisp
 
+@vindex process-file-return-signal-string
+@code{process-file} shall return either the exit code of the process,
+or a string describing the signal, when the process has been
+interrupted.  Since it cannot be determined reliably whether a remote
+process has been interrupted, @code{process-file} returns always the
+exit code.  When the user option
+@code{process-file-return-signal-string} is non-nil,
+@code{process-file} regards all exit codes greater than 128 as an
+indication that the process has been interrupted, and returns a
+respective string.
+
 Remote processes do not apply to @acronym{GVFS} (see @ref{GVFS-based
 methods}) because the remote file system is mounted on the local host
 and @value{tramp} just accesses by changing the
@@ -3034,9 +3045,17 @@ and @value{tramp} just accesses by changing the
 
 @value{tramp} starts a remote process when a command is executed in a
 remote file or directory buffer.  As of now, these packages have been
-integrated to work with @value{tramp}: @file{compile.el} (commands
-like @code{compile} and @code{grep}) and @file{gud.el} (@code{gdb} or
-@code{perldb}).
+integrated to work with @value{tramp}: @file{shell.el},
+@file{eshell.el}, @file{compile.el} (commands like @code{compile} and
+@code{grep}) and @file{gud.el} (@code{gdb} or @code{perldb}).
+
+@vindex INSIDE_EMACS@r{, environment variable}
+@value{tramp} always modifies the @env{INSIDE_EMACS} environment
+variable for remote processes.  Per default, this environment variable
+shows the Emacs version.  @value{tramp} adds its own version string,
+so it looks like @samp{27.1,tramp:2.4.3.1}.  However, other packages
+might also add their name to this environment variable, like
+@samp{27.1,comint,tramp:2.4.3.1}.
 
 For @value{tramp} to find the command on the remote, it must be
 accessible through the default search path as setup by @value{tramp}
@@ -3231,10 +3250,10 @@ variables.
 @vindex async-shell-command-width
 @vindex COLUMNS@r{, environment variable}
 If Emacs supports the variable @code{async-shell-command-width} (since
-Emacs 27.1), @value{tramp} cares about its value for asynchronous
-shell commands.  It specifies the number of display columns for
-command output.  For synchronous shell commands, a similar effect can
-be achieved by adding the environment variable @env{COLUMNS} to
+Emacs 27), @value{tramp} cares about its value for asynchronous shell
+commands.  It specifies the number of display columns for command
+output.  For synchronous shell commands, a similar effect can be
+achieved by adding the environment variable @env{COLUMNS} to
 @code{tramp-remote-process-environment}.
 
 
@@ -3718,7 +3737,7 @@ row are possible, like 
@file{/path/to/dir/file.tar.gz.uu/dir/file}.
 
 @vindex tramp-archive-all-gvfs-methods
 An archive file name could be a remote file name, as in
-@file{/ftp:anonymous@@ftp.gnu.org:/gnu/tramp/tramp-2.3.2.tar.gz/INSTALL}.
+@file{/ftp:anonymous@@ftp.gnu.org:/gnu/tramp/tramp-2.4.3.tar.gz/INSTALL}.
 Since all file operations are mapped internally to @acronym{GVFS}
 operations, remote file names supported by @code{tramp-gvfs} perform
 better, because no local copy of the file archive must be downloaded
@@ -3729,7 +3748,7 @@ the similar @samp{/scp:user@@host:...}.  See the constant
 
 If @code{url-handler-mode} is enabled, archives could be visited via
 URLs, like
-@file{https://ftp.gnu.org/gnu/tramp/tramp-2.3.2.tar.gz/INSTALL}.  This
+@file{https://ftp.gnu.org/gnu/tramp/tramp-2.4.3.tar.gz/INSTALL}.  This
 allows complex file operations like
 
 @lisp
@@ -3737,8 +3756,8 @@ allows complex file operations like
 (progn
   (url-handler-mode 1)
   (ediff-directories
-   "https://ftp.gnu.org/gnu/tramp/tramp-2.3.1.tar.gz/tramp-2.3.1";
-   "https://ftp.gnu.org/gnu/tramp/tramp-2.3.2.tar.gz/tramp-2.3.2"; ""))
+   "https://ftp.gnu.org/gnu/tramp/tramp-2.4.2.tar.gz/tramp-2.4.2";
+   "https://ftp.gnu.org/gnu/tramp/tramp-2.4.3.tar.gz/tramp-2.4.3"; ""))
 @end group
 @end lisp
 
diff --git a/texi/trampver.texi b/texi/trampver.texi
index aef8175..d4379e4 100644
--- a/texi/trampver.texi
+++ b/texi/trampver.texi
@@ -8,7 +8,7 @@
 @c In the Tramp GIT, the version numbers are auto-frobbed from
 @c tramp.el, and the bug report address is auto-frobbed from
 @c configure.ac.
-@set trampver 2.4.3.4
+@set trampver 2.4.3.5
 @set tramp-bug-report-address tramp-devel@@gnu.org
 @set emacsver 24.4
 
diff --git a/tramp-adb.el b/tramp-adb.el
index 4751942..0a1c34a 100644
--- a/tramp-adb.el
+++ b/tramp-adb.el
@@ -895,14 +895,13 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
       ;; it.  Call it in a subshell, in order to preserve working
       ;; directory.
       (condition-case nil
-         (progn
-           (setq ret
-                 (if (tramp-adb-send-command-and-check
-                      v
-                      (format "(cd %s; %s)"
-                              (tramp-shell-quote-argument localname) command))
-                     ;; Set return status accordingly.
-                     0 1))
+         (unwind-protect
+             (setq ret (tramp-adb-send-command-and-check
+                        v (format
+                           "(cd %s; %s)"
+                           (tramp-shell-quote-argument localname) command)
+                        t))
+           (unless (natnump ret) (setq ret 1))
            ;; We should add the output anyway.
            (when outbuf
              (with-current-buffer outbuf
@@ -918,6 +917,12 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
         (kill-buffer (tramp-get-connection-buffer v))
         (setq ret 1)))
 
+      ;; Handle signals.  `process-file-return-signal-string' exists
+      ;; since Emacs 28.1.
+      (when (and (bound-and-true-p process-file-return-signal-string)
+                (natnump ret) (> ret 128))
+       (setq ret (nth (- ret 128) (tramp-get-signal-strings))))
+
       ;; Provide error file.
       (when tmpstderr (rename-file tmpstderr (cadr destination) t))
 
@@ -1189,11 +1194,14 @@ This happens for Android >= 4.0."
        (while (re-search-forward "\r+$" nil t)
          (replace-match "" nil nil))))))
 
-(defun tramp-adb-send-command-and-check (vec command)
+(defun tramp-adb-send-command-and-check (vec command &optional exit-status)
   "Run COMMAND and check its exit status.
 Sends `echo $?' along with the COMMAND for checking the exit
 status.  If COMMAND is nil, just sends `echo $?'.  Returns nil if
-the exit status is not equal 0, and t otherwise."
+the exit status is not equal 0, and t otherwise.
+
+Optional argument EXIT-STATUS, if non-nil, triggers the return of
+the exit status."
   (tramp-adb-send-command
    vec (if command
           (format "%s; echo tramp_exit_status $?" command)
@@ -1204,7 +1212,9 @@ the exit status is not equal 0, and t otherwise."
        vec 'file-error "Couldn't find exit status of `%s'" command))
     (skip-chars-forward "^ ")
     (prog1
-       (zerop (read (current-buffer)))
+       (if exit-status
+           (read (current-buffer))
+         (zerop (read (current-buffer))))
       (let ((inhibit-read-only t))
        (delete-region (match-beginning 0) (point-max))))))
 
diff --git a/tramp-archive.el b/tramp-archive.el
index b9bf618..611247e 100644
--- a/tramp-archive.el
+++ b/tramp-archive.el
@@ -109,7 +109,7 @@
 
 (eval-when-compile (require 'cl-lib))
 ;; Sometimes, compilation fails with "Variable binding depth exceeds
-;; max-specpdl-size".
+;; max-specpdl-size".  Shall be fixed in Emacs 27.
 (eval-and-compile
   (let ((max-specpdl-size (* 2 max-specpdl-size))) (require 'tramp-gvfs)))
 
@@ -318,7 +318,10 @@ arguments to pass to the OPERATION."
 
       (let* ((filename (apply #'tramp-archive-file-name-for-operation
                              operation args))
-            (archive (tramp-archive-file-name-archive filename)))
+            (archive (tramp-archive-file-name-archive filename))
+            ;; Sometimes, it fails with "Variable binding depth exceeds
+            ;; max-specpdl-size".  Shall be fixed in Emacs 27.
+            (max-specpdl-size (* 2 max-specpdl-size)))
 
         ;; `filename' could be a quoted file name.  Or the file
         ;; archive could be a directory, see Bug#30293.
diff --git a/tramp-gvfs.el b/tramp-gvfs.el
index 40308d6..b6c709a 100644
--- a/tramp-gvfs.el
+++ b/tramp-gvfs.el
@@ -121,7 +121,10 @@
         (autoload 'zeroconf-init "zeroconf")
         (tramp-compat-funcall 'dbus-get-unique-name :system)
         (tramp-compat-funcall 'dbus-get-unique-name :session)
-        (or (tramp-compat-process-running-p "gvfs-fuse-daemon")
+        (or ;; Until Emacs 25, `process-attributes' could crash Emacs
+            ;; for some processes.  Better we don't check.
+            (<= emacs-major-version 25)
+            (tramp-compat-process-running-p "gvfs-fuse-daemon")
             (tramp-compat-process-running-p "gvfsd-fuse"))))
   "Non-nil when GVFS is available.")
 
diff --git a/tramp-loaddefs.el b/tramp-loaddefs.el
index f2f84d0..6184286 100644
--- a/tramp-loaddefs.el
+++ b/tramp-loaddefs.el
@@ -663,7 +663,7 @@ UU-encode the region between BEG and END.
 ;;;### (autoloads nil "trampver" "trampver.el" (0 0 0 0))
 ;;; Generated autoloads from trampver.el
 
-(defconst tramp-version "2.4.3.4" "\
+(defconst tramp-version "2.4.3.5" "\
 This version of Tramp.")
 
 (defconst tramp-bug-report-address "tramp-devel@gnu.org" "\
diff --git a/tramp-rclone.el b/tramp-rclone.el
index 0d1ef0f..fcbd201 100644
--- a/tramp-rclone.el
+++ b/tramp-rclone.el
@@ -478,7 +478,18 @@ file names."
           (with-tramp-connection-property
               (tramp-get-connection-process vec) "rclone-pid"
             (catch 'pid
-              (dolist (pid (list-system-processes)) ;; "pidof rclone" ?
+              (dolist
+                  (pid
+                   ;; Until Emacs 25, `process-attributes' could
+                   ;; crash Emacs for some processes.  So we use
+                   ;; "pidof", which might not work everywhere.
+                   (if (<= emacs-major-version 25)
+                       (let ((default-directory temporary-file-directory))
+                         (mapcar
+                          #'string-to-number
+                          (split-string
+                           (shell-command-to-string "pidof rclone"))))
+                     (list-system-processes)))
                 (and (string-match-p
                       (regexp-quote
                        (format "rclone mount %s:" (tramp-file-name-host vec)))
diff --git a/tramp-sh.el b/tramp-sh.el
index f5429ec..0a9f49d 100644
--- a/tramp-sh.el
+++ b/tramp-sh.el
@@ -3114,13 +3114,12 @@ STDERR can also be a file name."
       ;; directory.
       (condition-case nil
          (unwind-protect
-              (setq ret
-                   (if (tramp-send-command-and-check
-                        v (format "cd %s && %s"
-                                  (tramp-shell-quote-argument localname)
-                                  command)
-                        t t)
-                       0 1))
+              (setq ret (tramp-send-command-and-check
+                        v (format
+                           "cd %s && %s"
+                           (tramp-shell-quote-argument localname) command)
+                        t t t))
+           (unless (natnump ret) (setq ret 1))
            ;; We should add the output anyway.
            (when outbuf
              (with-current-buffer outbuf
@@ -3138,6 +3137,12 @@ STDERR can also be a file name."
         (kill-buffer (tramp-get-connection-buffer v))
         (setq ret 1)))
 
+      ;; Handle signals.  `process-file-return-signal-string' exists
+      ;; since Emacs 28.1.
+      (when (and (bound-and-true-p process-file-return-signal-string)
+                (natnump ret) (>= ret 128))
+       (setq ret (nth (- ret 128) (tramp-get-signal-strings))))
+
       ;; Provide error file.
       (when tmpstderr (rename-file tmpstderr (cadr destination) t))
 
@@ -5211,7 +5216,7 @@ function waits for output unless NOOUTPUT is set."
       found)))
 
 (defun tramp-send-command-and-check
-  (vec command &optional subshell dont-suppress-err)
+  (vec command &optional subshell dont-suppress-err exit-status)
   "Run COMMAND and check its exit status.
 Send `echo $?' along with the COMMAND for checking the exit status.
 If COMMAND is nil, just send `echo $?'.  Return t if the exit
@@ -5219,7 +5224,9 @@ status is 0, and nil otherwise.
 
 If the optional argument SUBSHELL is non-nil, the command is
 executed in a subshell, ie surrounded by parentheses.  If
-DONT-SUPPRESS-ERR is non-nil, stderr won't be sent to /dev/null."
+DONT-SUPPRESS-ERR is non-nil, stderr won't be sent to /dev/null.
+Optional argument EXIT-STATUS, if non-nil, triggers the return of
+the exit status."
   (tramp-send-command
    vec
    (concat (if subshell "( " "")
@@ -5233,7 +5240,9 @@ DONT-SUPPRESS-ERR is non-nil, stderr won't be sent to 
/dev/null."
        vec 'file-error "Couldn't find exit status of `%s'" command))
     (skip-chars-forward "^ ")
     (prog1
-       (zerop (read (current-buffer)))
+       (if exit-status
+           (read (current-buffer))
+         (zerop (read (current-buffer))))
       (let ((inhibit-read-only t))
        (delete-region (match-beginning 0) (point-max))))))
 
diff --git a/tramp-smb.el b/tramp-smb.el
index d4618a2..0b3d57d 100644
--- a/tramp-smb.el
+++ b/tramp-smb.el
@@ -146,6 +146,7 @@ this variable (\"client min protocol=NT1\") ."
         "NT_STATUS_HOST_UNREACHABLE"
         "NT_STATUS_IMAGE_ALREADY_LOADED"
         "NT_STATUS_INVALID_LEVEL"
+        "NT_STATUS_INVALID_PARAMETER"
         "NT_STATUS_INVALID_PARAMETER_MIX"
         "NT_STATUS_IO_TIMEOUT"
         "NT_STATUS_LOGON_FAILURE"
diff --git a/tramp.el b/tramp.el
index b5d3879..66b4624 100644
--- a/tramp.el
+++ b/tramp.el
@@ -7,7 +7,7 @@
 ;; Maintainer: Michael Albinus <michael.albinus@gmx.de>
 ;; Keywords: comm, processes
 ;; Package: tramp
-;; Version: 2.4.3.4
+;; Version: 2.4.3.5
 ;; Package-Requires: ((emacs "24.4"))
 ;; Package-Type: multi
 ;; URL: https://savannah.gnu.org/projects/tramp
@@ -5048,6 +5048,23 @@ name of a process or buffer, or nil to default to the 
current buffer."
    (lambda ()
      (remove-hook 'interrupt-process-functions #'tramp-interrupt-process))))
 
+(defun tramp-get-signal-strings ()
+  "Strings to return by `process-file' in case of signals."
+  ;; We use key nil for local connection properties.
+  (with-tramp-connection-property nil "signal-strings"
+    (let (result)
+      (if (and (stringp shell-file-name) (executable-find shell-file-name))
+         (dotimes (i 128)
+           (push
+            (if (= i 19) 1 ;; SIGSTOP
+              (call-process
+               shell-file-name nil nil nil "-c" (format "kill -%d $$" i)))
+            result))
+       (dotimes (i 128)
+         (push (format "Signal %d" i) result)))
+      ;; Due to Bug#41287, we cannot add this to the `dotimes' clause.
+      (reverse result))))
+
 ;; Checklist for `tramp-unload-hook'
 ;; - Unload all `tramp-*' packages
 ;; - Reset `file-name-handler-alist'
diff --git a/tramp.info b/tramp.info
index d2d9072..70a25f5 100644
--- a/tramp.info
+++ b/tramp.info
@@ -21,10 +21,10 @@ END-INFO-DIR-ENTRY
 
 File: tramp.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
 
-TRAMP 2.4.3.4 User Manual
+TRAMP 2.4.3.5 User Manual
 *************************
 
-This file documents TRAMP 2.4.3.4, a remote file editing package for
+This file documents TRAMP 2.4.3.5, a remote file editing package for
 Emacs.
 
    TRAMP stands for “Transparent Remote (file) Access, Multiple
@@ -248,13 +248,13 @@ TRAMP is included as part of Emacs (since Emacs 22.1).
    TRAMP is also freely packaged for download on the Internet at
 <https://ftp.gnu.org/gnu/tramp/>.  The version number of TRAMP can be
 obtained by the variable ‘tramp-version’.  For released TRAMP versions,
-this is a three-number string like “2.4.2”.
+this is a three-number string like “2.4.3”.
 
    A TRAMP release, which is packaged with Emacs, could differ slightly
 from the corresponding standalone release.  This is because it isn’t
 always possible to synchronize release dates between Emacs and TRAMP.
 Such version numbers have the Emacs version number as suffix, like
-“2.3.5.26.3”.  This means TRAMP 2.3.5 as integrated in Emacs 26.3.  A
+“2.4.3.27.1”.  This means TRAMP 2.4.3 as integrated in Emacs 27.1.  A
 complete list of TRAMP versions packaged with Emacs can be retrieved by
 
      (assoc 'Tramp customize-package-emacs-version-alist)
@@ -262,12 +262,12 @@ complete list of TRAMP versions packaged with Emacs can 
be retrieved by
    TRAMP is also available as GNU ELPA (https://elpa.gnu.org) package.
 Besides the standalone releases, further minor version of TRAMP will
 appear on GNU ELPA, until the next TRAMP release appears.  These minor
-versions have a four-number string, like “2.4.2.1”.
+versions have a four-number string, like “2.4.3.1”.
 
    TRAMP development versions are available on Git servers.  Development
 versions contain new and incomplete features.  The development version
 of TRAMP is always the version number of the next release, plus the
-suffix “-pre”, like “2.4.3-pre”.
+suffix “-pre”, like “2.4.4-pre”.
 
    One way to obtain TRAMP from Git server is to visit the Savannah
 project page at the following URL and then clicking on the Git link in
@@ -1757,7 +1757,7 @@ Determining a TRAMP session
      of that environment variable looks always like
 
           echo $INSIDE_EMACS
-          ⇒ 26.2,tramp:2.3.4
+          ⇒ 27.1,tramp:2.4.3
 
 ‘tset’ and other questions
 
@@ -2290,14 +2290,28 @@ the variable ‘default-directory’ is remote:
        (start-file-process "grep" (get-buffer-create "*grep*")
                            "/bin/sh" "-c" "grep -e tramp *"))
 
+   ‘process-file’ shall return either the exit code of the process, or a
+string describing the signal, when the process has been interrupted.
+Since it cannot be determined reliably whether a remote process has been
+interrupted, ‘process-file’ returns always the exit code.  When the user
+option ‘process-file-return-signal-string’ is non-nil, ‘process-file’
+regards all exit codes greater than 128 as an indication that the
+process has been interrupted, and returns a respective string.
+
    Remote processes do not apply to GVFS (see *note GVFS-based
 methods::) because the remote file system is mounted on the local host
 and TRAMP just accesses by changing the ‘default-directory’.
 
    TRAMP starts a remote process when a command is executed in a remote
 file or directory buffer.  As of now, these packages have been
-integrated to work with TRAMP: ‘compile.el’ (commands like ‘compile’ and
-‘grep’) and ‘gud.el’ (‘gdb’ or ‘perldb’).
+integrated to work with TRAMP: ‘shell.el’, ‘eshell.el’, ‘compile.el’
+(commands like ‘compile’ and ‘grep’) and ‘gud.el’ (‘gdb’ or ‘perldb’).
+
+   TRAMP always modifies the ‘INSIDE_EMACS’ environment variable for
+remote processes.  Per default, this environment variable shows the
+Emacs version.  TRAMP adds its own version string, so it looks like
+‘27.1,tramp:2.4.3.1’.  However, other packages might also add their name
+to this environment variable, like ‘27.1,comint,tramp:2.4.3.1’.
 
    For TRAMP to find the command on the remote, it must be accessible
 through the default search path as setup by TRAMP upon first connection.
@@ -2435,10 +2449,10 @@ variables in the previous section, these variables can 
be changed via
 connection-local variables.
 
    If Emacs supports the variable ‘async-shell-command-width’ (since
-Emacs 27.1), TRAMP cares about its value for asynchronous shell
-commands.  It specifies the number of display columns for command
-output.  For synchronous shell commands, a similar effect can be
-achieved by adding the environment variable ‘COLUMNS’ to
+Emacs 27), TRAMP cares about its value for asynchronous shell commands.
+It specifies the number of display columns for command output.  For
+synchronous shell commands, a similar effect can be achieved by adding
+the environment variable ‘COLUMNS’ to
 ‘tramp-remote-process-environment’.
 
 5.5.4 Running ‘eshell’ on a remote host
@@ -2749,7 +2763,7 @@ Even several suffixes in a row are possible, like
 ‘/path/to/dir/file.tar.gz.uu/dir/file’.
 
    An archive file name could be a remote file name, as in
-‘/ftp:anonymous@ftp.gnu.org:/gnu/tramp/tramp-2.3.2.tar.gz/INSTALL’.
+‘/ftp:anonymous@ftp.gnu.org:/gnu/tramp/tramp-2.4.3.tar.gz/INSTALL’.
 Since all file operations are mapped internally to GVFS operations,
 remote file names supported by ‘tramp-gvfs’ perform better, because no
 local copy of the file archive must be downloaded first.  For example,
@@ -2758,14 +2772,14 @@ local copy of the file archive must be downloaded 
first.  For example,
 for a complete list of ‘tramp-gvfs’ supported method names.
 
    If ‘url-handler-mode’ is enabled, archives could be visited via URLs,
-like ‘https://ftp.gnu.org/gnu/tramp/tramp-2.3.2.tar.gz/INSTALL’.  This
+like ‘https://ftp.gnu.org/gnu/tramp/tramp-2.4.3.tar.gz/INSTALL’.  This
 allows complex file operations like
 
      (progn
        (url-handler-mode 1)
        (ediff-directories
-        "https://ftp.gnu.org/gnu/tramp/tramp-2.3.1.tar.gz/tramp-2.3.1";
-        "https://ftp.gnu.org/gnu/tramp/tramp-2.3.2.tar.gz/tramp-2.3.2"; ""))
+        "https://ftp.gnu.org/gnu/tramp/tramp-2.4.2.tar.gz/tramp-2.4.2";
+        "https://ftp.gnu.org/gnu/tramp/tramp-2.4.3.tar.gz/tramp-2.4.3"; ""))
 
    It is even possible to access file archives in file archives, as
 
@@ -4157,7 +4171,7 @@ Variable Index
 * Menu:
 
 * ange-ftp-netrc-filename:               Password handling.   (line  39)
-* async-shell-command-width:             Remote processes.    (line 165)
+* async-shell-command-width:             Remote processes.    (line 179)
 * auth-source-debug:                     Password handling.   (line  37)
 * auth-source-save-behavior:             Password handling.   (line  31)
 * auth-sources:                          Password handling.   (line  15)
@@ -4165,31 +4179,33 @@ Variable Index
                                                               (line  58)
 * backup-directory-alist:                Auto-save and Backup.
                                                               (line   6)
-* COLUMNS, environment variable:         Remote processes.    (line 165)
+* COLUMNS, environment variable:         Remote processes.    (line 179)
 * customize-package-emacs-version-alist: Obtaining TRAMP.     (line  20)
-* DISPLAY, environment variable:         Remote processes.    (line  93)
+* DISPLAY, environment variable:         Remote processes.    (line 107)
 * EDITOR, environment variable:          Frequently Asked Questions.
                                                               (line 570)
-* ENV, environment variable:             Remote processes.    (line  64)
+* ENV, environment variable:             Remote processes.    (line  78)
 * ESHELL, environment variable:          Remote shell setup.  (line 187)
-* HGPLAIN, environment variable:         Remote processes.    (line  82)
+* HGPLAIN, environment variable:         Remote processes.    (line  96)
 * HISTFILE, environment variable:        Frequently Asked Questions.
                                                               (line 311)
 * HISTFILESIZE, environment variable:    Frequently Asked Questions.
                                                               (line 311)
-* HISTORY, environment variable:         Remote processes.    (line  52)
+* HISTORY, environment variable:         Remote processes.    (line  66)
 * HISTSIZE, environment variable:        Frequently Asked Questions.
                                                               (line 311)
 * INSIDE_EMACS, environment variable:    Remote shell setup.  (line 104)
 * INSIDE_EMACS, environment variable <1>: Remote shell setup. (line 187)
+* INSIDE_EMACS, environment variable <2>: Remote processes.   (line  38)
 * non-essential:                         External packages.   (line   9)
 * password-cache:                        Password handling.   (line  57)
 * password-cache-expiry:                 Password handling.   (line  52)
 * PATH, environment variable:            External methods.    (line 185)
+* process-file-return-signal-string:     Remote processes.    (line  21)
 * remote-file-name-inhibit-cache:        Frequently Asked Questions.
                                                               (line  40)
-* shell-command-switch:                  Remote processes.    (line 158)
-* shell-file-name:                       Remote processes.    (line 158)
+* shell-command-switch:                  Remote processes.    (line 172)
+* shell-file-name:                       Remote processes.    (line 172)
 * SHELLNAME, environment variable:       Remote shell setup.  (line 187)
 * SSH_AUTH_SOCK, environment variable:   Windows setup hints. (line  29)
 * TERM, environment variable:            Remote shell setup.  (line  90)
@@ -4246,7 +4262,7 @@ Variable Index
 * tramp-rclone-program:                  External methods.    (line 215)
 * tramp-remote-coding-commands:          Inline methods.      (line  16)
 * tramp-remote-path:                     Remote programs.     (line  15)
-* tramp-remote-process-environment:      Remote processes.    (line  38)
+* tramp-remote-process-environment:      Remote processes.    (line  52)
 * tramp-restricted-shell-hosts-alist:    Multi-hops.          (line  84)
 * tramp-save-ad-hoc-proxies:             Ad-hoc multi-hops.   (line  29)
 * tramp-sh-extra-args:                   Remote shell setup.  (line  22)
@@ -4330,7 +4346,7 @@ Concept Index
 * details of operation:                  Overview.            (line  44)
 * doas method:                           Inline methods.      (line  68)
 * docker method:                         Customizing Methods. (line  15)
-* eshell:                                Remote processes.    (line 175)
+* eshell:                                Remote processes.    (line 189)
 * exe file archive suffix:               Archive file names.  (line  47)
 * external methods:                      External methods.    (line   6)
 * fakecygpty and cygwin:                 Windows setup hints. (line  17)
@@ -4386,7 +4402,7 @@ Concept Index
 * fsh (with fcp method):                 External methods.    (line  76)
 * fsh method:                            External methods.    (line  86)
 * ftp method:                            External methods.    (line 118)
-* gdb:                                   Remote processes.    (line 208)
+* gdb:                                   Remote processes.    (line 222)
 * gdrive method:                         Quick Start Guide.   (line 104)
 * gdrive method <1>:                     GVFS-based methods.  (line  34)
 * git method:                            Customizing Methods. (line  37)
@@ -4395,7 +4411,7 @@ Concept Index
 * GNU ELPA:                              Obtaining TRAMP.     (line   6)
 * google drive:                          Quick Start Guide.   (line 104)
 * google drive <1>:                      GVFS-based methods.  (line  34)
-* gud.el:                                Remote processes.    (line 208)
+* gud.el:                                Remote processes.    (line 222)
 * gvfs-based methods:                    Quick Start Guide.   (line  95)
 * gvfs-based methods <1>:                GVFS-based methods.  (line   6)
 * hdfs method:                           Customizing Methods. (line  43)
@@ -4501,14 +4517,14 @@ Concept Index
 * overview:                              Overview.            (line   6)
 * passwords:                             Password handling.   (line   6)
 * pax file archive suffix:               Archive file names.  (line  62)
-* perldb:                                Remote processes.    (line 208)
+* perldb:                                Remote processes.    (line 222)
 * plink (with pscp method):              External methods.    (line  62)
 * plink (with psftp method):             External methods.    (line  62)
 * plink method:                          Quick Start Guide.   (line  44)
 * plink method <1>:                      Quick Start Guide.   (line  68)
 * plink method <2>:                      Inline methods.      (line 111)
 * plinkx method:                         Inline methods.      (line 123)
-* powershell:                            Remote processes.    (line 239)
+* powershell:                            Remote processes.    (line 253)
 * proxy hosts:                           Multi-hops.          (line   6)
 * proxy hosts, ad-hoc:                   Ad-hoc multi-hops.   (line   6)
 * proxy hosts, http tunnel:              Firewalls.           (line   6)
@@ -4541,9 +4557,9 @@ Concept Index
 * sg method:                             Quick Start Guide.   (line  56)
 * sg method <1>:                         Inline methods.      (line  74)
 * shar file archive suffix:              Archive file names.  (line  68)
-* shell:                                 Remote processes.    (line 112)
+* shell:                                 Remote processes.    (line 126)
 * shell init files:                      Remote shell setup.  (line  38)
-* shell-command:                         Remote processes.    (line 146)
+* shell-command:                         Remote processes.    (line 160)
 * simplified syntax:                     Change file name syntax.
                                                               (line  14)
 * smb method:                            Quick Start Guide.   (line  87)
@@ -4586,7 +4602,7 @@ Concept Index
 * uu encoding:                           Inline methods.      (line  16)
 * vagrant method:                        Customizing Methods. (line  48)
 * warc file archive suffix:              Archive file names.  (line  73)
-* winexe:                                Remote processes.    (line 239)
+* winexe:                                Remote processes.    (line 253)
 * xar file archive suffix:               Archive file names.  (line  75)
 * xpi file archive suffix:               Archive file names.  (line  77)
 * xps file archive suffix:               Archive file names.  (line  79)
@@ -4639,20 +4655,20 @@ Node: Change file name syntax89143
 Node: File name completion90574
 Node: Ad-hoc multi-hops93729
 Node: Remote processes95795
-Ref: Running a debugger on a remote host104553
-Node: Cleanup remote connections106523
-Node: Renaming remote files108224
-Node: Archive file names112443
-Node: Bug Reports116957
-Node: Frequently Asked Questions119698
-Node: Files directories and localnames144063
-Node: Localname deconstruction144499
-Node: External packages145152
-Node: Traces and Profiles147197
-Node: GNU Free Documentation License149166
-Node: Function Index174539
-Node: Variable Index177417
-Node: Concept Index185241
+Ref: Running a debugger on a remote host105442
+Node: Cleanup remote connections107412
+Node: Renaming remote files109113
+Node: Archive file names113332
+Node: Bug Reports117846
+Node: Frequently Asked Questions120587
+Node: Files directories and localnames144952
+Node: Localname deconstruction145388
+Node: External packages146041
+Node: Traces and Profiles148086
+Node: GNU Free Documentation License150055
+Node: Function Index175428
+Node: Variable Index178306
+Node: Concept Index186276
 
 End Tag Table
 
diff --git a/trampver.el b/trampver.el
index 319aadb..46a9d64 100644
--- a/trampver.el
+++ b/trampver.el
@@ -39,7 +39,7 @@
 (defvar inhibit-message)
 
 ;;;###tramp-autoload
-(defconst tramp-version "2.4.3.4"
+(defconst tramp-version "2.4.3.5"
   "This version of Tramp.")
 
 ;;;###tramp-autoload
@@ -75,7 +75,7 @@
 ;; Check for Emacs version.
 (let ((x   (if (not (string-lessp emacs-version "24.4"))
       "ok"
-    (format "Tramp 2.4.3.4 is not fit for %s"
+    (format "Tramp 2.4.3.5 is not fit for %s"
             (replace-regexp-in-string "\n" "" (emacs-version))))))
   (unless (string-equal "ok" x) (error "%s" x)))
 



reply via email to

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