]> code.delx.au - gnu-emacs/commitdiff
Improve XEmacs compatibility of Tramp
authorMichael Albinus <michael.albinus@gmx.de>
Sun, 4 Oct 2015 11:00:33 +0000 (13:00 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Sun, 4 Oct 2015 11:00:33 +0000 (13:00 +0200)
* 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.

lisp/net/tramp-compat.el
lisp/net/tramp.el
lisp/net/trampver.el

index 9848325e45a67777cf5d757dbfad7ebdd3e05692..e6451956dc491b5fa341d846fb82cff2778b5938 100644 (file)
   (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.
   ;; `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
      (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)
index fbb8c8a349eb0754d69ed50fef99f540c52358a3..df64f49e1e6d055376bd141c91c240fb1c2ce837 100644 (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))
 
index bba27e394690bd4f504232815fd015b2557490ee..5c42f3a828af9cbd45c0f8f208aa3deac788c3be 100644 (file)
 (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.