diff options
| author | Michael Albinus | 2020-01-06 12:11:53 +0100 |
|---|---|---|
| committer | Michael Albinus | 2020-01-06 12:11:53 +0100 |
| commit | 823ce3aaf928092f3cf1a46f627337edd04f9989 (patch) | |
| tree | 29c9e95a87328f76d1c827edebccb171afe3b6a4 | |
| parent | 35d569482567acffc992e1c8113ea1eb713dde52 (diff) | |
| download | emacs-823ce3aaf928092f3cf1a46f627337edd04f9989.tar.gz emacs-823ce3aaf928092f3cf1a46f627337edd04f9989.zip | |
; Sync with Tramp repository
* doc/misc/tramp.texi (Frequently Asked Questions): Mention Emacs 28.
* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.4.4-pre".
* lisp/net/tramp-adb.el (tramp-adb-handle-copy-file)
(tramp-adb-handle-rename-file, tramp-adb-handle-process-file):
Use `tramp-file-local-name'.
(tramp-adb-handle-exec-path): Expand `default-directory'.
* lisp/net/tramp-cmds.el (tramp-rename-files):
Use `tramp-file-local-name'.
* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
(tramp-do-copy-or-rename-file-directly)
(tramp-sh-handle-process-file, tramp-set-remote-path)
(tramp-find-inline-encoding, tramp-get-remote-touch):
Use `tramp-file-local-name'.
(tramp-sh-handle-make-process): Support `stderr' as file name.
Delete temporary stderr file.
(tramp-sh-handle-exec-path): Expand `default-directory'.
* lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link)
(tramp-smb-handle-process-file): Use `tramp-file-local-name'.
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file)
(tramp-sudoedit-handle-set-file-uid-gid):
Use `tramp-unquote-file-local-name'.
(tramp-sudoedit-handle-make-symbolic-link):
Use `tramp-file-local-name'.
(tramp-sudoedit-handle-file-system-info): Fix a scoping error.
* lisp/net/tramp.el: Bump version to 2.4.4-pre.
(tramp-ignored-file-name-regexp, tramp-time-dont-know)
(tramp-time-doesnt-exist): Fix typo.
(tramp-file-local-name): Extend for non-remote file names.
(tramp-unquote-file-local-name): New defun.
(tramp-completion-make-tramp-file-name): Simplify.
(tramp-set-connection-local-variables-for-buffer)
(tramp-equal-remote, tramp-handle-make-auto-save-file-name):
Use `tramp-tramp-file-p'.
(tramp-handle-file-name-case-insensitive-p)
(tramp-handle-file-truename, tramp-get-remote-tmpdir)
(tramp-make-tramp-temp-file): Use `tramp-file-local-name'.
(tramp-handle-shell-command, tramp-handle-start-file-process):
Implement asynchronous `error-buffer'.
| -rw-r--r-- | doc/misc/tramp.texi | 4 | ||||
| -rw-r--r-- | doc/misc/trampver.texi | 2 | ||||
| -rw-r--r-- | lisp/net/tramp-adb.el | 15 | ||||
| -rw-r--r-- | lisp/net/tramp-cmds.el | 2 | ||||
| -rw-r--r-- | lisp/net/tramp-compat.el | 1 | ||||
| -rw-r--r-- | lisp/net/tramp-rclone.el | 2 | ||||
| -rw-r--r-- | lisp/net/tramp-sh.el | 61 | ||||
| -rw-r--r-- | lisp/net/tramp-smb.el | 6 | ||||
| -rw-r--r-- | lisp/net/tramp-sudoedit.el | 13 | ||||
| -rw-r--r-- | lisp/net/tramp.el | 76 | ||||
| -rw-r--r-- | lisp/net/trampver.el | 4 |
11 files changed, 108 insertions, 78 deletions
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index f81d996d73a..049b240b602 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -3840,8 +3840,8 @@ Where is the latest @value{tramp}? | |||
| 3840 | @item | 3840 | @item |
| 3841 | Which systems does it work on? | 3841 | Which systems does it work on? |
| 3842 | 3842 | ||
| 3843 | The package works successfully on Emacs 24, Emacs 25, Emacs 26, and | 3843 | The package works successfully on Emacs 24, Emacs 25, Emacs 26, Emacs |
| 3844 | Emacs 27. | 3844 | 27, and Emacs 28. |
| 3845 | 3845 | ||
| 3846 | While Unix and Unix-like systems are the primary remote targets, | 3846 | While Unix and Unix-like systems are the primary remote targets, |
| 3847 | @value{tramp} has equal success connecting to other platforms, such as | 3847 | @value{tramp} has equal success connecting to other platforms, such as |
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi index 478ec7037a8..02a99ebde83 100644 --- a/doc/misc/trampver.texi +++ b/doc/misc/trampver.texi | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | @c In the Tramp GIT, the version numbers are auto-frobbed from | 8 | @c In the Tramp GIT, the version numbers are auto-frobbed from |
| 9 | @c tramp.el, and the bug report address is auto-frobbed from | 9 | @c tramp.el, and the bug report address is auto-frobbed from |
| 10 | @c configure.ac. | 10 | @c configure.ac. |
| 11 | @set trampver 2.4.3.27.1 | 11 | @set trampver 2.4.4-pre |
| 12 | @set tramp-bug-report-address tramp-devel@@gnu.org | 12 | @set tramp-bug-report-address tramp-devel@@gnu.org |
| 13 | @set emacsver 24.4 | 13 | @set emacsver 24.4 |
| 14 | 14 | ||
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el index 5cfcb81708f..1be2d16bcb1 100644 --- a/lisp/net/tramp-adb.el +++ b/lisp/net/tramp-adb.el | |||
| @@ -725,8 +725,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored." | |||
| 725 | (with-tramp-progress-reporter | 725 | (with-tramp-progress-reporter |
| 726 | v 0 (format "Copying %s to %s" filename newname) | 726 | v 0 (format "Copying %s to %s" filename newname) |
| 727 | (if (and t1 t2 (tramp-equal-remote filename newname)) | 727 | (if (and t1 t2 (tramp-equal-remote filename newname)) |
| 728 | (let ((l1 (tramp-compat-file-local-name filename)) | 728 | (let ((l1 (tramp-file-local-name filename)) |
| 729 | (l2 (tramp-compat-file-local-name newname))) | 729 | (l2 (tramp-file-local-name newname))) |
| 730 | ;; We must also flush the cache of the directory, | 730 | ;; We must also flush the cache of the directory, |
| 731 | ;; because `file-attributes' reads the values from | 731 | ;; because `file-attributes' reads the values from |
| 732 | ;; there. | 732 | ;; there. |
| @@ -809,8 +809,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored." | |||
| 809 | (if (and t1 t2 | 809 | (if (and t1 t2 |
| 810 | (tramp-equal-remote filename newname) | 810 | (tramp-equal-remote filename newname) |
| 811 | (not (file-directory-p filename))) | 811 | (not (file-directory-p filename))) |
| 812 | (let ((l1 (tramp-compat-file-local-name filename)) | 812 | (let ((l1 (tramp-file-local-name filename)) |
| 813 | (l2 (tramp-compat-file-local-name newname))) | 813 | (l2 (tramp-file-local-name newname))) |
| 814 | ;; We must also flush the cache of the directory, because | 814 | ;; We must also flush the cache of the directory, because |
| 815 | ;; `file-attributes' reads the values from there. | 815 | ;; `file-attributes' reads the values from there. |
| 816 | (tramp-flush-file-properties v l1) | 816 | (tramp-flush-file-properties v l1) |
| @@ -846,7 +846,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored." | |||
| 846 | (setq infile (expand-file-name infile)) | 846 | (setq infile (expand-file-name infile)) |
| 847 | (if (tramp-equal-remote default-directory infile) | 847 | (if (tramp-equal-remote default-directory infile) |
| 848 | ;; INFILE is on the same remote host. | 848 | ;; INFILE is on the same remote host. |
| 849 | (setq input (with-parsed-tramp-file-name infile nil localname)) | 849 | (setq input (tramp-file-local-name infile)) |
| 850 | ;; INFILE must be copied to remote host. | 850 | ;; INFILE must be copied to remote host. |
| 851 | (setq input (tramp-make-tramp-temp-file v) | 851 | (setq input (tramp-make-tramp-temp-file v) |
| 852 | tmpinput (tramp-make-tramp-file-name v input)) | 852 | tmpinput (tramp-make-tramp-file-name v input)) |
| @@ -877,8 +877,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored." | |||
| 877 | (setcar (cdr destination) (expand-file-name (cadr destination))) | 877 | (setcar (cdr destination) (expand-file-name (cadr destination))) |
| 878 | (if (tramp-equal-remote default-directory (cadr destination)) | 878 | (if (tramp-equal-remote default-directory (cadr destination)) |
| 879 | ;; stderr is on the same remote host. | 879 | ;; stderr is on the same remote host. |
| 880 | (setq stderr (with-parsed-tramp-file-name | 880 | (setq stderr (tramp-file-local-name (cadr destination))) |
| 881 | (cadr destination) nil localname)) | ||
| 882 | ;; stderr must be copied to remote host. The temporary | 881 | ;; stderr must be copied to remote host. The temporary |
| 883 | ;; file must be deleted after execution. | 882 | ;; file must be deleted after execution. |
| 884 | (setq stderr (tramp-make-tramp-temp-file v) | 883 | (setq stderr (tramp-make-tramp-temp-file v) |
| @@ -1062,7 +1061,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored." | |||
| 1062 | (read (current-buffer))) | 1061 | (read (current-buffer))) |
| 1063 | ":" 'omit))) | 1062 | ":" 'omit))) |
| 1064 | ;; The equivalent to `exec-directory'. | 1063 | ;; The equivalent to `exec-directory'. |
| 1065 | `(,(tramp-compat-file-local-name default-directory)))) | 1064 | `(,(tramp-file-local-name (expand-file-name default-directory))))) |
| 1066 | 1065 | ||
| 1067 | (defun tramp-adb-get-device (vec) | 1066 | (defun tramp-adb-get-device (vec) |
| 1068 | "Return full host name from VEC to be used in shell execution. | 1067 | "Return full host name from VEC to be used in shell execution. |
diff --git a/lisp/net/tramp-cmds.el b/lisp/net/tramp-cmds.el index 9d1025b9072..b4dca2321c1 100644 --- a/lisp/net/tramp-cmds.el +++ b/lisp/net/tramp-cmds.el | |||
| @@ -358,7 +358,7 @@ The remote connection identified by SOURCE is flushed by | |||
| 358 | 358 | ||
| 359 | ;; Append local file name if none is specified. | 359 | ;; Append local file name if none is specified. |
| 360 | (when (string-equal (file-remote-p target) target) | 360 | (when (string-equal (file-remote-p target) target) |
| 361 | (setq target (concat target (file-remote-p source 'localname)))) | 361 | (setq target (concat target (tramp-file-local-name source)))) |
| 362 | ;; Make them directory names. | 362 | ;; Make them directory names. |
| 363 | (setq source (directory-file-name source) | 363 | (setq source (directory-file-name source) |
| 364 | target (directory-file-name target)) | 364 | target (directory-file-name target)) |
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index 723b8cfa1e3..3f25afedb99 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el | |||
| @@ -41,6 +41,7 @@ | |||
| 41 | (require 'shell) | 41 | (require 'shell) |
| 42 | (require 'subr-x) | 42 | (require 'subr-x) |
| 43 | 43 | ||
| 44 | ;; `temporary-file-directory' as function is introduced with Emacs 26.1. | ||
| 44 | (declare-function tramp-handle-temporary-file-directory "tramp") | 45 | (declare-function tramp-handle-temporary-file-directory "tramp") |
| 45 | 46 | ||
| 46 | ;; For not existing functions, obsolete functions, or functions with a | 47 | ;; For not existing functions, obsolete functions, or functions with a |
diff --git a/lisp/net/tramp-rclone.el b/lisp/net/tramp-rclone.el index 9f539850139..0d1ef0f0e91 100644 --- a/lisp/net/tramp-rclone.el +++ b/lisp/net/tramp-rclone.el | |||
| @@ -564,7 +564,7 @@ connection if a previous connection has died for some reason." | |||
| 564 | ,(tramp-rclone-mount-point vec) | 564 | ,(tramp-rclone-mount-point vec) |
| 565 | ;; This could be nil. | 565 | ;; This could be nil. |
| 566 | ,(tramp-get-method-parameter vec 'tramp-mount-args)))) | 566 | ,(tramp-get-method-parameter vec 'tramp-mount-args)))) |
| 567 | (while (not (file-exists-p (tramp-make-tramp-file-name vec 'localname))) | 567 | (while (not (file-exists-p (tramp-make-tramp-file-name vec 'noloc))) |
| 568 | (tramp-cleanup-connection vec 'keep-debug 'keep-password)) | 568 | (tramp-cleanup-connection vec 'keep-debug 'keep-password)) |
| 569 | 569 | ||
| 570 | ;; Mark it as connected. | 570 | ;; Mark it as connected. |
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index af97328b3d3..6a83cfebfa8 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el | |||
| @@ -1051,9 +1051,7 @@ component is used as the target of the symlink." | |||
| 1051 | (let ((non-essential t)) | 1051 | (let ((non-essential t)) |
| 1052 | (when (and (tramp-tramp-file-p target) | 1052 | (when (and (tramp-tramp-file-p target) |
| 1053 | (tramp-file-name-equal-p v (tramp-dissect-file-name target))) | 1053 | (tramp-file-name-equal-p v (tramp-dissect-file-name target))) |
| 1054 | (setq target | 1054 | (setq target (tramp-file-local-name (expand-file-name target))))) |
| 1055 | (tramp-file-name-localname | ||
| 1056 | (tramp-dissect-file-name (expand-file-name target)))))) | ||
| 1057 | 1055 | ||
| 1058 | ;; If TARGET is still remote, quote it. | 1056 | ;; If TARGET is still remote, quote it. |
| 1059 | (if (tramp-tramp-file-p target) | 1057 | (if (tramp-tramp-file-p target) |
| @@ -2171,8 +2169,8 @@ the uid and gid from FILENAME." | |||
| 2171 | v 'file-error | 2169 | v 'file-error |
| 2172 | "Unknown operation `%s', must be `copy' or `rename'" | 2170 | "Unknown operation `%s', must be `copy' or `rename'" |
| 2173 | op)))) | 2171 | op)))) |
| 2174 | (localname1 (tramp-compat-file-local-name filename)) | 2172 | (localname1 (tramp-file-local-name filename)) |
| 2175 | (localname2 (tramp-compat-file-local-name newname)) | 2173 | (localname2 (tramp-file-local-name newname)) |
| 2176 | (prefix (file-remote-p (if t1 filename newname))) | 2174 | (prefix (file-remote-p (if t1 filename newname))) |
| 2177 | cmd-result) | 2175 | cmd-result) |
| 2178 | (when (and (eq op 'copy) (file-directory-p filename)) | 2176 | (when (and (eq op 'copy) (file-directory-p filename)) |
| @@ -2797,7 +2795,8 @@ the result will be a local, non-Tramp, file name." | |||
| 2797 | ;; this, its original contents must be saved, and restored once | 2795 | ;; this, its original contents must be saved, and restored once |
| 2798 | ;; connection has been setup. | 2796 | ;; connection has been setup. |
| 2799 | (defun tramp-sh-handle-make-process (&rest args) | 2797 | (defun tramp-sh-handle-make-process (&rest args) |
| 2800 | "Like `make-process' for Tramp files." | 2798 | "Like `make-process' for Tramp files. |
| 2799 | STDERR can also be a file name." | ||
| 2801 | (when args | 2800 | (when args |
| 2802 | (with-parsed-tramp-file-name (expand-file-name default-directory) nil | 2801 | (with-parsed-tramp-file-name (expand-file-name default-directory) nil |
| 2803 | (let ((name (plist-get args :name)) | 2802 | (let ((name (plist-get args :name)) |
| @@ -2829,14 +2828,21 @@ the result will be a local, non-Tramp, file name." | |||
| 2829 | (signal 'wrong-type-argument (list #'functionp sentinel))) | 2828 | (signal 'wrong-type-argument (list #'functionp sentinel))) |
| 2830 | (unless (or (null stderr) (bufferp stderr) (stringp stderr)) | 2829 | (unless (or (null stderr) (bufferp stderr) (stringp stderr)) |
| 2831 | (signal 'wrong-type-argument (list #'stringp stderr))) | 2830 | (signal 'wrong-type-argument (list #'stringp stderr))) |
| 2831 | (when (and (stringp stderr) (tramp-tramp-file-p stderr) | ||
| 2832 | (not (tramp-equal-remote default-directory stderr))) | ||
| 2833 | (signal 'file-error (list "Wrong stderr" stderr))) | ||
| 2832 | 2834 | ||
| 2833 | (let* ((buffer | 2835 | (let* ((buffer |
| 2834 | (if buffer | 2836 | (if buffer |
| 2835 | (get-buffer-create buffer) | 2837 | (get-buffer-create buffer) |
| 2836 | ;; BUFFER can be nil. We use a temporary buffer. | 2838 | ;; BUFFER can be nil. We use a temporary buffer. |
| 2837 | (generate-new-buffer tramp-temp-buffer-name))) | 2839 | (generate-new-buffer tramp-temp-buffer-name))) |
| 2838 | (stderr (and stderr (get-buffer-create stderr))) | 2840 | ;; STDERR can also be a file name. |
| 2839 | (tmpstderr (and stderr (tramp-make-tramp-temp-file v))) | 2841 | (tmpstderr |
| 2842 | (and stderr | ||
| 2843 | (if (and (stringp stderr) (tramp-tramp-file-p stderr)) | ||
| 2844 | (tramp-unquote-file-local-name stderr) | ||
| 2845 | (tramp-make-tramp-temp-file v)))) | ||
| 2840 | (program (car command)) | 2846 | (program (car command)) |
| 2841 | (args (cdr command)) | 2847 | (args (cdr command)) |
| 2842 | ;; When PROGRAM matches "*sh", and the first arg is | 2848 | ;; When PROGRAM matches "*sh", and the first arg is |
| @@ -2965,13 +2971,20 @@ the result will be a local, non-Tramp, file name." | |||
| 2965 | (ignore-errors | 2971 | (ignore-errors |
| 2966 | (set-process-query-on-exit-flag p (null noquery)) | 2972 | (set-process-query-on-exit-flag p (null noquery)) |
| 2967 | (set-marker (process-mark p) (point))) | 2973 | (set-marker (process-mark p) (point))) |
| 2974 | ;; Copy tmpstderr file. | ||
| 2975 | (when (and (stringp stderr) | ||
| 2976 | (not (tramp-tramp-file-p stderr))) | ||
| 2977 | (add-function | ||
| 2978 | :after (process-sentinel p) | ||
| 2979 | (lambda (_proc _msg) | ||
| 2980 | (rename-file | ||
| 2981 | (tramp-make-tramp-file-name v tmpstderr) stderr)))) | ||
| 2968 | ;; Provide error buffer. This shows only | 2982 | ;; Provide error buffer. This shows only |
| 2969 | ;; initial error messages; messages arriving | 2983 | ;; initial error messages; messages arriving |
| 2970 | ;; later on shall be inserted by `auto-revert'. | 2984 | ;; later on shall be inserted by `auto-revert'. |
| 2971 | ;; The temporary file will still be existing. | 2985 | ;; The temporary file will exist until the |
| 2972 | ;; TODO: Write a sentinel, which deletes the | 2986 | ;; process is deleted. |
| 2973 | ;; temporary file. | 2987 | (when (bufferp stderr) |
| 2974 | (when tmpstderr | ||
| 2975 | ;; We must flush them here already; otherwise | 2988 | ;; We must flush them here already; otherwise |
| 2976 | ;; `insert-file-contents' will fail. | 2989 | ;; `insert-file-contents' will fail. |
| 2977 | (tramp-flush-connection-property v "process-name") | 2990 | (tramp-flush-connection-property v "process-name") |
| @@ -2979,7 +2992,13 @@ the result will be a local, non-Tramp, file name." | |||
| 2979 | (with-current-buffer stderr | 2992 | (with-current-buffer stderr |
| 2980 | (insert-file-contents | 2993 | (insert-file-contents |
| 2981 | (tramp-make-tramp-file-name v tmpstderr) 'visit) | 2994 | (tramp-make-tramp-file-name v tmpstderr) 'visit) |
| 2982 | (auto-revert-mode))) | 2995 | (auto-revert-mode)) |
| 2996 | ;; Delete tmpstderr file. | ||
| 2997 | (add-function | ||
| 2998 | :after (process-sentinel p) | ||
| 2999 | (lambda (_proc _msg) | ||
| 3000 | (delete-file | ||
| 3001 | (tramp-make-tramp-file-name v tmpstderr))))) | ||
| 2983 | ;; Return process. | 3002 | ;; Return process. |
| 2984 | p))) | 3003 | p))) |
| 2985 | 3004 | ||
| @@ -3028,7 +3047,7 @@ the result will be a local, non-Tramp, file name." | |||
| 3028 | (setq infile (expand-file-name infile)) | 3047 | (setq infile (expand-file-name infile)) |
| 3029 | (if (tramp-equal-remote default-directory infile) | 3048 | (if (tramp-equal-remote default-directory infile) |
| 3030 | ;; INFILE is on the same remote host. | 3049 | ;; INFILE is on the same remote host. |
| 3031 | (setq input (with-parsed-tramp-file-name infile nil localname)) | 3050 | (setq input (tramp-file-local-name infile)) |
| 3032 | ;; INFILE must be copied to remote host. | 3051 | ;; INFILE must be copied to remote host. |
| 3033 | (setq input (tramp-make-tramp-temp-file v) | 3052 | (setq input (tramp-make-tramp-temp-file v) |
| 3034 | tmpinput (tramp-make-tramp-file-name v input 'nohop)) | 3053 | tmpinput (tramp-make-tramp-file-name v input 'nohop)) |
| @@ -3059,8 +3078,7 @@ the result will be a local, non-Tramp, file name." | |||
| 3059 | (setcar (cdr destination) (expand-file-name (cadr destination))) | 3078 | (setcar (cdr destination) (expand-file-name (cadr destination))) |
| 3060 | (if (tramp-equal-remote default-directory (cadr destination)) | 3079 | (if (tramp-equal-remote default-directory (cadr destination)) |
| 3061 | ;; stderr is on the same remote host. | 3080 | ;; stderr is on the same remote host. |
| 3062 | (setq stderr (with-parsed-tramp-file-name | 3081 | (setq stderr (tramp-file-local-name (cadr destination))) |
| 3063 | (cadr destination) nil localname)) | ||
| 3064 | ;; stderr must be copied to remote host. The temporary | 3082 | ;; stderr must be copied to remote host. The temporary |
| 3065 | ;; file must be deleted after execution. | 3083 | ;; file must be deleted after execution. |
| 3066 | (setq stderr (tramp-make-tramp-temp-file v) | 3084 | (setq stderr (tramp-make-tramp-temp-file v) |
| @@ -3122,7 +3140,7 @@ the result will be a local, non-Tramp, file name." | |||
| 3122 | (append | 3140 | (append |
| 3123 | (tramp-get-remote-path (tramp-dissect-file-name default-directory)) | 3141 | (tramp-get-remote-path (tramp-dissect-file-name default-directory)) |
| 3124 | ;; The equivalent to `exec-directory'. | 3142 | ;; The equivalent to `exec-directory'. |
| 3125 | `(,(tramp-compat-file-local-name default-directory)))) | 3143 | `(,(tramp-file-local-name (expand-file-name default-directory))))) |
| 3126 | 3144 | ||
| 3127 | (defun tramp-sh-handle-file-local-copy (filename) | 3145 | (defun tramp-sh-handle-file-local-copy (filename) |
| 3128 | "Like `file-local-copy' for Tramp files." | 3146 | "Like `file-local-copy' for Tramp files." |
| @@ -3995,8 +4013,7 @@ variable PATH." | |||
| 3995 | (setq tmpfile | 4013 | (setq tmpfile |
| 3996 | (tramp-make-tramp-file-name vec (tramp-make-tramp-temp-file vec))) | 4014 | (tramp-make-tramp-file-name vec (tramp-make-tramp-temp-file vec))) |
| 3997 | (write-region command nil tmpfile) | 4015 | (write-region command nil tmpfile) |
| 3998 | (tramp-send-command | 4016 | (tramp-send-command vec (format ". %s" (tramp-file-local-name tmpfile))) |
| 3999 | vec (format ". %s" (tramp-compat-file-local-name tmpfile))) | ||
| 4000 | (delete-file tmpfile)))) | 4017 | (delete-file tmpfile)))) |
| 4001 | 4018 | ||
| 4002 | ;; ------------------------------------------------------------ | 4019 | ;; ------------------------------------------------------------ |
| @@ -4513,7 +4530,7 @@ Goes through the list `tramp-local-coding-commands' and | |||
| 4513 | (format-spec | 4530 | (format-spec |
| 4514 | value | 4531 | value |
| 4515 | (format-spec-make | 4532 | (format-spec-make |
| 4516 | ?t (tramp-compat-file-local-name tmpfile))))) | 4533 | ?t (tramp-file-local-name tmpfile))))) |
| 4517 | (tramp-maybe-send-script vec value name) | 4534 | (tramp-maybe-send-script vec value name) |
| 4518 | (setq rem-dec name))) | 4535 | (setq rem-dec name))) |
| 4519 | (tramp-message | 4536 | (tramp-message |
| @@ -4796,7 +4813,7 @@ If there is just some editing, retry it after 5 seconds." | |||
| 4796 | vec 5 "Cannot timeout session, trying it again in %s seconds." 5) | 4813 | vec 5 "Cannot timeout session, trying it again in %s seconds." 5) |
| 4797 | (run-at-time 5 nil 'tramp-timeout-session vec)) | 4814 | (run-at-time 5 nil 'tramp-timeout-session vec)) |
| 4798 | (tramp-message | 4815 | (tramp-message |
| 4799 | vec 3 "Timeout session %s" (tramp-make-tramp-file-name vec 'localname)) | 4816 | vec 3 "Timeout session %s" (tramp-make-tramp-file-name vec 'noloc)) |
| 4800 | (tramp-cleanup-connection vec 'keep-debug))) | 4817 | (tramp-cleanup-connection vec 'keep-debug))) |
| 4801 | 4818 | ||
| 4802 | (defun tramp-maybe-open-connection (vec) | 4819 | (defun tramp-maybe-open-connection (vec) |
| @@ -5594,7 +5611,7 @@ This command is returned only if `delete-by-moving-to-trash' is non-nil." | |||
| 5594 | "%s -t %s %s" | 5611 | "%s -t %s %s" |
| 5595 | result | 5612 | result |
| 5596 | (format-time-string "%Y%m%d%H%M.%S") | 5613 | (format-time-string "%Y%m%d%H%M.%S") |
| 5597 | (tramp-compat-file-local-name tmpfile)))) | 5614 | (tramp-file-local-name tmpfile)))) |
| 5598 | (delete-file tmpfile)) | 5615 | (delete-file tmpfile)) |
| 5599 | result))) | 5616 | result))) |
| 5600 | 5617 | ||
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index bf77ab9dee8..d233af124e8 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el | |||
| @@ -1188,9 +1188,7 @@ component is used as the target of the symlink." | |||
| 1188 | (let ((non-essential t)) | 1188 | (let ((non-essential t)) |
| 1189 | (when (and (tramp-tramp-file-p target) | 1189 | (when (and (tramp-tramp-file-p target) |
| 1190 | (tramp-file-name-equal-p v (tramp-dissect-file-name target))) | 1190 | (tramp-file-name-equal-p v (tramp-dissect-file-name target))) |
| 1191 | (setq target | 1191 | (setq target (tramp-file-local-name (expand-file-name target))))) |
| 1192 | (tramp-file-name-localname | ||
| 1193 | (tramp-dissect-file-name (expand-file-name target)))))) | ||
| 1194 | 1192 | ||
| 1195 | ;; If TARGET is still remote, quote it. | 1193 | ;; If TARGET is still remote, quote it. |
| 1196 | (if (tramp-tramp-file-p target) | 1194 | (if (tramp-tramp-file-p target) |
| @@ -1244,7 +1242,7 @@ component is used as the target of the symlink." | |||
| 1244 | (setq infile (expand-file-name infile)) | 1242 | (setq infile (expand-file-name infile)) |
| 1245 | (if (tramp-equal-remote default-directory infile) | 1243 | (if (tramp-equal-remote default-directory infile) |
| 1246 | ;; INFILE is on the same remote host. | 1244 | ;; INFILE is on the same remote host. |
| 1247 | (setq input (with-parsed-tramp-file-name infile nil localname)) | 1245 | (setq input (tramp-file-local-name infile)) |
| 1248 | ;; INFILE must be copied to remote host. | 1246 | ;; INFILE must be copied to remote host. |
| 1249 | (setq input (tramp-make-tramp-temp-file v) | 1247 | (setq input (tramp-make-tramp-temp-file v) |
| 1250 | tmpinput (tramp-make-tramp-file-name v input)) | 1248 | tmpinput (tramp-make-tramp-file-name v input)) |
diff --git a/lisp/net/tramp-sudoedit.el b/lisp/net/tramp-sudoedit.el index 08188cefde3..e5590b8cf6c 100644 --- a/lisp/net/tramp-sudoedit.el +++ b/lisp/net/tramp-sudoedit.el | |||
| @@ -265,10 +265,8 @@ absolute file names." | |||
| 265 | v 0 (format "%s %s to %s" msg-operation filename newname) | 265 | v 0 (format "%s %s to %s" msg-operation filename newname) |
| 266 | (unless (tramp-sudoedit-send-command | 266 | (unless (tramp-sudoedit-send-command |
| 267 | v sudoedit-operation | 267 | v sudoedit-operation |
| 268 | (tramp-compat-file-name-unquote | 268 | (tramp-unquote-file-local-name filename) |
| 269 | (tramp-compat-file-local-name filename)) | 269 | (tramp-unquote-file-local-name newname)) |
| 270 | (tramp-compat-file-name-unquote | ||
| 271 | (tramp-compat-file-local-name newname))) | ||
| 272 | (tramp-error | 270 | (tramp-error |
| 273 | v 'file-error | 271 | v 'file-error |
| 274 | "Error %s `%s' `%s'" msg-operation filename newname)))) | 272 | "Error %s `%s' `%s'" msg-operation filename newname)))) |
| @@ -615,9 +613,7 @@ component is used as the target of the symlink." | |||
| 615 | (let ((non-essential t)) | 613 | (let ((non-essential t)) |
| 616 | (when (and (tramp-tramp-file-p target) | 614 | (when (and (tramp-tramp-file-p target) |
| 617 | (tramp-file-name-equal-p v (tramp-dissect-file-name target))) | 615 | (tramp-file-name-equal-p v (tramp-dissect-file-name target))) |
| 618 | (setq target | 616 | (setq target (tramp-file-local-name (expand-file-name target))))) |
| 619 | (tramp-file-name-localname | ||
| 620 | (tramp-dissect-file-name (expand-file-name target)))))) | ||
| 621 | 617 | ||
| 622 | ;; If TARGET is still remote, quote it. | 618 | ;; If TARGET is still remote, quote it. |
| 623 | (if (tramp-tramp-file-p target) | 619 | (if (tramp-tramp-file-p target) |
| @@ -715,8 +711,7 @@ ID-FORMAT valid values are `string' and `integer'." | |||
| 715 | (format "%d:%d" | 711 | (format "%d:%d" |
| 716 | (or uid (tramp-sudoedit-get-remote-uid v 'integer)) | 712 | (or uid (tramp-sudoedit-get-remote-uid v 'integer)) |
| 717 | (or gid (tramp-sudoedit-get-remote-gid v 'integer))) | 713 | (or gid (tramp-sudoedit-get-remote-gid v 'integer))) |
| 718 | (tramp-compat-file-name-unquote | 714 | (tramp-unquote-file-local-name filename)))) |
| 719 | (tramp-compat-file-local-name filename))))) | ||
| 720 | 715 | ||
| 721 | (defun tramp-sudoedit-handle-write-region | 716 | (defun tramp-sudoedit-handle-write-region |
| 722 | (start end filename &optional append visit lockname mustbenew) | 717 | (start end filename &optional append visit lockname mustbenew) |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 52c6a9ec430..22bac9ce459 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | ;; Maintainer: Michael Albinus <michael.albinus@gmx.de> | 7 | ;; Maintainer: Michael Albinus <michael.albinus@gmx.de> |
| 8 | ;; Keywords: comm, processes | 8 | ;; Keywords: comm, processes |
| 9 | ;; Package: tramp | 9 | ;; Package: tramp |
| 10 | ;; Version: 2.4.3 | 10 | ;; Version: 2.4.4-pre |
| 11 | ;; Package-Requires: ((emacs "24.4")) | 11 | ;; Package-Requires: ((emacs "24.4")) |
| 12 | ;; Package-Type: multi | 12 | ;; Package-Type: multi |
| 13 | ;; URL: https://savannah.gnu.org/projects/tramp | 13 | ;; URL: https://savannah.gnu.org/projects/tramp |
| @@ -1340,13 +1340,20 @@ entry does not exist, return nil." | |||
| 1340 | This function removes from NAME the specification of the remote | 1340 | This function removes from NAME the specification of the remote |
| 1341 | host and the method of accessing the host, leaving only the part | 1341 | host and the method of accessing the host, leaving only the part |
| 1342 | that identifies NAME locally on the remote system. NAME must be | 1342 | that identifies NAME locally on the remote system. NAME must be |
| 1343 | a string that matches `tramp-file-name-regexp'. The returned | 1343 | a string that matches `tramp-file-name-regexp'. If NAME does not |
| 1344 | file name can be used directly as argument of `process-file', | 1344 | match `tramp-file-name-regexp', just NAME is returned. The |
| 1345 | `start-file-process', or `shell-command'." | 1345 | returned file name can be used directly as argument of |
| 1346 | `process-file', `start-file-process', or `shell-command'." | ||
| 1346 | (save-match-data | 1347 | (save-match-data |
| 1347 | (and (tramp-tramp-file-p name) | 1348 | (or (and (tramp-tramp-file-p name) |
| 1348 | (string-match (nth 0 tramp-file-name-structure) name) | 1349 | (string-match (nth 0 tramp-file-name-structure) name) |
| 1349 | (match-string (nth 4 tramp-file-name-structure) name)))) | 1350 | (match-string (nth 4 tramp-file-name-structure) name)) |
| 1351 | name))) | ||
| 1352 | |||
| 1353 | ;; The localname can be quoted with "/:". Extract this. | ||
| 1354 | (defun tramp-unquote-file-local-name (name) | ||
| 1355 | "Return unquoted localname of NAME." | ||
| 1356 | (tramp-compat-file-name-unquote (tramp-file-local-name name))) | ||
| 1350 | 1357 | ||
| 1351 | (defun tramp-find-method (method user host) | 1358 | (defun tramp-find-method (method user host) |
| 1352 | "Return the right method string to use depending on USER and HOST. | 1359 | "Return the right method string to use depending on USER and HOST. |
| @@ -1593,7 +1600,7 @@ necessary only. This function will be used in file name completion." | |||
| 1593 | tramp-prefix-ipv6-format host tramp-postfix-ipv6-format) | 1600 | tramp-prefix-ipv6-format host tramp-postfix-ipv6-format) |
| 1594 | host) | 1601 | host) |
| 1595 | tramp-postfix-host-format)) | 1602 | tramp-postfix-host-format)) |
| 1596 | (when localname localname))) | 1603 | localname)) |
| 1597 | 1604 | ||
| 1598 | (defun tramp-get-buffer (vec &optional dont-create) | 1605 | (defun tramp-get-buffer (vec &optional dont-create) |
| 1599 | "Get the connection buffer to be used for VEC. | 1606 | "Get the connection buffer to be used for VEC. |
| @@ -1649,7 +1656,7 @@ version, the function does nothing." | |||
| 1649 | "Set connection-local variables in the current buffer. | 1656 | "Set connection-local variables in the current buffer. |
| 1650 | If connection-local variables are not supported by this Emacs | 1657 | If connection-local variables are not supported by this Emacs |
| 1651 | version, the function does nothing." | 1658 | version, the function does nothing." |
| 1652 | (when (file-remote-p default-directory) | 1659 | (when (tramp-tramp-file-p default-directory) |
| 1653 | ;; `hack-connection-local-variables-apply' exists since Emacs 26.1. | 1660 | ;; `hack-connection-local-variables-apply' exists since Emacs 26.1. |
| 1654 | (tramp-compat-funcall | 1661 | (tramp-compat-funcall |
| 1655 | 'hack-connection-local-variables-apply | 1662 | 'hack-connection-local-variables-apply |
| @@ -3248,7 +3255,7 @@ User is always nil." | |||
| 3248 | ;; lower case letters. This avoids us to create a | 3255 | ;; lower case letters. This avoids us to create a |
| 3249 | ;; temporary file. | 3256 | ;; temporary file. |
| 3250 | (while (and (string-match-p | 3257 | (while (and (string-match-p |
| 3251 | "[a-z]" (tramp-compat-file-local-name candidate)) | 3258 | "[a-z]" (tramp-file-local-name candidate)) |
| 3252 | (not (file-exists-p candidate))) | 3259 | (not (file-exists-p candidate))) |
| 3253 | (setq candidate | 3260 | (setq candidate |
| 3254 | (directory-file-name | 3261 | (directory-file-name |
| @@ -3258,8 +3265,7 @@ User is always nil." | |||
| 3258 | ;; to Emacs 26+ like `file-name-case-insensitive-p', | 3265 | ;; to Emacs 26+ like `file-name-case-insensitive-p', |
| 3259 | ;; so there is no compatibility problem calling it. | 3266 | ;; so there is no compatibility problem calling it. |
| 3260 | (unless | 3267 | (unless |
| 3261 | (string-match-p | 3268 | (string-match-p "[a-z]" (tramp-file-local-name candidate)) |
| 3262 | "[a-z]" (tramp-compat-file-local-name candidate)) | ||
| 3263 | (setq tmpfile | 3269 | (setq tmpfile |
| 3264 | (let ((default-directory | 3270 | (let ((default-directory |
| 3265 | (file-name-directory filename))) | 3271 | (file-name-directory filename))) |
| @@ -3272,7 +3278,7 @@ User is always nil." | |||
| 3272 | (file-exists-p | 3278 | (file-exists-p |
| 3273 | (concat | 3279 | (concat |
| 3274 | (file-remote-p candidate) | 3280 | (file-remote-p candidate) |
| 3275 | (upcase (tramp-compat-file-local-name candidate)))) | 3281 | (upcase (tramp-file-local-name candidate)))) |
| 3276 | ;; Cleanup. | 3282 | ;; Cleanup. |
| 3277 | (when tmpfile (delete-file tmpfile))))))))))) | 3283 | (when tmpfile (delete-file tmpfile))))))))))) |
| 3278 | 3284 | ||
| @@ -3414,7 +3420,7 @@ User is always nil." | |||
| 3414 | (tramp-error | 3420 | (tramp-error |
| 3415 | v1 'file-error | 3421 | v1 'file-error |
| 3416 | "Maximum number (%d) of symlinks exceeded" numchase-limit))) | 3422 | "Maximum number (%d) of symlinks exceeded" numchase-limit))) |
| 3417 | (tramp-compat-file-local-name (directory-file-name result))))))))) | 3423 | (tramp-file-local-name (directory-file-name result))))))))) |
| 3418 | 3424 | ||
| 3419 | (defun tramp-handle-file-writable-p (filename) | 3425 | (defun tramp-handle-file-writable-p (filename) |
| 3420 | "Like `file-writable-p' for Tramp files." | 3426 | "Like `file-writable-p' for Tramp files." |
| @@ -3699,7 +3705,7 @@ support symbolic links." | |||
| 3699 | (rename-uniquely)) | 3705 | (rename-uniquely)) |
| 3700 | (setq output-buffer (get-buffer-create bname))))) | 3706 | (setq output-buffer (get-buffer-create bname))))) |
| 3701 | 3707 | ||
| 3702 | (setq buffer (if (and (not asynchronous) error-buffer) | 3708 | (setq buffer (if error-buffer |
| 3703 | (with-parsed-tramp-file-name default-directory nil | 3709 | (with-parsed-tramp-file-name default-directory nil |
| 3704 | (list output-buffer | 3710 | (list output-buffer |
| 3705 | (tramp-make-tramp-file-name | 3711 | (tramp-make-tramp-file-name |
| @@ -3727,13 +3733,24 @@ support symbolic links." | |||
| 3727 | ;; Run the process. | 3733 | ;; Run the process. |
| 3728 | (setq p (start-file-process-shell-command | 3734 | (setq p (start-file-process-shell-command |
| 3729 | (buffer-name output-buffer) buffer command)) | 3735 | (buffer-name output-buffer) buffer command)) |
| 3730 | ;; Display output. | 3736 | (if (process-live-p p) |
| 3731 | (with-current-buffer output-buffer | 3737 | ;; Display output. |
| 3732 | (display-buffer output-buffer '(nil (allow-no-window . t))) | 3738 | (with-current-buffer output-buffer |
| 3733 | (setq mode-line-process '(":%s")) | 3739 | (display-buffer output-buffer '(nil (allow-no-window . t))) |
| 3734 | (shell-mode) | 3740 | (setq mode-line-process '(":%s")) |
| 3735 | (set-process-sentinel p #'shell-command-sentinel) | 3741 | (shell-mode) |
| 3736 | (set-process-filter p #'comint-output-filter)))) | 3742 | (set-process-filter p #'comint-output-filter) |
| 3743 | (set-process-sentinel | ||
| 3744 | p (if (listp buffer) | ||
| 3745 | (lambda (_proc _string) | ||
| 3746 | (with-current-buffer error-buffer | ||
| 3747 | (insert-file-contents (cadr buffer))) | ||
| 3748 | (delete-file (cadr buffer))) | ||
| 3749 | #'shell-command-sentinel))) | ||
| 3750 | ;; Show stderr. | ||
| 3751 | (with-current-buffer error-buffer | ||
| 3752 | (insert-file-contents (cadr buffer))) | ||
| 3753 | (delete-file (cadr buffer))))) | ||
| 3737 | 3754 | ||
| 3738 | (prog1 | 3755 | (prog1 |
| 3739 | ;; Run the process. | 3756 | ;; Run the process. |
| @@ -3756,13 +3773,16 @@ support symbolic links." | |||
| 3756 | (display-message-or-buffer output-buffer))))))) | 3773 | (display-message-or-buffer output-buffer))))))) |
| 3757 | 3774 | ||
| 3758 | (defun tramp-handle-start-file-process (name buffer program &rest args) | 3775 | (defun tramp-handle-start-file-process (name buffer program &rest args) |
| 3759 | "Like `start-file-process' for Tramp files." | 3776 | "Like `start-file-process' for Tramp files. |
| 3777 | BUFFER might be a list, in this case STDERR is separated." | ||
| 3760 | ;; `make-process' knows the `:file-handler' argument since Emacs 27.1 only. | 3778 | ;; `make-process' knows the `:file-handler' argument since Emacs 27.1 only. |
| 3761 | (tramp-file-name-handler | 3779 | (tramp-file-name-handler |
| 3762 | 'make-process | 3780 | 'make-process |
| 3763 | :name name | 3781 | :name name |
| 3764 | :buffer buffer | 3782 | :buffer (if (listp buffer) (car buffer) buffer) |
| 3765 | :command (and program (cons program args)) | 3783 | :command (and program (cons program args)) |
| 3784 | ;; `shell-command' adds an errfile to `buffer'. | ||
| 3785 | :stderr (when (listp buffer) (cadr buffer)) | ||
| 3766 | :noquery nil | 3786 | :noquery nil |
| 3767 | :file-handler t)) | 3787 | :file-handler t)) |
| 3768 | 3788 | ||
| @@ -4363,7 +4383,7 @@ would yield t. On the other hand, the following check results in nil: | |||
| 4363 | (tramp-equal-remote \"/sudo::/etc\" \"/su::/etc\") | 4383 | (tramp-equal-remote \"/sudo::/etc\" \"/su::/etc\") |
| 4364 | 4384 | ||
| 4365 | If both files are local, the function returns t." | 4385 | If both files are local, the function returns t." |
| 4366 | (or (and (null (file-remote-p file1)) (null (file-remote-p file2))) | 4386 | (or (and (null (tramp-tramp-file-p file1)) (null (tramp-tramp-file-p file2))) |
| 4367 | (and (tramp-tramp-file-p file1) (tramp-tramp-file-p file2) | 4387 | (and (tramp-tramp-file-p file1) (tramp-tramp-file-p file2) |
| 4368 | (string-equal (file-remote-p file1) (file-remote-p file2))))) | 4388 | (string-equal (file-remote-p file1) (file-remote-p file2))))) |
| 4369 | 4389 | ||
| @@ -4633,7 +4653,7 @@ This handles also chrooted environments, which are not regarded as local." | |||
| 4633 | (tramp-make-tramp-file-name | 4653 | (tramp-make-tramp-file-name |
| 4634 | vec (or (tramp-get-method-parameter vec 'tramp-tmpdir) "/tmp")))) | 4654 | vec (or (tramp-get-method-parameter vec 'tramp-tmpdir) "/tmp")))) |
| 4635 | (or (and (file-directory-p dir) (file-writable-p dir) | 4655 | (or (and (file-directory-p dir) (file-writable-p dir) |
| 4636 | (tramp-compat-file-local-name dir)) | 4656 | (tramp-file-local-name dir)) |
| 4637 | (tramp-error vec 'file-error "Directory %s not accessible" dir)) | 4657 | (tramp-error vec 'file-error "Directory %s not accessible" dir)) |
| 4638 | dir))) | 4658 | dir))) |
| 4639 | 4659 | ||
| @@ -4656,7 +4676,7 @@ Return the local name of the temporary file." | |||
| 4656 | (set-file-modes result #o0700))) | 4676 | (set-file-modes result #o0700))) |
| 4657 | 4677 | ||
| 4658 | ;; Return the local part. | 4678 | ;; Return the local part. |
| 4659 | (with-parsed-tramp-file-name result nil localname))) | 4679 | (tramp-file-local-name result))) |
| 4660 | 4680 | ||
| 4661 | (defun tramp-delete-temp-file-function () | 4681 | (defun tramp-delete-temp-file-function () |
| 4662 | "Remove temporary files related to current buffer." | 4682 | "Remove temporary files related to current buffer." |
| @@ -4683,7 +4703,7 @@ this file, if that variable is non-nil." | |||
| 4683 | 4703 | ||
| 4684 | (let ((system-type | 4704 | (let ((system-type |
| 4685 | (if (and (stringp tramp-auto-save-directory) | 4705 | (if (and (stringp tramp-auto-save-directory) |
| 4686 | (file-remote-p tramp-auto-save-directory)) | 4706 | (tramp-tramp-file-p tramp-auto-save-directory)) |
| 4687 | 'not-windows | 4707 | 'not-windows |
| 4688 | system-type)) | 4708 | system-type)) |
| 4689 | (auto-save-file-name-transforms | 4709 | (auto-save-file-name-transforms |
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index dacdd44102f..b31f0e0fd26 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el | |||
| @@ -39,7 +39,7 @@ | |||
| 39 | (defvar inhibit-message) | 39 | (defvar inhibit-message) |
| 40 | 40 | ||
| 41 | ;;;###tramp-autoload | 41 | ;;;###tramp-autoload |
| 42 | (defconst tramp-version "2.4.3.27.1" | 42 | (defconst tramp-version "2.4.4-pre" |
| 43 | "This version of Tramp.") | 43 | "This version of Tramp.") |
| 44 | 44 | ||
| 45 | ;;;###tramp-autoload | 45 | ;;;###tramp-autoload |
| @@ -73,7 +73,7 @@ | |||
| 73 | ;; Check for Emacs version. | 73 | ;; Check for Emacs version. |
| 74 | (let ((x (if (not (string-lessp emacs-version "24.4")) | 74 | (let ((x (if (not (string-lessp emacs-version "24.4")) |
| 75 | "ok" | 75 | "ok" |
| 76 | (format "Tramp 2.4.3.27.1 is not fit for %s" | 76 | (format "Tramp 2.4.4-pre is not fit for %s" |
| 77 | (replace-regexp-in-string "\n" "" (emacs-version)))))) | 77 | (replace-regexp-in-string "\n" "" (emacs-version)))))) |
| 78 | (unless (string-equal "ok" x) (error "%s" x))) | 78 | (unless (string-equal "ok" x) (error "%s" x))) |
| 79 | 79 | ||