summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog19
-rw-r--r--lisp/net/tramp-adb.el12
-rw-r--r--lisp/net/tramp-sh.el3
-rw-r--r--lisp/net/tramp-smb.el5
-rw-r--r--lisp/net/tramp.el37
5 files changed, 48 insertions, 28 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 3700121e5fe..0337982f044 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,22 @@
+2013-01-21 Michael Albinus <michael.albinus@gmx.de>
+
+ Improve XEmacs compatibility.
+
+ * net/tramp.el (tramp-replace-environment-variables): Make it a defun.
+
+ * net/tramp-adb.el (top): Require `time-date'.
+ (tramp-adb-ls-output-time-less-p): Use `tramp-time-less-p'.
+ (tramp-adb-handle-copy-file, tramp-adb-handle-rename-file): Use
+ `tramp-file-name-handler'.
+ (tramp-adb-maybe-open-connection): Use
+ `tramp-compat-set-process-query-on-exit-flag'.
+
+ * net/tramp-sh.el (tramp-sh-handle-file-acl): Use
+ `tramp-compat-funcall'.
+
+ * net/tramp-smb.el (tramp-smb-handle-file-acl): Use `looking-at' and
+ `tramp-compat-funcall'.
+
2013-01-21 Jürgen Hötzel <juergen@archlinux.org>
* net/tramp-adb.el (tramp-adb-handle-start-file-process): Complete
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index 6b8d16afc80..17802d39fa4 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -33,6 +33,7 @@
;;; Code:
(require 'tramp)
+(require 'time-date)
(defvar dired-move-to-filename-regexp)
@@ -465,7 +466,7 @@ Emacs dired can't find files."
(setq time-a (apply 'encode-time (parse-time-string (match-string 0 a))))
(string-match tramp-adb-ls-date-regexp b)
(setq time-b (apply 'encode-time (parse-time-string (match-string 0 b))))
- (time-less-p time-b time-a)))
+ (tramp-time-less-p time-b time-a)))
(defun tramp-adb-ls-output-name-less-p (a b)
"Sort \"ls\" output by name, ascending."
@@ -638,7 +639,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored."
newname (expand-file-name newname))
(if (file-directory-p filename)
- (copy-directory filename newname keep-date t)
+ (tramp-file-name-handler 'copy-directory filename newname keep-date t)
(with-tramp-progress-reporter
(tramp-dissect-file-name (if (file-remote-p filename) filename newname))
0 (format "Copying %s to %s" filename newname)
@@ -698,7 +699,10 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored."
(tramp-flush-file-property v localname)
;; Short track.
(tramp-adb-barf-unless-okay
- v (format "mv %s %s" (file-remote-p filename 'localname) localname)
+ v (format
+ "mv %s %s"
+ (tramp-file-name-handler 'file-remote-p filename 'localname)
+ localname)
"Error renaming %s to %s" filename newname))
;; Rename by copy.
@@ -1071,7 +1075,7 @@ connection if a previous connection has died for some reason."
(tramp-adb-wait-for-output p)
(unless (eq 'run (process-status p))
(tramp-error vec 'file-error "Terminated!"))
- (set-process-query-on-exit-flag p nil)
+ (tramp-compat-set-process-query-on-exit-flag p nil)
;; Check whether the properties have been changed. If
;; yes, this is a strong indication that we must expire all
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index d83599a6662..743c8dbe0f9 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -1555,7 +1555,8 @@ be non-negative integers."
(goto-char (point-max))
(delete-blank-lines)
(when (> (point-max) (point-min))
- (substring-no-properties (buffer-string))))))))
+ (tramp-compat-funcall
+ 'substring-no-properties (buffer-string))))))))
(defun tramp-sh-handle-set-file-acl (filename acl-string)
"Like `set-file-acl' for Tramp files."
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 0f143100906..65c52ae4f3c 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -649,13 +649,14 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored."
v (format "getfacl \"%s\"" (tramp-smb-get-localname v)))
(with-current-buffer (tramp-get-connection-buffer v)
(goto-char (point-min))
- (while (looking-at-p "^#")
+ (while (looking-at "^#")
(forward-line)
(delete-region (point-min) (point)))
(goto-char (point-max))
(delete-blank-lines)
(when (> (point-max) (point-min))
- (substring-no-properties (buffer-string))))))))
+ (tramp-compat-funcall
+ 'substring-no-properties (buffer-string))))))))
(defun tramp-smb-handle-file-attributes (filename &optional id-format)
"Like `file-attributes' for Tramp files."
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 2c4aac0ac8a..69e82de3f7f 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1779,28 +1779,23 @@ value of `default-file-modes', without execute permissions."
(or (file-modes filename)
(logand (default-file-modes) (tramp-compat-octal-to-decimal "0666"))))
-(defalias 'tramp-replace-environment-variables
- (if (ignore-errors
- (equal "${ tramp?}"
- (tramp-compat-funcall
- 'substitute-env-vars "${ tramp?}" 'only-defined)))
- (lambda (filename)
- "Like `substitute-env-vars' with `only-defined' non-nil."
- (tramp-compat-funcall 'substitute-env-vars filename 'only-defined))
- (lambda (filename)
- "Replace environment variables in FILENAME.
+(defun tramp-replace-environment-variables (filename)
+ "Replace environment variables in FILENAME.
Return the string with the replaced variables."
- (save-match-data
- (let ((idx (string-match "$\\(\\w+\\)" filename)))
- ;; `$' is coded as `$$'.
- (when (and idx
- (or (zerop idx) (not (eq ?$ (aref filename (1- idx)))))
- (getenv (match-string 1 filename)))
- (setq filename
- (replace-match
- (substitute-in-file-name (match-string 0 filename))
- t nil filename)))
- filename)))))
+ (or (ignore-errors
+ (tramp-compat-funcall 'substitute-env-vars filename 'only-defined))
+ ;; We need an own implementation.
+ (save-match-data
+ (let ((idx (string-match "$\\(\\w+\\)" filename)))
+ ;; `$' is coded as `$$'.
+ (when (and idx
+ (or (zerop idx) (not (eq ?$ (aref filename (1- idx)))))
+ (getenv (match-string 1 filename)))
+ (setq filename
+ (replace-match
+ (substitute-in-file-name (match-string 0 filename))
+ t nil filename)))
+ filename))))
;; In XEmacs, electricity is implemented via a key map for ?/ and ?~,
;; which calls corresponding functions (see minibuf.el).