1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-03 08:30:09 +00:00

Improve XEmacs compatibility of Tramp

* lisp/net/tramp-compat.el (directory-listing-before-filename-regexp):
Declare if it doesn't exist.
(file-remote-p): Remove defalias, which was necessary for GNU Emacs 21.
(redisplay): Make it an alias if it doesn't exist.

* lisp/net/tramp.el (tramp-get-remote-tmpdir): Don't use
`file-remote-p' (due to XEmacs compatibility).

* lisp/net/trampver.el (locate-dominating-file)
(tramp-compat-replace-regexp-in-string): Autoload.
(tramp-repository-get-version): Do not dupe byte-compiler.
This commit is contained in:
Michael Albinus 2015-10-04 13:00:33 +02:00
parent b28beb11f3
commit acfb5cd035
3 changed files with 18 additions and 17 deletions

View File

@ -105,6 +105,12 @@
(unless (boundp 'remote-file-name-inhibit-cache)
(defvar remote-file-name-inhibit-cache nil))
;; `directory-listing-before-filename-regexp' does not exist in
;; XEmacs. Since we use it only in tramp-adb.el, it doesn't harm to
;; declare it here.
(unless (boundp 'directory-listing-before-filename-regexp)
(defvar directory-listing-before-filename-regexp nil))
;; For not existing functions, or functions with a changed argument
;; list, there are compiler warnings. We want to avoid them in
;; cases we know what we do.
@ -122,16 +128,6 @@
;; `tramp-handle-*' functions, because this would bypass the locking
;; mechanism.
;; `file-remote-p' has been introduced with Emacs 22. The version
;; of XEmacs is not a magic file name function (yet).
(unless (fboundp 'file-remote-p)
(defalias 'file-remote-p
(lambda (file &optional identification connected)
(when (tramp-tramp-file-p file)
(tramp-compat-funcall
'tramp-file-name-handler
'file-remote-p file identification connected)))))
;; `process-file' does not exist in XEmacs.
(unless (fboundp 'process-file)
(defalias 'process-file
@ -187,7 +183,11 @@
(lambda ()
(ad-remove-advice
'file-expand-wildcards 'around 'tramp-advice-file-expand-wildcards)
(ad-activate 'file-expand-wildcards)))))
(ad-activate 'file-expand-wildcards))))
;; `redisplay' does not exist in XEmacs.
(unless (fboundp 'redisplay)
(defalias 'redisplay 'ignore)))
;; `with-temp-message' does not exist in XEmacs.
(if (fboundp 'with-temp-message)

View File

@ -4005,7 +4005,7 @@ be granted."
(or (tramp-get-method-parameter vec 'tramp-tmpdir) "/tmp"))))
(with-tramp-connection-property vec "tmpdir"
(or (and (file-directory-p dir) (file-writable-p dir)
(file-remote-p dir 'localname))
(tramp-file-name-handler 'file-remote-p dir 'localname))
(tramp-error vec 'file-error "Directory %s not accessible" dir)))
dir))

View File

@ -38,12 +38,14 @@
(defconst tramp-bug-report-address "tramp-devel@gnu.org"
"Email address to send bug reports to.")
;; `locate-dominating-file' does not exist in XEmacs. But it is not used here.
(autoload 'locate-dominating-file "files")
(autoload 'tramp-compat-replace-regexp-in-string "tramp-compat")
(defun tramp-repository-get-version ()
"Try to return as a string the repository revision of the Tramp sources."
(unless (featurep 'xemacs)
(let ((dir
(funcall
(intern "locate-dominating-file") (locate-library "tramp") ".git")))
(let ((dir (locate-dominating-file (locate-library "tramp") ".git")))
(when dir
(with-temp-buffer
(let ((default-directory (file-name-as-directory dir)))
@ -51,8 +53,7 @@
(ignore-errors
(call-process "git" nil '(t nil) nil "rev-parse" "HEAD")))
(not (zerop (buffer-size)))
(funcall
(intern "tramp-compat-replace-regexp-in-string")
(tramp-compat-replace-regexp-in-string
"\n" "" (buffer-string)))))))))
;; Check for (X)Emacs version.